Added the first work on the administration area.
This commit is contained in:
@@ -63,20 +63,33 @@ class IDF_Form_MembersConf extends Pluf_Form
|
||||
if (!$this->isValid()) {
|
||||
throw new Exception(__('Cannot save the model from an invalid form.'));
|
||||
}
|
||||
self::updateMemberships($this->project, $this->cleaned_data);
|
||||
$this->project->membershipsUpdated();
|
||||
}
|
||||
|
||||
/**
|
||||
* The update of the memberships is done in different places. This
|
||||
* avoids duplicating code.
|
||||
*
|
||||
* @param IDF_Project The project
|
||||
* @param array The new memberships data in 'owners' and 'members' keys
|
||||
*/
|
||||
public static function updateMemberships($project, $cleaned_data)
|
||||
{
|
||||
// remove all the permissions
|
||||
$cm = $this->project->getMembershipData();
|
||||
$cm = $project->getMembershipData();
|
||||
$def = array('owners' => Pluf_Permission::getFromString('IDF.project-owner'),
|
||||
'members' => Pluf_Permission::getFromString('IDF.project-member'));
|
||||
$guser = new Pluf_User();
|
||||
foreach ($def as $key=>$perm) {
|
||||
foreach ($cm[$key] as $user) {
|
||||
Pluf_RowPermission::remove($user, $this->project, $perm);
|
||||
Pluf_RowPermission::remove($user, $project, $perm);
|
||||
}
|
||||
foreach (preg_split("/\015\012|\015|\012|\,/", $this->cleaned_data[$key], -1, PREG_SPLIT_NO_EMPTY) as $login) {
|
||||
foreach (preg_split("/\015\012|\015|\012|\,/", $cleaned_data[$key], -1, PREG_SPLIT_NO_EMPTY) as $login) {
|
||||
$sql = new Pluf_SQL('login=%s', array(trim($login)));
|
||||
$users = $guser->getList(array('filter'=>$sql->gen()));
|
||||
if ($users->count() == 1) {
|
||||
Pluf_RowPermission::add($users[0], $this->project, $perm);
|
||||
Pluf_RowPermission::add($users[0], $project, $perm);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user