不管是什么系统,用户权限都是至关重要的。所以我在注册用户的时候,就为他们分了两种权限。一种是普通用户的权限,一种是管理员权限。普通用户在数据库中的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%}
到这里。用户权限就已经做完了
普通用户只可以看到他自己的个人信息。
管理员用户可以看到所有的信息