/** * 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]); }
/** * @return array */ public static function defaultMap() { $perms = GroupPermission::all(); $map = []; foreach ($perms as $rule) { $map[$rule->permission] = boolval(intval($rule->default)); } return $map; }
/** * @return bool */ public function save() { $perms = GroupPermission::getPermissionsMap(); $perms->map[$this->group->id] = $this->getArrayCopy(); return $perms->save(); }
/** * @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'); } } } }