python访问控制权限_我的第一个python web开发框架(39)——后台接口权限访问控制处理...

前面的菜单、部门、职位与管理员管理功能完成后,接下来要处理的是将它们关联起来,根据职位管理中选定的权限控制菜单显示以及页面数据的访问和操作。

那么要怎么改造呢?我们可以通过用户的操作步骤来一步步进行处理,具体思路如下:

1.用户在管理端登录时,通过用户记录所绑定的职位信息,来确定用户所拥有的权限。我们可以在登录接口中,将该管理员的职位id存储到session中,以方便后续的调用。

2.登录成功后,跳转进入管理界口,在获取菜单列表时,需要对菜单列表进行处理,只列出当前用户有权限的菜单项。

3.在点击菜单进入相关数据页面或在数据页面进行增删改查等操作时,需要进行权限判断,判断是否有权限进行查看或操作。由于我们是前后端分离,所以权限只需要在接口进行处理。

首先我们来简单改造一下登录接口login.py,只需要在将职位id存储到session中就可以了

1 ##############################################################

2 ### 把用户信息保存到session中 ###

3 ##############################################################

4 manager_id = manager_result.get('id', 0)5 s['id'] =manager_id6 s['login_name'] =username7 s['positions_id'] = manager_result.get('positions_id', '')8 s.save()

找到上面内容,在里面插入 s['positions_id'] = manager_result.get('positions_id', '')

接下来改造菜单列表接口menu_info.py文件的@get('/api/main/menu_info/')接口,我们需要做以下操作:

1.首先从session中获取当前用户的职位id,然后根据职位id从职位表中读取对应的权限数据

2.其次在菜单的遍历组装过程中,添加判断用户的权限,没有权限的菜单项直接过滤掉

1 @get('/api/main/menu_info/')2 defcallback():3 """

4 主页面获取菜单列表数据5 """

6 #获取当前用户权限

7 session =web_helper.get_session()8 ifsession:9 _positions_logic =positions_logic.PositionsLogic()10 page_power = _positions_logic.get_page_power(session.get('positions_id'))11 else:12 page_power = ''

13 if notpage_power:14 return web_helper.return_msg(-404, '您的登录已超时,请重新登录')15

16 _menu_info_logic =menu_info_logic.MenuInfoLogic()17 #读取记录

18 result = _menu_info_logic.get_list('*', 'is_show and is_enabled', orderby='sort')19 ifresult:20 #定义最终输出的html存储变量

21 html = ''

22 for model in result.get('rows')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值