예제 #1
0
 /**
  *
  */
 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();
         }
     }
 }
예제 #2
0
 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();
 }
예제 #3
0
 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();
 }