Skip to content
页面梗概

助力生态可持续发展

赞助 Fresns 发展

成为赞助者

鉴权工具 PermissionUtility

App\Utilities\PermissionUtility

获取用户内容查看权限

php
PermissionUtility::getUserContentViewPerm($userId);
参数名类型是否必传说明
userIdNumberYESusers > id
查看结果
json
{
    "type": 1,  // 1.不限制 2.输出限制日期前的内容 3.不输出
    "dateLimit": "2022-06-18 10:00:00",  // 限制日期前
}

获取用户主角色权限

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

获取不显示的小组 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::checkUserStatusOfSiteMode($userId);
参数名类型是否必传说明
userIdNumberYESusers > id
查看结果
json
{
    "siteMode": "public", // 站点模型
    "userStatus": true,  // 基于站点模式的用户状态
    "expireTime": "2022-06-18 10:00:00",  // 过期时间(用户表字段)
    "expireAfter": 1,
}

判断用户权限

php
PermissionUtility::checkUserPerm($userId, $permUserIds);
参数名类型是否必传说明
userIdNumberYESusers > id
permUserIdsArrayYES有权用户的 ID 数组 ["1","2"]

将拥有权限的用户 ID 和需要确认的用户 ID 传参,该功能会判断用户 ID 是否包括在授权 IDs 当中。

判断用户角色权限

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

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

判断用户会话权限

php
PermissionUtility::checkUserDialogPerm($receiveUserId, $authUserId, $langTag);
参数名类型是否必传说明
receiveUserIdNumberYES收信人 users > id
authUserIdNumberYES发信人 users > id
langTagStringNO提示语使用的语言
查看结果
json
{
    "status": true,
    "code": 36600, // 状态为 false 时输出的提示 code
    "message": "", // 状态为 false 时输出的提示语
}

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

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::checkPostAllow($postId, $userId);
参数名类型是否必传说明
postIdNumberYESposts > id
userIdNumberYESusers > id

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

判断帖子是否可以评论

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

判断内容编辑状态

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