Skip to content

鉴权工具 PermissionUtility

App\Utilities\PermissionUtility

获取用户主角色

php
PermissionUtility::getUserMainRole($userId, $langTag);
参数名类型是否必传说明
userIdNumberYESusers->id
langTagStringNO角色名使用的语言
  • 如果主角色有过期时间,并且已经过期,则输出继承角色。
  • 如果无继承角色(或者该继承 ID 找不到角色),则以配置表 default_role 键名键值的角色为准。
  • 如果配置表键值为空(或找不到角色),则输出 null

获取用户所有角色

php
PermissionUtility::getUserRoles($userId, $langTag);
参数名类型是否必传说明
userIdNumberYESusers->id
langTagStringNO角色名使用的语言
  • 仅输出有效期内的角色列表,包括主角色。

获取不显示的小组 ID

php
PermissionUtility::getGroupFilterIds($userId);
参数名类型是否必传说明
userIdNumberNOusers->id

获取不输出帖子的小组 ID

php
PermissionUtility::getPostFilterByGroupIds($userId);
参数名类型是否必传说明
userIdNumberNOusers->id

判断用户是否归属该账号

php
PermissionUtility::checkUserAffiliation($userId, $accountId);
参数名类型是否必传说明
userIdNumberYESusers->id
accountIdNumberYESaccounts->id

判断用户角色权限

php
PermissionUtility::checkUserRolePerm($userId, $permRoleIds);
参数名类型是否必传说明
userIdNumberYESusers->id
permRoleIdsArrayNO有权角色的 ID 数组 ["1","2"]

将拥有权限的角色 ID 和需要确认的用户 ID 传参,该功能会判断用户名下所有角色是否拥有授权角色。

判断用户对话权限

php
PermissionUtility::checkUserConversationPerm($receiveUserId, $authUserId, $langTag);
参数名类型是否必传说明
receiveUserIdNumberYES收信人 users->id
authUserIdNumberYES发信人 users->id
langTagStringNO语言标签,可不传,不传则使用默认语言
查看结果
  • 有权则输出为 0
  • 无权则输出对应的 Error Code

判断用户是否为小组管理员

php
PermissionUtility::checkUserGroupAdmin($groupId, $userId);
参数名类型是否必传说明
groupIdNumberYESgroups->id
userIdNumberYESusers->id

判断用户是否有小组发表权限

php
PermissionUtility::checkUserGroupPublishPerm($groupId, $permissions, $userId);
参数名类型是否必传说明
groupIdNumberYESgroups->id
permissionsArrayYESgroups->permissions
userIdNumberYESusers->id
查看结果
json
{
    "allowPost": true, // 是否可发帖
    "reviewPost": false, // 发帖是否需要审核
    "allowComment": true, // 是否可发评论
    "reviewComment": false, // 发评论是否需要审核
}

判断帖子阅读权限

php
PermissionUtility::checkPostAuth($postId, $userId);
参数名类型是否必传说明
postIdNumberYESposts->id
userIdNumberYESusers->id

对需要授权的帖子,判断当前用户是否符合授权要求

判断帖子是否可以评论

php
PermissionUtility::checkPostCommentPerm($pidOrPostId, $userId);
参数名类型是否必传说明
pidOrPostIdstringNOposts->id
userIdNumberNOusers->id

判断内容编辑状态

php
PermissionUtility::checkContentEditPerm($createdDatetime, $editTimeConfig, $timezone, $langTag);
参数名类型是否必传说明
createdDatetimeCarbonYESposts->created_atcomments->created_at
editTimeConfigNumberYESpost_edit_time_limitcomment_edit_time_limit
timezoneStringNOUTC 时区,可不传,不传则使用数据库时区
langTagStringNO语言标签,可不传,不传则使用默认语言

判断扩展权限

php
PermissionUtility::checkExtendPerm($fskey, $usageType, $groupId, $userId);
参数名类型是否必传说明
fskeyStringYES插件 Fskey
usageTypeNumberYESapp_usages->usage_type
groupIdNumberNO小组 id groups->id
userIdNumberNO用户 id users->id

Released under the Apache-2.0 License