/** * */ public static function checkPermissions() { $request = Core_Request::getInstance(); // permissions structure $data = array('module' => $request->getRoute('module'), 'controller' => $request->getRoute('controller'), 'action' => $request->getRoute('action')); $model = Admin_PermissionsModel::getInstance(); $flag = $model->getFlag($data); // $flag = 0 - is a free acces of the page if ($flag === 0) { return true; } if (!$flag) { // we need to check that method exist $model->add($data); } else { if (!s()->user->id) { // @todo Core_View::getInstance()->addFlashMessage(__('Please Login'), 'danger'); Core_Response::getInstance()->setStatus(1)->redirect('admin')->toJson(); } if (!Core_Bit::check(s()->user->access['permissions'], $flag)) { // well an owner has ALL access $role_rs = Admin_RolesModel::get(array('id' => s()->user->role_id)); if ($role_rs->is_owner === 1 || s()->user->is_developer === 1) { return true; } Core_View::getInstance()->addFlashMessage(__('You Don\'t have permission to access this page'), 'danger'); Core_Response::getInstance()->setStatus(1)->redirect('admin')->toJson(); } } }
public function listAction() { $users_rs = Admin_UsersModel::getAll(array()); foreach ($users_rs as &$user_row) { $user_row['role'] = Admin_RolesModel::get(array('id' => $user_row['role_id'])); $user_row['last_active'] = Cms_Time::label($user_row['last_active']); } $this->getView()->all_roles = Admin_RolesModel::getAll(array()); $this->getView()->all = $users_rs; $body = $this->getView()->fetch(); $this->getResponse()->setBody($body)->toJson(); }
public function permissionsAction() { $id = $this->getRequest()->getParam('id'); if (!$id) { $this->getResponse()->setStatus(0)->setBody(__('role does not exist'))->toJson(); } $role_rs = Admin_RolesModel::get(array('id' => $id)); if (!$role_rs) { $this->getResponse()->setStatus(0)->setBody(__('role does not exist'))->toJson(); } $return = array(); $permissions_rs = Admin_PermissionsModel::getAll(); foreach ($permissions_rs as $permission_row) { if (Core_Bit::check($role_rs->permissions, $permission_row->bit_flag) || $role_rs->is_owner) { $return[$permission_row['name']] = true; } } $this->getResponse()->setStatus(1)->setData(Core_Tools::JsonEncode($return))->toJson(); }