$g->addMember($uid,$roo);
break;
case 'sub':
- $g->removeMember($uid);
+
+ $g->removeMember($uid, $roo);
break;
default:
$roo->jerr('invalid action');
}
}
- function removeMember($person)
+ function removeMember($person, $roo)
{
$gm = DB_Dataobject::factory('core_group_member');
$gm->group_id = $this->id;
$gm->user_id = is_object($person) ? $person->id : $person;
-
+ $au = $roo->getAuthUser();
+ if ($gm->group()->name == 'Administrators' && $gm->user_id = $au->id) {
+ $roo->jerr("You can not remove yourself from the admin group");
+ }
+
if ($gm->find(true)) {
$gm->delete();
}
}
+ function group()
+ {
+ $grp = DB_DataObject::factory('core_group');
+ $grp->get($this->group_id);
+ return $grp;
+
+ }
+
/**
* Get a list of memberships for a person
* @param Pman_Core_DataObjects_Person $person who
COALESCE((
SELECT
- GROUP_CONCAT( core_group.name separator '\n')
+ GROUP_CONCAT( CASE WHEN core_group.display_name = '' THEN core_group.name ELSE core_group.display_name END separator '\n')
FROM
core_group_member
LEFT JOIN
core_group.id = core_group_member.group_id
WHERE
core_group_member.user_id = core_person.id
+ ORDER BY
+ core_group.display_name ASC
), '') as member_of");
}