Example #1
0
 /**
  * View group profile
  *
  * @param Request $request
  * @param $matches
  * @return mixed|string
  */
 public function group_profile(Request $request, $matches)
 {
     \GroupPermission::updatePermissionsList();
     try {
         /** @var \Group $user */
         $group = \Group::find($matches['id']);
         $perms = $group->getPermissions();
     } catch (\Exception $e) {
         $this->error404($request);
         return;
     }
     if ($request->isMethod('post')) {
         // Moving users
         $new_group = intval($request->get('new_group', $group->id));
         if ($new_group != $group->id) {
             $update = ['group_id' => $new_group];
             \User::table()->update($update, ['group_id' => $group->id]);
         }
         // Saving permissions
         foreach ($perms as $key => $val) {
             $new_val = intval($request->get('perm_' . $key));
             $perms[$key] = $new_val;
         }
         // Saving data
         $new_name = $request->get('name');
         $new_icon = $request->get('icon');
         if ($new_name != $group->name) {
             $group->name = $new_name;
         }
         if ($new_icon != $group->icon) {
             $group->icon = $new_icon;
         }
         if ($group->save() && $perms->save()) {
             \GroupPermission::updatePermissionsList();
             return static::json_response(['status' => $this->lang->translate('form.saved'), 'class' => 'success']);
         } else {
             return static::json_response(['status' => $this->lang->translate('form.failed'), 'class' => 'error']);
         }
     }
     // Filter groups
     $groups = \Group::all();
     $groups = array_map(function ($i) {
         return $i->to_array();
     }, $groups);
     return $this->view->render('users/group_profile.twig', ['title' => $this->lang->translate('user.group.name', $group->name), 'group' => $group->to_array(), 'perms' => $perms, 'groups' => $groups]);
 }
Example #2
0
 /**
  * @return array
  */
 public static function defaultMap()
 {
     $perms = GroupPermission::all();
     $map = [];
     foreach ($perms as $rule) {
         $map[$rule->permission] = boolval(intval($rule->default));
     }
     return $map;
 }
Example #3
0
 /**
  * @return bool
  */
 public function save()
 {
     $perms = GroupPermission::getPermissionsMap();
     $perms->map[$this->group->id] = $this->getArrayCopy();
     return $perms->save();
 }
Example #4
0
 /**
  * @return Permission
  */
 public function getPermissions()
 {
     return GroupPermission::getByGroup($this);
 }
 public function addgroupAction()
 {
     $auth = Zend_Auth::getInstance();
     $lic = $_REQUEST['lic'];
     if ($lic != $_SESSION['OPENZISKEYHOLE']) {
         $this->view->msg = 'Not Ajax Request';
         $this->_forward('error', 'error');
     } else {
         if ($auth->hasIdentity()) {
             if (!$this->getRequest()->isXmlHttpRequest()) {
                 $this->view->msg = 'Not Ajax Request';
                 $this->_forward('error', 'error');
             } else {
                 Zend_Session::regenerateId();
                 $filterChain = new Zend_Filter();
                 $filterChain->addFilter(new Zend_Filter_StripTags());
                 $name = $filterChain->filter($_POST['NAME']);
                 $version = $filterChain->filter($_POST['VERSION']);
                 if ($groups = GroupPermission::addGroup($name, $version)) {
                     $this->render('ajaxsuccessjson');
                 } else {
                     $this->view->msg = 'errors:{reason:"Error Adding Group"}';
                     $this->_forward('error', 'error');
                 }
             }
         } else {
             if (!$this->getRequest()->isXmlHttpRequest()) {
                 $this->view->msg = 'Not Ajax Request';
                 $this->_forward('error', 'error');
             } else {
                 $this->view->msg = 'errors:{reason:"Invalid User"}';
                 $this->_forward('error', 'error');
             }
         }
     }
 }