2018-01-04 18:57:48 395次浏览 2条回答 0 悬赏 10 金钱

正在做一个项目,有后台管理、WEB网页前端、微信端(API),客户希望我们开发的权限管理可以统一管理所有路由权限。想了好久,都不知道怎么做比较合适。看各位兄弟姐妹有什么好的建议没啊?
我目前想到的思路如下(请各位指点一下。):
环境:
高级版2.0
加安装两个扩展:
dmstr/yii2-adminlte-asset
mdmsoft/yii2-admin

思路一:
在common配置中配置:

'authManager' => [
    'class' => 'yii\rbac\DbManager',
],

后台管理、WEB网页前端、微信端(API)都用一套rbac,为避免路由重名,后台管理、WEB网页前端、微信端(API)的路由都设置为唯一的,比如都有article/index,则分别加前缀给予区分,barticle/index、faticle/index、aarticle/index;

思路二:
user、assignment、item、item_child、rule都做三套,分别给后台管理、WEB网页前端、微信端(API)使用

思路三:
在common配置中的params中配置

'mdm.admin.configs' => [
        'advanced' => [
                'app-backend' => [
                        '@common/config/main.php',
                        '@common/config/main-local.php',
                        '@backend/config/main.php',
                        '@backend/config/main-local.php',
                ],
                'app-frontend' => [
                        '@common/config/main.php',
                        '@common/config/main-local.php',
                        '@frontend/config/main.php',
                        '@frontend/config/main-local.php',
                ],
        ],
],

然后修改部分源码。

哪种方式好像都太费劲,感觉有些不对劲,恳请各位帮忙指点一下。谢谢!

  • 回答于 2018-01-04 23:22 举报

    用户有几种用户(表)?
    如果只有一种用户,那就用同一个rbac,那只要在三个项目分别添加同一个过滤器就是了,过滤器用can方法检查权限即可。

    3 条回复
    回答于 2018-01-05 17:52 回复

    情况是这样,后台是公司管理员、员工、合作伙伴用户,web前端和微信前端是会员,但合作伙伴存在既要用后台,也会用前端,即既是商家,又是消费者。过滤起来还是挺费劲。其实我初步感觉,应该都使用一套rbac,但路由能区分是不同的应用。但目前问题是想我思路三提的,那种方式要修改部分源码,怕改成问题来。

    回答于 2018-01-05 18:05 回复

    你还没回答数据库有几个用户表?管理员、员工、合作伙伴、会员分别存在哪个表里?

    =======
    从你的描述来看,应该有几个用户表。
    路由表如果没重复的可以用一张,但assignment表有几个用户表就要几个。

    回答于 2018-01-06 22:39 回复

    思路1和3是共用一个用户表,思路2是2个用户表,后台1个,web和微信共用1个。对于客户来说,他们是希望可实现统一管理用户和权限即可。

  • 回答于 2018-01-06 18:17 举报

    这个问题我之前考虑过,我最后只把RBAC给后台用了,前台不用了。因为我发现我不管怎么弄,总感觉画风不对。

    1 条回复
    回答于 2018-01-06 22:43 回复

    同感啊!web前端和微信前端,如要设置权限都不知道菜单界面怎么处理才好。如果后台能统一管理用户、路由、菜单、权限分配就可完美解决这个问题。但问题是现在没有好的方法可以实现统一管理。

您需要登录后才可以回答。登录 | 立即注册
Michael_Mo
见习主管

Michael_Mo

注册时间:2017-03-09
最后登录:2018-01-15
在线时长:18小时11分

热门问题