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; }
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; }
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; }