Example #1
0
 /**
  * @param bool $full
  *
  * @return User|false
  */
 public function findSingle($full = false)
 {
     $result = parent::findSingle();
     if ($result) {
         $user = new User($result);
         if ($full === true) {
             $repo = new RoleRepository($this->db);
             $user->setRoles($repo->where('user_id', '=', $user->getId())->order('name', 'ASC')->find());
             $repo = new PermissionRepository($this->db);
             $user->setPermissions($repo->where('user_id', '=', $user->getId())->order('name', 'ASC')->find());
         }
         return $user;
     } else {
         return false;
     }
 }
 /**
  * Return User object of given user_id
  *
  * @param int $user_id
  * @return User
  */
 public function getObjectById($user_id, $cacheMinutes = 0)
 {
     $user_id = intval($user_id);
     $this->query->exec("select * from `" . Tbl::get('TBL_USERS') . "` where `id`='{$user_id}'", $cacheMinutes);
     if ($this->query->countRecords()) {
         $res = $this->query->fetchRecord();
         $user = new User();
         $user->setLogin($res["login"]);
         $user->setId($user_id);
         $user->setCreationDate($res["creation_date"]);
         $user->setStatus($res["enable"]);
         foreach ($res as $key => $val) {
             if ($key != 'id' && $key != 'enable' && $key != 'creation_date' && $key != 'login' && $key != 'password') {
                 $user->{$key} = $val;
             }
         }
         $this->query->exec("select `permission_id` from `" . Tbl::get('TBL_USERS_PERMISSIONS') . "` where `user_id`='{$user_id}'", $cacheMinutes);
         $perms_ids_count = $this->query->countRecords();
         if ($perms_ids_count) {
             $perms_ids = $this->query->fetchFields(0, true);
             $sql_statement = "select `name` from `" . Tbl::get('TBL_PERMISSIONS') . "` where `id` in (";
             $count = $perms_ids_count - 1;
             for ($i = 0; $i < $count; ++$i) {
                 $sql_statement .= $perms_ids[$i] . ", ";
             }
             $sql_statement .= $perms_ids[$count] . ")";
             $this->query->exec($sql_statement, $cacheMinutes);
             $user->setPermissions($this->query->fetchFields(0, true));
         }
         $this->query->exec("select `group_id` from `" . Tbl::get('TBL_USERS_GROUPS') . "` where `user_id`='{$user_id}'", $cacheMinutes);
         $groups_ids_count = $this->query->countRecords();
         if ($groups_ids_count) {
             $groups_ids = $this->query->fetchFields(0, true);
             $sql_statement = "select `name` from `" . Tbl::get('TBL_GROUPS') . "` where `id` in (";
             $count = $groups_ids_count - 1;
             for ($i = 0; $i < $count; ++$i) {
                 $sql_statement .= $groups_ids[$i] . ", ";
             }
             $sql_statement .= $groups_ids[$count] . ")";
             $this->query->exec($sql_statement, $cacheMinutes);
             $groups_names = $this->query->fetchFields(0, true);
             $user->setGroups($groups_names);
             foreach ($groups_names as $group_name) {
                 $user->addPermissions($this->getGroupPermissionsList($group_name, $cacheMinutes));
             }
             $user->setPrimaryGroup($this->getPrimaryGroup($user_id, $cacheMinutes));
         }
         return $user;
     }
     return new User();
 }