请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于重写权限管理系统,有劳bobby老师解惑,谢谢!

bobby老师,您好!
先谈一下本人的情况,本人非专职程序员,但之前都是我用golang写接口给外包前端团队调用数据。
这次PC前端与后端接口需要我一人搞定,在学习django之前我考虑过golang+vue-admin,对比下来认为没有django适合,同时因为是内部管理项目对并发没什么要求,能快速出活就好。

我这里有个权限管理需求是这样的:
公司有几个下属分公司,分公司的系统管理员需要对其所在分公司的下属部门/员工进行权限分配,
但是分公司的管理员给下属的部门/员工分配权限只能在总公司分配给分公司的权限范围之内。
并且同表数据权限以分公司为基准。

比如:
系统一共有A、B、C、D四个模块,
总公司超级管理员分配给1号分公司的权限为 A、B、D,
则1号分公司的管理员只能对下属的部门/员工在A、B、D三个模块里进行分配权限,
当然他自己也无法访问C模块(在权限分配里C不可见)。
1号公司与2号公司的下属员工只能看到自己分公司的数据。(这块的知识您在本章有讲解)

另外:
后端需要服务多个前端(PC, 小程序, APP),
总公司管理员与分公司管理员统一使用PC,各分公司员工统一使用小程序或者APP。
(我同时有购买您的DRF课)

请教bobby老师,
一、用django权限系统实现这样的需求,是否还有快速开发的优势?或者说干脆自己写权限系统更好?
二、在有多端的情况下,是干脆所有的前端统一使用RESTful接口好?还是PC端就用xadmin? 因为是新项目,需求后面的变动可能性比较大。

麻烦bobby老师帮我梳理一下,感谢!

正在回答 回答被采纳积分+3

1回答

bobby 2020-01-15 00:33:17
  1. 这个权限 django的组管理 搭配着xadmin的重写queryset是可以完成的,但是具体的权限过滤需要自己在queryset中重写

  2. 多端的情况下 使用restful统一比较好,github上也有开源项目可以在drf中直接给不同的view分配不同的权限。xadmin有react重构的前后端分离的分支代码,你可以用这个分支的代码。听说作者也在积极的专门为drf做开发,使用这个后期即使变动大修改也方便

0 回复 有任何疑惑可以回复我~
  • 提问者 wlxz #1
    关于第1点,在queryset中重写,是给各分公司管理员权限 硬编码来实现吗?
    回复 有任何疑惑可以回复我~ 2020-01-16 00:46:18
  • bobby 回复 提问者 wlxz #2
    是的 这里通过判断用户所属公司和组 来确定应该返回哪些数据
    回复 有任何疑惑可以回复我~ 2020-01-16 15:27:19
  • 提问者 wlxz 回复 bobby #3
    也就是说,如果 所属公司和组 是动态的,就需要重写django的权限模块了
    回复 有任何疑惑可以回复我~ 2020-01-16 19:26:54
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信