/** * 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(); } }
/** * 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(); } } } }