权限控制
本文整理于网络,仅供阅读参考,如有不妥之处,敬请批评指正!如果您想加入微擎社区版技术大牛微信群和QQ群,请联系微信: ccccyyyy4444 或者 QQ:155120699
应用的后台操作权限,系统有如下机制,开发者可按此来规划自己的应用:
- 权限分为两部分:菜单权限、功能权限;
- 主管理员及创始人可给应用操作员分配响应的权限;
- 可通过函数 module_permission_fetch($name)获取某个应用的所有权限;
- 可通过函数 permission_account_user_menu($uid, $uniacid, $module_name)获取某一用户在某个公众号下某个应用的操作权限,进而在页面及功能上实现权限的控制;
菜单权限
菜单权限是指:应用菜单权限(即manifest.xml中bindings->menu节点下所有节点权限) + 参数设置权限 + 应用入口权限,权限标识: 应用标识_menu_权限名,应用标识_setting,应用标识_cover_权限名
功能权限
功能权限是指:应用内部功能权限(即manifest.xml中permissions节点下所有节点权限),权限标识:应用标识_permission_权限名
示例
以应用we7_coupon为例:
manifest.xml部分代码如下:
<application setting="true" cloud_setting="true">
<name><![CDATA[系统卡券]]></name>
<identifie><![CDATA[we7_coupon]]></identifie>
...
</application>
...
<bindings>
<cover>
<entry title="会员卡入口设置" do="card" />
<entry title="收银台入口设置" do="clerk" />
</cover>
<menu>
...
<entry title="会员卡设置" do="membercard" state="" direct="false" />
<entry title="会员卡管理" do="cardmanage" state="" direct="false" />
<entry title="店员工作台" do="clerkdeskwelcome" state="" direct="false" />
</menu>
</bindings>
<permissions>
<entry title="积分充值" do="mc_credit1" />
<entry title="余额充值" do="mc_credit2" />
<entry title="消费" do="mc_conusme" />
<entry title="发放会员卡" do="mc_card" parent="clerkdeskwelcome"/>
<entry title="卡券核销" do="coupon_consume" />
</permissions>
...
通过函数 module_permission_fetch($name)获取某个应用的所有权限
load()->model('module');
$result = module_permission_fetch('we7_coupon');
print_r($result);
结果如下:
Array
(
[we7_coupon] => Array
(
[permission] => Array
(
//以下为参数设置权限
[0] => Array
(
[title] => 参数设置
[permission] => we7_coupon_settings
)
//以下为应用入口权限
[1] => Array
(
[title] => 会员卡入口设置
[permission] => we7_coupon_cover_card
)
[2] => Array
(
[title] => 收银台入口设置
[permission] => we7_coupon_cover_clerk
)
//以下为应用菜单权限
[clerkdeskwelcome] => Array
(
[title] => 店员工作台
[permission] => we7_coupon_menu_clerkdeskwelcome
[sub_permission] => Array
(
[0] => Array
(
[title] => 发放会员卡
[permission] => we7_coupon_menu_clerkdeskwelcome_mc_card
)
)
)
[cardmanage] => Array
(
[title] => 会员卡管理
[permission] => we7_coupon_menu_cardmanage
)
[membercard] => Array
(
[title] => 会员卡设置
[permission] => we7_coupon_menu_membercard
)
//以下为应用内功能权限
[mc_credit1] => Array
(
[title] => 积分充值
[permission] => we7_coupon_permission_mc_credit1
)
[mc_credit2] => Array
(
[title] => 余额充值
[permission] => we7_coupon_permission_mc_credit2
)
[mc_conusme] => Array
(
[title] => 消费
[permission] => we7_coupon_permission_mc_conusme
)
[mc_card] => Array
(
[title] => 发放会员卡
[permission] => we7_coupon_permission_mc_card
)
[coupon_consume] => Array
(
[title] => 卡券核销
[permission] => we7_coupon_permission_coupon_consume
)
)
)
)
主管理员及创始人进入应用后可设置应用操作员及给操作员设置相应的权限
通过函数 permission_account_user_menu($uid, $uniacid, $module_name)获取某一用户在某个公众号下某个应用的操作权限
load()->model('permission');
$result = permission_account_user_menu(412, 851, 'we7_coupon');
print_r($result);
结果如下:
Array
(
[0] => we7_coupon_settings
[1] => we7_coupon_cover_card
[2] => we7_coupon_cover_clerk
[3] => we7_coupon_menu_clerkdeskwelcome
[4] => we7_coupon_permission_mc_credit2
[5] => we7_coupon_permission_mc_conusme
[6] => we7_coupon_permission_coupon_consume
)
应用操作员登录后对应后台页面显示如下(内部功能是点击店员工作台后显示):
应用内部功能(此例中是点击菜单“店员工作台”后显示)可通过此进行后端验证及先端的显示,下面2个图分别是设置并给予部分权限后的截图和拥有所有该内部功能的截图:
该内部功能的部分权限:
该内部功能的所有权限:
如果看不懂微擎社区版二次开发手册或者遇到问题,请联系微信: ccccyyyy4444 或者 QQ:155120699 ,如果我们有空闲时间,可以免费为您答疑解惑。