python用户权限设计思路_Python 学习 第十篇 CMDB用户权限管理

不管是什么系统,用户权限都是至关重要的。所以我在注册用户的时候,就为他们分了两种权限。一种是普通用户的权限,一种是管理员权限。普通用户在数据库中的value是user,管理员的value是admin。

因为我想设计的系统是只有一位管理员的。所以这里我没有根据角色来进行判断。而是根据他的用户名来判断。管理员的用户名是唯一的,那就是admin。

闲话少说,先把注册用户的代码贴上来

逻辑端:@app.route("/adduser",methods=['GET','POST'])

def adduser():

if request.method =="GET":

username=session.get("name")

return render_template("register.html",username=username)

#前端post请求,逻辑端通过request.form获取整个表单的值

if request.method =="POST":

userlist=dict((k,v[0]) for k,v in dict(request.form).items())

userlist['password']=hashlib.md5(userlist['password']+salt).hexdigest()

userlist['re_password']=hashlib.md5(userlist['re_password']+salt).hexdigest()

if userlist["name"] in [ n.values()[0] for n in get_userlist(["name"]) ]:

errmsg = "username is exist"

return json.dumps({'code':'1','errmsg':errmsg})

if not userlist["name"] or not userlist["password"]:

errmsg = "username and password is not empty"

return json.dumps({'code':'1','errmsg':errmsg})

if userlist["password"] != userlist["re_password"]:

errmsg="password is error"

return json.dumps({'code':'1','errmsg':errmsg})

fields = ["name","name_cn","password","mobile","email","role","status"]

values = [ '%s'%userlist[x] for x in fields]

userdict = dict([(k,values[i]) for i,k in enumerate(fields)])

add_user(userdict)

return json.dumps({'code':'0','result':"register sucess"})

数据端代码:def add_user(userlist):

sql="insert into users(%s)values('%s')"%(",".join(userlist.keys()),"','".join(userlist.values()))

curs.execute(sql)

conn.commit()

前端代码:...省略

密码

确认密码

角色

管理员

普通用户

状态

激活

锁定

...省略

因为我的前端是从别的地方套用过来的。这里我采用了继承

判断用户权限就在base.html这个模板里面做

个人中心

{%if username=='admin'%}

用户列表

{%endif%}

这里的username 是从逻辑端传到前端的。细心的同学好好看下就知道了

资产管理

{%if username=='admin'%}

机房管理

机柜管理

服务器管理

{%endif%}

到这里。用户权限就已经做完了

普通用户只可以看到他自己的个人信息。

管理员用户可以看到所有的信息

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值