Ejemplo n.º 1
0
 public function listAction()
 {
     $request = $this->getRequest();
     $perPage = 20;
     $pageIndex = (int) $request->getParam('page_index');
     if (null == $pageIndex || '' == $pageIndex || $pageIndex < 0) {
         $pageIndex = 1;
     }
     $start = ($pageIndex - 1) * $perPage;
     $this->view->pageIndex = $pageIndex;
     $condition = array('status' => 'active', 'search_form' => false);
     $json = new Services_JSON();
     if ($request->isPost()) {
         $condition = $request->getPost('condition');
         $condition['search_form'] = true;
         $params = rawurlencode(base64_encode($json->encodeUnsafe($condition)));
     } else {
         $params = $request->getParam('q');
         $params != null ? $condition = (array) $json->decode(rawurldecode(base64_decode($params))) : ($params = rawurlencode(base64_encode($json->encodeUnsafe($condition))));
     }
     $params = empty($condition) ? null : $params;
     $this->view->condition = $condition;
     $users = Modules_Core_Services_User::find($condition, $start, $perPage);
     $numUsers = Modules_Core_Services_User::count($condition);
     $this->view->users = $users;
     $roles = Modules_Core_Services_Role::getAllRoles();
     $this->view->roles = $roles;
     // Pager
     require_once LIB_DIR . DS . 'PEAR' . DS . 'Pager' . DS . 'Sliding.php';
     $pagerPath = $this->view->url('core_user_list');
     $pagerOptions = array('mode' => 'Sliding', 'append' => false, 'perPage' => $perPage, 'delta' => 5, 'urlVar' => 'page', 'path' => $pagerPath, 'fileName' => null == $params ? 'page-%d' : 'page-%d/?q=' . $params, 'separator' => '', 'nextImg' => '<small class="icon arrow_right"></small>', 'prevImg' => '<small class="icon arrow_left"></small>', 'altNext' => '', 'altPrev' => '', 'altPage' => '', 'totalItems' => $numUsers, 'currentPage' => $pageIndex, 'urlSeparator' => '/', 'spacesBeforeSeparator' => 0, 'spacesAfterSeparator' => 0, 'curPageSpanPre' => '<a href="javascript: void();" class="current">', 'curPageSpanPost' => '</a>');
     $pager = new Pager_Sliding($pagerOptions);
     $this->view->pager = $pager;
 }
Ejemplo n.º 2
0
 public function listAction()
 {
     $request = $this->getRequest();
     $perPage = 20;
     $pageIndex = (int) $request->getParam('page_index');
     if (null == $pageIndex || '' == $pageIndex || $pageIndex < 0) {
         $pageIndex = 1;
     }
     $start = ($pageIndex - 1) * $perPage;
     $this->view->pageIndex = $pageIndex;
     $roles = Modules_Core_Services_Role::find(array(), $start, $perPage);
     $numRoles = Modules_Core_Services_Role::count(array());
     $this->view->roles = $roles;
     // Pager
     require_once LIB_DIR . DS . 'PEAR' . DS . 'Pager' . DS . 'Sliding.php';
     $pagerPath = $this->view->url('core_role_list');
     $pagerOptions = array('mode' => 'Sliding', 'append' => false, 'perPage' => $perPage, 'delta' => 5, 'urlVar' => 'page', 'path' => $pagerPath, 'fileName' => 'page-%d', 'separator' => '', 'nextImg' => '<small class="icon arrow_right"></small>', 'prevImg' => '<small class="icon arrow_left"></small>', 'altNext' => '', 'altPrev' => '', 'altPage' => '', 'totalItems' => $numRoles, 'currentPage' => $pageIndex, 'urlSeparator' => '/', 'spacesBeforeSeparator' => 0, 'spacesAfterSeparator' => 0, 'curPageSpanPre' => '<a href="javascript: void();" class="current">', 'curPageSpanPost' => '</a>');
     $pager = new Pager_Sliding($pagerOptions);
     $this->view->pager = $pager;
 }
Ejemplo n.º 3
0
 public function roleAction()
 {
     $request = $this->getRequest();
     $roleId = $request->getParam('role_id');
     $role = Modules_Core_Services_Role::getById($roleId);
     if (null == $role) {
         return;
     }
     $this->view->role = $role;
     $act = $request->getParam('act');
     if ($request->isPost()) {
         $this->setNoRender();
         $this->disableLayout();
         $mod = $request->getPost('mod');
         $this->view->mod = $mod;
         $controllers = Modules_Core_Services_Action::getDbActionsByModule($mod);
         switch ($act) {
             case 'save':
                 /**
                  *	Reset rule for user 
                  */
                 Modules_Core_Services_Rule::reset('role', $role['role_id'], $mod);
                 $actions = $request->getPost('actions');
                 if ($controllers) {
                     foreach ($controllers as $index => $controller) {
                         if ($controller['actions']) {
                             foreach ($controller['actions'] as $indexAction => $controllerAction) {
                                 $allow = 0;
                                 if ($actions) {
                                     foreach ($actions as $action) {
                                         if ($mod . '_' . $controller['controller_id'] . '_' . $controllerAction['action_id'] == $action) {
                                             $allow = 1;
                                         }
                                     }
                                 }
                                 $rule = array('module_id' => $mod, 'controller_id' => $controller['controller_id'], 'action_id' => $controllerAction['action_id'], 'object_type' => 'role', 'object_id' => $role['role_id'], 'allow' => $allow);
                                 $ruleId = Modules_Core_Services_Rule::add($rule);
                             }
                         }
                     }
                 }
                 $this->getResponse()->setBody('RESULT_OK');
                 return;
                 break;
             default:
                 $dbRoleRules = Modules_Core_Services_Rule::getRules('role', $role['role_id']);
                 $dbRules = $dbRoleRules;
                 $this->view->dbRules = $dbRules;
                 $this->view->controllers = $controllers;
                 $viewFile = ROOT_DIR . DS . 'templates' . DS . $this->view->APP_TEMPLATE . DS . 'modules' . DS . 'core' . DS . 'permission' . DS . 'role.ajax.phtml';
                 $response = $this->view->render($viewFile);
                 $this->getResponse()->setBody($response);
                 return;
                 break;
         }
     }
     $modules = Modules_Core_Services_Module::getModulesInstalled();
     /**
      * Add module core to the top array 
      */
     $modules = array_pad($modules, -count($modules) - 1, array('module_id' => 'core'));
     $this->view->modules = $modules;
 }