近期在开发一个平台,平台的展示项需要分权,对应部门进行限制访问,决定利用session进行权限限制。
下面是具体实现,暂未具体设计用户数据权限表,所以粗略写了几个模拟成员来模拟功能,若是急用觉得也还合适。
#用户密码
allowed = (
('admin', '123123'),
('cuibing', '123123')
)
#权限模拟,利用字典模拟了一个类似switch
def getlevel(username):
level = {
'admin':3,
'cuibing':1
}
return level.get(username)
class Login:
def GET(self):
return render.login()
def POST(self):
i = web.input()
username = i.get('username')
passwd = i.get('password')
if (username, passwd) in allowed:
#账户校验成功标记
session.logged_in = True
#此处就是赋予权值的过程。
session.level = getlevel(username)
raise web.seeother('/')
else:
return web.seeother('/loginerror')
class Tables:
def GET(self):
if session.get('logged_in', False):
#这里如果没有logged_in的值就会默认返回False
try:
if not session.logged_in:
#防止未登录的url直接跳转
return web.seeother('/login')
elif session.level < 2:
#前面的铺垫工作终于起作用了,这里我将table页的权制设定为2
return "You have no permission to visit this page!"
else:
return render.tables()
except Exception, e:
ErrStr = "tables:"+ str(e)
logs.writeog(ErrStr)
#这里利用logging写了一个日志系统
return web.seeother('/fasle')
else:
raise web.seeother('/login')
2024 - 快车库 - 我的知识库 重庆启连科技有限公司 渝ICP备16002641号-10
企客连连 表单助手 企服开发 榜单123