⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.78
Server IP:
41.128.143.86
Server:
Linux host.raqmix.cloud 6.8.0-1025-azure #30~22.04.1-Ubuntu SMP Wed Mar 12 15:28:20 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.3.23
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
psa-pear
/
pear
/
php
/
Horde
/
Group
/
View File Name :
Mock.php
* @category Horde * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @package Group */ /** * This class provides a mock driver for the Horde group system. * * @author Duck
* @category Horde * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @package Group */ class Horde_Group_Mock extends Horde_Group_Base { /** * List of groups. * * @var array */ protected $_groups = array(); /** * Access log. * * @var array */ protected $_log = array(); /** * Returns the current method call log. * * @return array The current call log. */ public function getLog() { return $this->_log; } /** * Resets the current method call log. */ public function clearLog() { $this->_log = array(); } /** * Logs a method call. * * Add the currently called class method to the call log. */ protected function _log() { $trace = debug_backtrace(); $this->_log[] = $trace[1]['function']; } /** * Creates a new group. * * @param string $name A group name. * @param string $email The group's email address. * * @return mixed The ID of the created group. * @throws Horde_Group_Exception */ protected function _create($name, $email = null) { $this->_log(); $id = 'group_' . count($this->_groups); $this->_groups[$id] = array('name' => $name, 'email' => $email, 'users' => array()); return $id; } /** * Renames a group. * * @param mixed $gid A group ID. * @param string $name The new name. * * @throws Horde_Group_Exception */ protected function _rename($gid, $name) { $this->_log(); if (!isset($this->_groups[$gid])) { throw new Horde_Exception_NotFound('Group "' . $gid . '" not found'); } $this->_groups[$gid]['name'] = $name; } /** * Removes a group. * * @param mixed $gid A group ID. * * @throws Horde_Group_Exception */ protected function _remove($gid) { $this->_log(); unset($this->_groups[$gid]); } /** * Checks if a group exists. * * @param mixed $gid A group ID. * * @return boolean True if the group exists. * @throws Horde_Group_Exception */ protected function _exists($gid) { $this->_log(); return isset($this->_groups[$gid]); } /** * Returns a group name. * * @param mixed $gid A group ID. * * @return string The group's name. * @throws Horde_Group_Exception */ protected function _getName($gid) { $this->_log(); if (!isset($this->_groups[$gid])) { throw new Horde_Exception_NotFound('Group ' . $gid . ' not found'); } return $this->_groups[$gid]['name']; } /** * Returns all available attributes of a group. * * @param mixed $gid A group ID. * * @return array The group's date. * @throws Horde_Group_Exception * @throws Horde_Exception_NotFound */ protected function _getData($gid) { $this->_log(); if (!isset($this->_groups[$gid])) { throw new Horde_Exception_NotFound('Group ' . $gid . ' not found'); } return $this->_groups[$gid]; } /** * Sets one or more attributes of a group. * * @param mixed $gid A group ID. * @param array|string $attribute An attribute name or a hash of * attributes. * @param string $value An attribute value if $attribute is a * string. * * @throws Horde_Group_Exception * @throws Horde_Exception_NotFound */ protected function _setData($gid, $attribute, $value = null) { $this->_log(); if (!isset($this->_groups[$gid])) { throw new Horde_Exception_NotFound('Group ' . $gid . ' not found'); } if (is_array($attribute)) { $this->_groups[$gid] = array_merge($this->_groups[$gid], $attribute); } else { $this->_groups[$gid][$attribute] = $value; } } /** * Returns a list of all groups a user may see, with IDs as keys and names * as values. * * @return array All existing groups. * @throws Horde_Group_Exception */ protected function _listAll() { $this->_log(); $groups = array(); foreach ($this->_groups as $gid => $group) { $groups[$gid] = $group['name']; } asort($groups); return $groups; } /** * Returns a list of users in a group. * * @param mixed $gid A group ID. * * @return array List of group users. * @throws Horde_Group_Exception */ protected function _listUsers($gid) { $this->_log(); if (!isset($this->_groups[$gid])) { throw new Horde_Exception_NotFound('Group ' . $gid . ' not found'); } return $this->_groups[$gid]['users']; } /** * Returns a list of groups a user belongs to. * * @param string $user A user name. * * @return array A list of groups, with IDs as keys and names as values. * @throws Horde_Group_Exception */ protected function _listGroups($user) { $this->_log(); $groups = array(); foreach ($this->_groups as $gid => $group) { if (in_array($user, $group['users'])) { $groups[$gid] = $group['name']; } } asort($groups); return $groups; } /** * Add a user to a group. * * @param mixed $gid A group ID. * @param string $user A user name. * * @throws Horde_Group_Exception */ protected function _addUser($gid, $user) { $this->_log(); if (!isset($this->_groups[$gid])) { throw new Horde_Exception_NotFound('Group ' . $gid . ' not found'); } $this->_groups[$gid]['users'][] = $user; } /** * Removes a user from a group. * * @param mixed $gid A group ID. * @param string $user A user name. * * @throws Horde_Group_Exception */ protected function _removeUser($gid, $user) { $this->_log(); if (!isset($this->_groups[$gid])) { throw new Horde_Exception_NotFound('Group ' . $gid . ' not found'); } $key = array_search($user, $this->_groups[$gid]['users']); if ($key !== false) { unset($this->_groups[$gid]['users'][$key]); } } /** * Searches for group names. * * @param string $name A search string. * * @return array A list of matching groups, with IDs as keys and names as * values. * @throws Horde_Group_Exception */ protected function _search($name) { $this->_log(); $groups = array(); foreach ($this->_groups as $gid => $group) { if (strpos($group['name'], $name) !== false) { $groups[$gid] = $group['name']; } } asort($groups); return $groups; } }