Traq\Permissions::add PHP 메소드

add() 공개 정적인 메소드

Add a permission.
public static add ( string $action, boolean $default = false, $category = 'misc' )
$action string Permission action
$default boolean Default value
    public static function add($action, $default = false, $category = 'misc')
    {
        $permissions = static::getPermissions(true);
        if (isset($permissions[$category][$action])) {
            throw new Exception("Permission [{$category}][{$action}] already exists.");
        }
        static::$permissions[$category][$action] = $default;
    }

Usage Example

예제 #1
0
파일: permissions.php 프로젝트: nirix/traq
<?php

use Traq\Permissions;
$testSuite->createGroup('Permissions API', function ($g) {
    $g->test('Get defaults', function ($t) {
        $t->assertArray(Permissions::getDefaults());
        $t->assertArray(Permissions::getDefaults(true));
    });
    $g->test('Get permissions', function ($t) {
        $t->assertArray(Permissions::getPermissions());
        $t->assertArray(Permissions::getPermissions(true));
    });
    $g->test('Add permission', function ($t) {
        Permissions::add('test_add_permission', true, 'test');
        $permissions = Permissions::getPermissions();
        $permissionsWithCategories = Permissions::getPermissions(true);
        $t->assertTrue(isset($permissions['test_add_permission']));
        $t->assertTrue(isset($permissionsWithCategories['test']['test_add_permission']));
    });
    $g->test('Permission exists', function ($t) {
        try {
            Permissions::add('test_add_permission', true, 'test');
            Permissions::add('test_add_permission', true, 'test');
        } catch (\Exception $e) {
            $caught = true;
        }
        $t->assertTrue(isset($caught));
    });
});