src/Biz/Role/Util/PermissionBuilder.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace Biz\Role\Util;
use AppBundle\Common\Tree;
use AppBundle\Common\ArrayToolkit;
use Symfony\Component\Yaml\Yaml;
use AppBundle\Common\PluginVersionToolkit;
use Topxia\Service\Common\ServiceKernel;
class PermissionBuilder
{
private $position = 'admin';
private static $builder;
private $cached = array();
private function __construct()
{
}
public static function instance()
{
if (empty(self::$builder)) {
self::$builder = new self();
}
return self::$builder;
}
/**
* @param array $roles 角色
*
* @return array $permissions[]
*/
public function getPermissionsByRoles(array $roles)
{
if (empty($roles)) {
return array();
}
$permissionBuilder = self::instance();
$originPermissions = $permissionBuilder->getOriginPermissions();
if (in_array('ROLE_SUPER_ADMIN', $roles)) {
$permissions = $originPermissions;
} else {
$roleService = ServiceKernel::instance()->createService('Role:RoleService');
$permissionCode = array();
foreach ($roles as $code) {
$role = $roleService->getRoleByCode($code);
if (empty($role['data'])) {
$role['data'] = array();
}
$permissionCode = array_merge($permissionCode, $role['data']);
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。