Beispiel #1
0
/**
 * Setup of a clean InDefero.
 *
 * It creates all the tables for the application.
 */
function IDF_Migrations_Install_setup($params = null)
{
    $models = array('IDF_Project', 'IDF_Tag', 'IDF_Issue', 'IDF_IssueComment', 'IDF_Conf', 'IDF_Upload', 'IDF_Search_Occ', 'IDF_IssueFile', 'IDF_Commit', 'IDF_Timeline', 'IDF_WikiPage', 'IDF_WikiRevision', 'IDF_Review', 'IDF_Review_Patch', 'IDF_Review_Comment', 'IDF_Review_FileComment', 'IDF_Key', 'IDF_Scm_Cache_Git', 'IDF_Queue', 'IDF_Gconf');
    $db = Pluf::db();
    $schema = new Pluf_DB_Schema($db);
    foreach ($models as $model) {
        $schema->model = new $model();
        $schema->createTables();
    }
    // Install the permissions
    $perm = new Pluf_Permission();
    $perm->name = 'Project membership';
    $perm->code_name = 'project-member';
    $perm->description = 'Permission given to project members.';
    $perm->application = 'IDF';
    $perm->create();
    $perm = new Pluf_Permission();
    $perm->name = 'Project ownership';
    $perm->code_name = 'project-owner';
    $perm->description = 'Permission given to project owners.';
    $perm->application = 'IDF';
    $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();
}
Beispiel #2
0
 function testDump()
 {
     $p = new Pluf_Permission();
     $p->name = 'test permission';
     $p->code_name = 'test';
     $p->description = 'Simple test permission.';
     $p->application = 'Pluf';
     $p->create();
     $json = Pluf_Test_Fixture::dump('Pluf_Permission');
     $this->assertEqual('[{"model":"Pluf_Permission","pk":1,"fields":{"id":1,"name":"test permission","code_name":"test","description":"Simple test permission.","application":"Pluf"}}]', $json);
 }
Beispiel #3
0
/**
 * Add the private column for the project.
 */
function IDF_Migrations_6PrivateProject_up($params = null)
{
    $table = Pluf::factory('IDF_Project')->getSqlTable();
    $sql = array();
    $sql['PostgreSQL'] = 'ALTER TABLE ' . $table . ' ADD COLUMN "private" INTEGER DEFAULT 0';
    $sql['MySQL'] = 'ALTER TABLE ' . $table . ' ADD COLUMN `private` INTEGER DEFAULT 0';
    $db = Pluf::db();
    $engine = Pluf::f('db_engine');
    if (!isset($sql[$engine])) {
        throw new Exception('SQLite complex migration not supported.');
    }
    $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();
}
Beispiel #4
0
 public function testRowPermission()
 {
     $user = new Pluf_User(1);
     $group = new Pluf_Group();
     $group->name = 'testRowPermission';
     $group->description = 'testRowPermission';
     $group->create();
     for ($i = 1; $i <= 5; $i++) {
         $mess = new Pluf_Message();
         $mess->user = $user;
         $mess->message = 'Dummy object to test against: ' . $i;
         $mess->create();
     }
     $perm = new Pluf_Permission();
     $perm->application = 'Pluf_RowPermission';
     $perm->code_name = 'test1';
     $perm->name = 'test1';
     $perm->description = 'test1';
     $perm->create();
     // Permission through group
     $mess = new Pluf_Message(1);
     Pluf_RowPermission::add($group, $mess, $perm);
     $this->assertEquals(false, $user->hasPerm('Pluf_RowPermission.test1', $mess));
     $user->setAssoc($group);
     $user->getAllPermissions(true);
     //reset the cache
     $this->assertEquals(true, $user->hasPerm('Pluf_RowPermission.test1', $mess));
     $user->delAssoc($group);
     $user->getAllPermissions(true);
     //reset the cache
     $this->assertEquals(false, $user->hasPerm('Pluf_RowPermission.test1', $mess));
     $user->setAssoc($group);
     $user->getAllPermissions(true);
     //reset the cache
     $this->assertEquals(true, $user->hasPerm('Pluf_RowPermission.test1', $mess));
     Pluf_RowPermission::remove($group, $mess, $perm);
     $user->getAllPermissions(true);
     //reset the cache
     $this->assertEquals(false, $user->hasPerm('Pluf_RowPermission.test1', $mess));
     // Permission through direct user
     Pluf_RowPermission::add($user, $mess, $perm);
     $user->getAllPermissions(true);
     //reset the cache
     $this->assertEquals(true, $user->hasPerm('Pluf_RowPermission.test1', $mess));
     Pluf_RowPermission::remove($user, $mess, $perm);
     $user->getAllPermissions(true);
     //reset the cache
     $this->assertEquals(false, $user->hasPerm('Pluf_RowPermission.test1', $mess));
     // Using string for the permission.
     Pluf_RowPermission::add($user, $mess, 'Pluf_RowPermission.test1');
     $user->getAllPermissions(true);
     //reset the cache
     $this->assertEquals(true, $user->hasPerm('Pluf_RowPermission.test1', $mess));
     Pluf_RowPermission::remove($user, $mess, 'Pluf_RowPermission.test1');
     $user->getAllPermissions(true);
     //reset the cache
     $this->assertEquals(false, $user->hasPerm('Pluf_RowPermission.test1', $mess));
 }