Python 学习 第十篇 CMDB用户权限管理

2016-10-10 16:29:17

标签: python
版权声明:原创作品,谢绝转载!否则将追究法律责任。

不管是什么系统,用户权限都是至关重要的。所以我在注册用户的时候,就为他们分了两种权限。一种是普通用户的权限,一种是管理员权限。普通用户在数据库中的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()[0for 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 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<!-- 资产管理 -->

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

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

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

本文出自 “不抛弃!不放弃” 博客,谢绝转载!

 
 周福金
1人
了这篇文章
类别:python┆阅读(57)┆评论(0) ┆ 返回博主首页返回博客首页

Python 学习 第十篇 CMDB用户权限管理的更多相关文章

  1. 练习:python 操作Mysql 实现登录验证 用户权限管理

    python 操作Mysql 实现登录验证 用户权限管理

  2. ClickHouse学习系列之二【用户权限管理】

    背景 最近花了些时间看了下ClickHouse文档,发现它在OLAP方面表现很优异,而且相对也比较轻量和简单,所以准备入门了解下该数据库系统.在安装完之后首先做的应该如何设置用户密码以及权限控制.因为 ...

  3. Python 学习 第十篇:正则表达式 - re

    规则表达式(Regular Expression, RE),又称作正则表达式,通常用于检索.替换符合指定规则的文本,正则表达式定义的规则,称作模式(Pattern),即正则表达式的作用是从文本中查找到 ...

  4. Python学习第十篇——函数初步

    def make_album(name,album_name,song_nums = 1): dict_album = {name:[album_name]} if int(song_nums) &g ...

  5. python学习第十篇——while 的灵活运用

    sandwiches_orders = ['apple','banana','mango',"apple","watermelon"] finished_san ...

  6. PostgreSQL学习之【用户权限管理】说明

    背景 最近在学习PostgreSQL,看了用户权限管理文档,涉及到的知识点比较多,顺便写篇文章进行整理并不定时更新,也方便自己后续进行查阅. 说明 注意:创建好用户(角色)之后需要连接的话,还需要修改 ...

  7. Python学习笔记基础篇——总览

    Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...

  8. Python学习笔记进阶篇——总览

    Python学习笔记——进阶篇[第八周]———进程.线程.协程篇(Socket编程进阶&多线程.多进程) Python学习笔记——进阶篇[第八周]———进程.线程.协程篇(异常处理) Pyth ...

  9. Jenkins拾遗--第三篇(用户权限管理)

    采访过很多实用Jenkins的同学,发现Jenkins的安全是一个很薄弱的地方.很多公司用作生产部署的Jenkins安全管理都不是很规范,就更别提测试用的Jenkins了. 其实Jenkins是一个很 ...

随机推荐

  1. 【产品体验】ONE一个

    第二篇博客,加油加油~~本人产品新人,学习中,希望大家多多指教!  先来两张ONE的界面图镇楼——        ONE简介: “复杂世界里,一个就够了.”这是一款轻量级的文艺阅读应用,每日更新一张图 ...

  2. JQUERY 插件开发——LAZYLOADIMG(预加载和延迟加载图片)

    开发背景 本插件开发是近期写的最后一个插件了,接下来我想把最近研究的redis最为一个系列阐述下.当然Jquery插件开发是我个人爱好,我不会停止,在将来的开发中我会继续完善,当然也会坚持写这个系列的 ...

  3. 网页错误404 or 500

    HTTP 错误 400 400 请求出错 由于语法格式有误,服务器无法理解此请求.不作修改,客户程序就无法重复此请求. HTTP 错误 401 401.1 未授权:登录失败 此错误表明传输给服务器的证 ...

  4. 【POJ3208】 (DP)

    Apocalypse Someday Description The number 666 is considered to be the occult “number of the beast” a ...

  5. keil多文件组织方法

    方法一 首先新建一个main.c的文件,加入到项目中,该文件中主要写main函数,然后,新建文件,如delay.c,编写内容之后,不要加入到项目,而是在main.c文件的开始写上#include“de ...

  6. ECHO.js 纯javascript轻量级延迟加载

    演示 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf ...

  7. 判断iis是否已经安装

    判断iis是否已经安装? 访问http://127.0.0.1 能得到正确页面的是已经安装. 活者查看控制面板-添加删除程序-windows组件-internet信息服务(IIS)前面的没有打勾则没有 ...

  8. JQuery中trim函数的具体实现代码

    由于Javascript 1.8.1 之前的版本,没有内置 trim 函数,所以 JQuery 对它有自己的实现.不同的JQuery版本,trim函数的实现也不尽相同. 阅读本文需要掌握正则表达式用法 ...

  9. Hibernate(五)一对一单向关联映射

    上次的博文中 Hibernate从入门到精通(四)基本映射我们已经讲解了一下基本映射和相关概念,接下来 我们会讲稍微复杂点的映射——关系映射. 关系映射分类 关系映射即在基本映射的基础上处理 多个相关 ...

  10. 全面理解Java异常的运行机制

    1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解.不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单.听话. ...