/** * Hàm lấy thông tin nhóm nhóm quyềnh */ private function getInfoPermission() { $auth = new Auth(); $identity = $auth->getIdentity(); if ($identity != null) { $conditions = "id = :id: AND status = 1"; // lấy thông tin group $group = \Modules\Backend\Models\Permission_group::findFirst(array("conditions" => $conditions, "bind" => array("id" => $identity['group_id']))); if (!$group) { return false; } $conditions = "group_id = :group_id: AND status = 1"; $group_privilege = \Modules\Backend\Models\Permission_group_privilege::find(array("conditions" => $conditions, "bind" => array("group_id" => $group->id))); if (count($group_privilege) <= 0) { return false; } return $group_privilege; } return false; }
public function editAction($id = null) { $this->assets->addCss('library/bootstrap/css/bootstrap-switch.min.css'); $this->assets->addJs('library/bootstrap/js/bootstrap-switch.min.js'); $this->tag->setTitle("Quản lý cấu hình phân quyền: Chỉnh sửa"); $this->view->title_action = 'Chỉnh sửa'; $this->view->group_id = $id; $item = \Modules\Backend\Models\Permission_group_privilege::find(array("conditions" => "group_id = ?1", "bind" => array(1 => $id))); $role = array(); $group = \Modules\Backend\Models\Permission_group::find(); foreach ($item as $key => $value) { $role[$value->group->name][$value->privilege->controller][$value->privilege->action] = $value->privilege->action; } $this->view->role = $role; $privilege = \Modules\Backend\Models\Permission_privilege::find(); $pri_active = array(); foreach ($privilege as $key => $value) { if (array_key_exists($value->controller, $pri_active)) { $pri_active[$value->controller][$value->action] = $value->action; } else { $pri_active[$value->controller][$value->action] = $value->action; } } $this->view->pri_active = $pri_active; // Xử lý cấp quyền if ($this->request->isPost() == true) { $item = \Modules\Backend\Models\Permission_group_privilege::find(array("conditions" => "group_id = ?1", "bind" => array(1 => $id))); foreach ($item as $key => $value) { $value->delete(); } if ($this->request->getPost("my") != null) { $data[] = $this->request->getPost("my"); foreach ($data as $key => $value) { foreach ($value as $key_controller => $value_controller) { foreach ($value_controller as $key_action => $value_action) { $privilege_item = \Modules\Backend\Models\Permission_privilege::find(array("conditions" => "controller =?1 AND action = ?2", "bind" => array(1 => $key_controller, 2 => $key_action))); if (!empty($privilege_item) && count($privilege_item) > 0) { foreach ($privilege_item as $key_permission => $value_permission) { $group_privilege_item = new \Modules\Backend\Models\Permission_group_privilege(); $group_privilege_item->privilege_id = $value_permission->id; $group_privilege_item->group_id = $id; $group_privilege_item->status = 1; $group_privilege_item->save(); } } } } } $this->flash->success("Thành công!"); $this->redirect(array("action" => "index")); } else { $this->flash->success("Thành công!"); $this->redirect(array("action" => "index")); } } }