Exemple #1
0
 /**  
  * 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"));
         }
     }
 }