联系我们
软件销售
投诉邮箱

q@xunruicms.com

应用插件可以将自己的内容权限页面展示到系统框架自带的权限设置界面中,如下手册区域:

https://www.xunruicms.com/doc/801.html


配置介绍部分


配置文件:

/dayrui/App/应用目录/Config/Auth.php


文件内容格式:

<?php

/**
 * 嵌入权限页面
 **/

return [
    
    'app' => [
        '插件页面下的.html'
    ],

    'module' => [
        '模块页面下的.html'
    ],

    'member' => [
        '用户页面下的.html'
    ],
];

一个插件支持多个权限页面配置。


html文件定义:

/dayrui/App/插件目录/Views/auth/文件名.html

内容语法和普通模板语法一致!!


配置定义完成后,在后台权限面板中可以看到此插件的对应文件配置



代码调用部分

一、app参数调用:

app参数例子【自定义页面】插件

// 以自定义页面插件为例子
if (\Phpcmf\Service::M('member_auth')->app_auth($app, 'show', $this->member)) {
    $this->_msg(0, dr_lang('您的用户组禁止访问自定义页面'));
    return;
}

注意例子中的name数组,一定要保持这种格式,不能增加和减少维数。


二、module参数调用:

module参数例子【评论系统】插件

// 以自评论系统插件为例子,其中的demo表示demo模块
if (!\Phpcmf\Service::M('member_auth')->module_auth("demo", "comment_add")) {
    // 判断用户评论权限
    $this->_json(0, dr_lang('您的用户组无权限提交'));
}

注意例子中的name数组,一定要保持这种格式,不能增加和减少维数。


三、member参数调用:

1、配置文件

/dayrui/App/插件目录/Config/Auth.php
<?php

/**
 * 嵌入权限页面
 **/

return [

    'member' => [
        'test.html',
    ],

];


2、新建上述对应的test.html文件:

/dayrui/App/插件目录/Views/auth/test.html

默认代码如下:

<div class="form-group">
    <label class="col-md-2 control-label">测试插件选项值</label>
    <div class="col-md-10">
        <label>
            <input type="text" name="data[member][my_test_value]" value="{intval($data['member']['my_test_value'])}" class="form-control">
        </label>
    </div>
</div>
<div class="form-group">
    <label class="col-md-2 control-label">测试插件勾选值</label>
    <div class="col-md-10">
        <input type="checkbox" name="data[member][my_test_use]" value="1" {if $data['member']['my_test_use']}checked{/if} data-on-text="{dr_lang('是')}" data-off-text="{dr_lang('否')}" data-on-color="success" data-off-color="danger" class="make-switch" data-size="small">

    </div>
</div>

注意上面的name数组,一定要保持这种格式,不能增加和减少维数:

image

其中,my_test_value是文本值(只能存储数字)例子,my_test_use是单选值例子,其他值不能变


3、切换到权限配置的用户配置选项

image

4、程序开发中读取上例子中的my_test_value值

\Phpcmf\Service::M('member_auth')->member_auth('my_test_value', $this->member)

这里读取的是累计值,当用户拥有多个用户组时,这里读取的值是他多个身份的累计值,例如:

用户A同时拥有 【用户组1和用户组2】,而用户组1和用户组2分别设置了:10和20,那么,

如果要读取此用户在【用户组1和用户组2】的最大值,也就是只获取值是20。




本文地址:https://www.xunruicms.com/doc/995.html