Added permission at the installation/upgrade for cleaner code.

The authorized user permission is added at the installation/upgrade step
to remove the code to remove the unncessary logic in the code.
This commit is contained in:
Loic d'Anterroches 2008-11-25 09:38:10 +01:00
parent 70616a0c95
commit 6bee793704
3 changed files with 17 additions and 10 deletions

View File

@ -78,16 +78,6 @@ class IDF_Form_TabsConf extends Pluf_Form
} }
// remove all the permissions // remove all the permissions
$perm = Pluf_Permission::getFromString('IDF.project-authorized-user'); $perm = Pluf_Permission::getFromString('IDF.project-authorized-user');
if ($perm == false) {
// We do not have this perm for the moment in the system,
// so create it.
$perm = new Pluf_Permission();
$perm->name = 'Project authorized users';
$perm->code_name = 'project-authorized-user';
$perm->description = 'Permission given to users allowed to access a project.';
$perm->application = 'IDF';
$perm->create();
}
$cm = $this->project->getMembershipData(); $cm = $this->project->getMembershipData();
$guser = new Pluf_User(); $guser = new Pluf_User();
foreach ($cm['authorized'] as $user) { foreach ($cm['authorized'] as $user) {

View File

@ -37,10 +37,18 @@ function IDF_Migrations_6PrivateProject_up($params=null)
throw new Exception('SQLite complex migration not supported.'); throw new Exception('SQLite complex migration not supported.');
} }
$db->execute($sql[$engine]); $db->execute($sql[$engine]);
$perm = new Pluf_Permission();
$perm->name = 'Project authorized users';
$perm->code_name = 'project-authorized-user';
$perm->description = 'Permission given to users allowed to access a project.';
$perm->application = 'IDF';
$perm->create();
} }
function IDF_Migrations_6PrivateProject_down($params=null) function IDF_Migrations_6PrivateProject_down($params=null)
{ {
$perm = Pluf_Permission::getFromString('IDF.project-authorized-user');
if ($perm) $perm->delete();
$table = Pluf::factory('IDF_Project')->getSqlTable(); $table = Pluf::factory('IDF_Project')->getSqlTable();
$sql = array(); $sql = array();
$sql['PostgreSQL'] = 'ALTER TABLE '.$table.' DROP COLUMN "private"'; $sql['PostgreSQL'] = 'ALTER TABLE '.$table.' DROP COLUMN "private"';
@ -51,4 +59,5 @@ function IDF_Migrations_6PrivateProject_down($params=null)
throw new Exception('SQLite complex migration not supported.'); throw new Exception('SQLite complex migration not supported.');
} }
$db->execute($sql[$engine]); $db->execute($sql[$engine]);
} }

View File

@ -62,6 +62,12 @@ function IDF_Migrations_Install_setup($params=null)
$perm->description = 'Permission given to project owners.'; $perm->description = 'Permission given to project owners.';
$perm->application = 'IDF'; $perm->application = 'IDF';
$perm->create(); $perm->create();
$perm = new Pluf_Permission();
$perm->name = 'Project authorized users';
$perm->code_name = 'project-authorized-user';
$perm->description = 'Permission given to users allowed to access a project.';
$perm->application = 'IDF';
$perm->create();
} }
function IDF_Migrations_Install_teardown($params=null) function IDF_Migrations_Install_teardown($params=null)
@ -70,6 +76,8 @@ function IDF_Migrations_Install_teardown($params=null)
if ($perm) $perm->delete(); if ($perm) $perm->delete();
$perm = Pluf_Permission::getFromString('IDF.project-owner'); $perm = Pluf_Permission::getFromString('IDF.project-owner');
if ($perm) $perm->delete(); if ($perm) $perm->delete();
$perm = Pluf_Permission::getFromString('IDF.project-authorized-user');
if ($perm) $perm->delete();
$models = array( $models = array(
'IDF_WikiRevision', 'IDF_WikiRevision',
'IDF_WikiPage', 'IDF_WikiPage',