Python 学习 第十篇 CMDB用户权限管理
2016-10-10 16:29:17
不管是什么系统,用户权限都是至关重要的。所以我在注册用户的时候,就为他们分了两种权限。一种是普通用户的权限,一种是管理员权限。普通用户在数据库中的value是user,管理员的value是admin。
因为我想设计的系统是只有一位管理员的。所以这里我没有根据角色来进行判断。而是根据他的用户名来判断。管理员的用户名是唯一的,那就是admin。
闲话少说,先把注册用户的代码贴上来
逻辑端:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
@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"}) |
数据端代码:
|
1
2
3
4
|
def add_user(userlist): sql="insert into users(%s)values('%s')"%(",".join(userlist.keys()),"','".join(userlist.values())) curs.execute(sql) conn.commit() |
前端代码:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
...省略 <div class="form-group"> <label for="password" class="col-sm-2 control-label">密码<span class="red-fonts"></span></label> <div class="col-sm-8"> <input id="password" name="password" placeholder="密码" type="password" class="form-control"> </div> </div> <div class="form-group"> <label for="password" class="col-sm-2 control-label">确认密码</label> <div class="col-sm-8"> <input id="re_password" name="re_password" placeholder="再次确认密码" type="password" class="form-control"> </div> </div> <div class="form-group"> <label for="role" class="col-sm-2 control-label">角色</label> <div class="col-sm-8"> <select name="role"> <option value="admin" class="form-control">管理员</option> <option value="user" class="form-control">普通用户</option> </select> </div> </div> <div class="form-group"> <label for="status" class="col-sm-2 control-label">状态</label> <div class="col-sm-8"> <select name="status"> <option value="0" class="form-control">激活</option> <option value="1" class="form-control">锁定</option> </select> </div> </div>...省略 |
因为我的前端是从别的地方套用过来的。这里我采用了继承
判断用户权限就在base.html这个模板里面做
|
1
2
3
4
5
6
|
<ul class="nav nav-second-level collapse"> <li class="group"><a href="/userinfo">个人中心</a></li> {%if username=='admin'%} <li class="user"><a href="/userlist">用户列表</a></li> {%endif%} </ul> |
这里的username 是从逻辑端传到前端的。细心的同学好好看下就知道了
|
1
2
3
4
5
6
7
8
9
10
|
<li id="jasset"><a><i class="fa fa-inbox"></i> <span class="nav-label">资产管理</span><span class="fa arrow"></span></a> {%if username=='admin'%} <ul class="nav nav-second-level collapse"> <li class="group"><a href="/idc">机房管理</a></li> <li class="asset"> <a href="/cabinet">机柜管理</a></li> <li class="idc"> <a href="/server">服务器管理</a></li> </ul> {%endif%}</li> <!-- 资产管理 --> |
到这里。用户权限就已经做完了
普通用户只可以看到他自己的个人信息。
管理员用户可以看到所有的信息
本文出自 “不抛弃!不放弃” 博客,谢绝转载!
![]() |
![]() |
Python 学习 第十篇 CMDB用户权限管理的更多相关文章
- 练习:python 操作Mysql 实现登录验证 用户权限管理
python 操作Mysql 实现登录验证 用户权限管理
- ClickHouse学习系列之二【用户权限管理】
背景 最近花了些时间看了下ClickHouse文档,发现它在OLAP方面表现很优异,而且相对也比较轻量和简单,所以准备入门了解下该数据库系统.在安装完之后首先做的应该如何设置用户密码以及权限控制.因为 ...
- Python 学习 第十篇:正则表达式 - re
规则表达式(Regular Expression, RE),又称作正则表达式,通常用于检索.替换符合指定规则的文本,正则表达式定义的规则,称作模式(Pattern),即正则表达式的作用是从文本中查找到 ...
- Python学习第十篇——函数初步
def make_album(name,album_name,song_nums = 1): dict_album = {name:[album_name]} if int(song_nums) &g ...
- python学习第十篇——while 的灵活运用
sandwiches_orders = ['apple','banana','mango',"apple","watermelon"] finished_san ...
- PostgreSQL学习之【用户权限管理】说明
背景 最近在学习PostgreSQL,看了用户权限管理文档,涉及到的知识点比较多,顺便写篇文章进行整理并不定时更新,也方便自己后续进行查阅. 说明 注意:创建好用户(角色)之后需要连接的话,还需要修改 ...
- Python学习笔记基础篇——总览
Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...
- Python学习笔记进阶篇——总览
Python学习笔记——进阶篇[第八周]———进程.线程.协程篇(Socket编程进阶&多线程.多进程) Python学习笔记——进阶篇[第八周]———进程.线程.协程篇(异常处理) Pyth ...
- Jenkins拾遗--第三篇(用户权限管理)
采访过很多实用Jenkins的同学,发现Jenkins的安全是一个很薄弱的地方.很多公司用作生产部署的Jenkins安全管理都不是很规范,就更别提测试用的Jenkins了. 其实Jenkins是一个很 ...
随机推荐
- autoconf automake libtool
这是一个 autoconf / automake 的 "Hello World"gztt.ll@gmail.com 主要步骤是- 准备工程目录结构和程序- autoscan 生成 ...
- bzoj 2705: [SDOI2012]Longge的问题 歐拉函數
2705: [SDOI2012]Longge的问题 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 1035 Solved: 669[Submit][S ...
- PYTHON调用JENKINS的API来进行CI
我查到的相关API有两套,我主要用的是python-jenkins. https://pypi.python.org/pypi/python-jenkins/ 按语法调用即可... import je ...
- 深入浅出Node.js (附录D) - 搭建局域NPM仓库
D.1 NPM仓库的安装 D.1.1 安装Erlang和CouchDB D.1.2 搭建NPM仓库 D.2 高阶应用 D.2.1 镜像仓库 D.2.2 私有模块应用 D.2.3 纯私有仓库 D.3 总 ...
- 使用 Chef 管理 Azure 资源
发布于 2014-07-08 作者 陈 忠岳 Chef 是一款开源的开发运营(DevOps)工具,用以应对 IT 基础设施方面的挑战.微软开放技术有限公司(简称"微软开放技术" ...
- ORACLE软件下载地址
Oracle Database 11g Release 2 Standard Edition and Enterprise Edition Software Downloads Oracle 数据库 ...
- HDOJ/HDU 2555 人人都能参加第30届校田径运动会了(判断加排序~)
Problem Description 杭州师范大学第29届田径运动会圆满的闭幕了,本届运动会是我校规模最大,参赛人数最多的一次运动会.在两天半时间里,由学生.教工组成的61支代表队共2664名运动员 ...
- JavaScript高级程序设计11.pdf
与操作字符串有关的最后一个方法是localeCompare(),这个方法比较两个字符串,按照字符串的字母表中的位置分别返回-1,0,1 var stringValue="yellow&quo ...
- xrdp远程 & watchdog 启用与测试 & WebRTC
sudo apt-get install xrdp sudo apt-get install vnc4server tightvncserver echo "xfce4-session&qu ...
- 实现自己的脚本语言ngscript之零
正式开始介绍前先扯点没用的. 从小玩basic长大的小朋友大多有一个梦想,就是自己实现一个basic解释器. 不过这里我实现的不是basic,而是一个语法和功能类似javascript的东西. 暂且称 ...

