示例#1
0
 public function grantProjectGroupPermission($group_name, $permission_name)
 {
     $permission = sfGuardPermissionPeer::retrieveByName($this->getUuid() . '-' . $permission_name);
     $group = sfGuardGroupPeer::retrieveByName($this->getUuid() . '-' . $group_name);
     if ($permission == null) {
         sfContext::getInstance()->getLogger()->info('permission not found: [' . $this->getUuid() . $permission_name . ']');
         return false;
     } elseif ($group == null) {
         sfContext::getInstance()->getLogger()->info('group not found: [' . $this->getUuid() . $group_name . ']');
         return false;
     }
     // TODO: make sure that the group permission name does not already exist
     $groupPermission = new sfGuardGroupPermission();
     $groupPermission->setGroupId($group->getPrimaryKey());
     $groupPermission->setPermissionId($permission->getId());
     $groupPermission->save();
     sfContext::getInstance()->getLogger()->info('group permission saved: [' . $this->getUuid() . $group_name . ']:[' . $this->getUuid() . $permission_name . ']');
 }
示例#2
0
 public function addGroupByName($name, $con = null)
 {
     $group = sfGuardGroupPeer::retrieveByName($name);
     if (!$group) {
         throw new Exception(sprintf('The group "%s" does not exist.', $name));
     }
     $ug = new sfGuardUserGroup();
     $ug->setsfGuardUser($this);
     $ug->setGroupId($group->getId());
     $ug->save($con);
 }
示例#3
0
 public function executeChangeRole($request)
 {
     $this->form = new ChangeRoleForm(array(), array('actual_user' => $this->getUser()));
     $values = $request->getParameter($this->form->getName());
     if (isset($values['roles']) && !empty($values['roles'])) {
         $this->getUser()->clearCredentials();
         $new_login_role = sfGuardGroupPeer::retrieveByPK($values['roles']);
         $this->getUser()->setLoginRole($new_login_role->getName());
         //die(var_dump($this->getUser()->getAttribute('login_role')));
         $this->getUser()->addCredentials(sfGuardPermissionPeer::retrieveAllCredentialsForARole(sfGuardGroupPeer::retrieveByName($this->getUser()->getLoginRole())));
     }
     return $this->redirect("mainBackend/index");
 }