Ejemplo n.º 1
0
 public function initialize()
 {
     $this->add(new Text("firstname"));
     $lastname = new Text("lastname");
     $this->add($lastname);
     $username = new Text("username");
     $username->setFilters(array('striptags', 'string'));
     $username->addValidators(array(new PresenceOf()));
     $this->add($username);
     // password
     $password = new Password('password');
     $password->addValidator(new PresenceOf(array('message' => 'password')));
     $this->add($password);
     $this->add(new Text("avatar"));
     $email = new Text("email");
     $email->addValidators(array(new PresenceOf(), new Email()));
     $this->add($email);
     $this->add(new Select('gender', array('0' => 'Nữ', '1' => 'Nam')));
     $this->add(new Text("birthday"));
     $this->add(new Text("address"));
     $this->add(new Text("phone"));
     $this->add(new Select('gender', array('0' => 'Không', '1' => 'Có')));
     $this->add(new Select('status', array('0' => 'Không', '1' => 'Có'), array('class' => 'medium')));
     $department_id = new Select('department_id', \Modules\Backend\Models\Member_department::find(), array('using' => array('id', 'name'), 'class' => 'medium'));
     $this->add($department_id);
     $group_id = new Select('group_id', \Modules\Backend\Models\Permission_group::find(), array('using' => array('id', 'name'), 'class' => 'medium'));
     $this->add($group_id);
 }
 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"));
         }
     }
 }