Esempio n. 1
0
 /**
  * Get count of users
  *
  * @param  int    $roleId
  * @param  array  $search
  * @param  array  $deniedRoles
  * @return int
  */
 public function getCount($roleId = null, array $search = null, array $deniedRoles = [])
 {
     $params = [];
     $sql = Table\Users::sql();
     $sql->select();
     if (null !== $search) {
         $sql->select()->where($search['by'] . ' LIKE :' . $search['by']);
         $params[$search['by']] = $search['for'] . '%';
     }
     if (null !== $roleId) {
         $sql->select()->where('role_id = :role_id');
         $params['role_id'] = $roleId;
     }
     if (count($deniedRoles) > 0) {
         foreach ($deniedRoles as $key => $denied) {
             $sql->select()->where('role_id != :role_id' . ($key + 1));
             $params['role_id' . ($key + 1)] = $denied;
         }
     }
     if (count($params) > 0) {
         return Table\Users::execute((string) $sql, $params)->count();
     } else {
         return Table\Users::findAll()->count();
     }
 }
Esempio n. 2
0
 /**
  * Remove sites
  *
  * @param array $post
  * @return void
  */
 public function remove(array $post)
 {
     if (isset($post['remove_sites'])) {
         foreach ($post['remove_sites'] as $id) {
             $site = Table\Sites::findById($id);
             if (isset($site->id)) {
                 $users = Table\Users::findAll();
                 foreach ($users->rows as $user) {
                     $siteIds = unserialize($user->site_ids);
                     if (in_array($site->id, $siteIds)) {
                         $key = array_search($site->id, $siteIds);
                         unset($siteIds[$key]);
                         $u = Table\Users::findById($user->id);
                         if (isset($u->id)) {
                             $u->site_ids = serialize($siteIds);
                             $u->update();
                         }
                     }
                 }
                 $site->delete();
             }
         }
     }
 }