Files
2025-03-12 17:06:23 +01:00

84 lines
1.9 KiB
PHP

<?php
class sfGuardGroupActions extends autosfGuardGroupActions
{
public function validateEdit()
{
if (!$this->getUser()->isSuperAdmin())
{
return $this->redirect('sfGuardAuth/secure');
}
return true;
}
public function validateList()
{
if (!$this->getUser()->isSuperAdmin())
{
return $this->redirect('sfGuardAuth/secure');
}
return true;
}
public function addFiltersCriteria($c)
{
$c->add(sfGuardGroupPeer::NAME, array('admin', 'user'), Criteria::NOT_IN);
parent::addFiltersCriteria($c);
}
protected function savesfGuardGroup($sf_guard_group)
{
$sf_guard_group->setDescription($this->getRequestParameter('sf_guard_group[description]'));
parent::savesfGuardGroup($sf_guard_group);
$this->savePermissions($sf_guard_group);
$this->saveModulePermissions($sf_guard_group);
}
protected function saveModulePermissions(sfGuardGroup $group)
{
$group_id = $group->getId();
sfGuardGroupModulePermissionPeer::doDelete($group_id);
$permission = new sfGuardGroupModulePermission();
$permission->setId($group_id);
$permissions = $this->getRequestParameter('module_permission');
$permission->setPermissions($permissions);
$permission->save();
}
protected function savePermissions(sfGuardGroup $group)
{
$group_id = $group->getId();
$c = new Criteria();
$c->add(sfGuardGroupPermissionPeer::GROUP_ID, $group_id);
sfGuardGroupPermissionPeer::doDelete($c);
$permissions = $this->getRequestParameter('permission');
foreach ($permissions as $id)
{
$permission = new sfGuardGroupPermission();
$permission->setGroupId($group_id);
$permission->setPermissionId($id);
$permission->save();
}
}
}