/**
  * Get a permission given to an id or a name.
  * @param Mixed $permission
  * @return Boolean
  */
 public static function getPermission($permission)
 {
     $return = sfGuardPermissionPeer::retrieveByPK($permission);
     if (!$return) {
         $return = sfGuardPermissionPeer::retrieveByName($permission);
     }
     return $return;
 }
Example #2
0
 public function addPermissionByName($name, $con = null)
 {
     $permission = sfGuardPermissionPeer::retrieveByName($name);
     if (!$permission) {
         throw new Exception(sprintf('The permission "%s" does not exist.', $name));
     }
     $up = new sfGuardUserPermission();
     $up->setsfGuardUser($this);
     $up->setPermissionId($permission->getId());
     $up->save($con);
 }
Example #3
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 . ']');
 }