Skip to content

Commit

Permalink
增加permission_required
Browse files Browse the repository at this point in the history
  • Loading branch information
sonnyhcl committed May 5, 2017
1 parent 3e4f27b commit 8a66fef
Show file tree
Hide file tree
Showing 11 changed files with 39 additions and 2 deletions.
18 changes: 18 additions & 0 deletions webapp/auth/permission_required.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# -*- coding: UTF-8 -*-
from functools import wraps
from flask import session, abort
__author__ = 'sonnyhcl'

level = {'guest': 0, 'user': 1, 'admin': 2, 'root': 3}


def permission_required(permission):
def decorator(f):
@wraps(f)
def decorated_function(*args, **kwargs):
role = session.get('u_role', 'guest')
if level[role] < level[permission]:
abort(404)
return f(*args, **kwargs)
return decorated_function
return decorator
2 changes: 2 additions & 0 deletions webapp/templates/mission.html
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,10 @@ <h4 class="modal-title" id="del_title_miss">确认删除该任务信息?</h4>
<h3 id="product_manage_title">任务管理系统</h3>
<br>
<!-- 添加按钮 -->
{% if session['u_role'] == 'root' or session['u_role'] == 'admin' %}
<a id="add_mission" href="#alterMission" role="button" data-toggle="modal"
onclick="add_miss()" class="btn btn-sm btn-primary"><i class="fa fa-plus-square fa-fw"></i>添加任务</a>
{% endif %}
<!-- 表格 -->
<table class="table table-bordered table-striped table-hover display compact" cellspacing="0"
id="m_table" width="100%">
Expand Down
2 changes: 1 addition & 1 deletion webapp/templates/user.html
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ <h3 id="user_manage_title">人员管理系统</h3>
{"sTitle": "社区名"},
{"sTitle": "姓名"},
{
"width": "7%",
"width": "10%",
"sTitle": "身份"
},
{"sTitle": "联系方式"},
Expand Down
2 changes: 2 additions & 0 deletions webapp/views/community.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,13 @@
from webapp import app
from db.db_community import *
from auth.login_required import login_required
from auth.permission_required import permission_required

__author__ = 'sonnyhcl'


@app.route('/community', methods=['GET'])
@permission_required('root')
@login_required
def community_index():
return render_template('community.html')
Expand Down
1 change: 1 addition & 0 deletions webapp/views/index.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@


@app.route('/')
@login_required
def index_():
return redirect('index')

Expand Down
2 changes: 2 additions & 0 deletions webapp/views/mission.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import json
from flask import render_template, session, request
from auth.login_required import login_required
from auth.permission_required import permission_required
from webapp import app
from webapp.mylog import log
from db.db_mission import *
Expand All @@ -10,6 +11,7 @@


@app.route('/mission', methods=['GET'])
@permission_required('admin')
@login_required
def mission_index():
return render_template('mission.html')
Expand Down
2 changes: 2 additions & 0 deletions webapp/views/order.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@
from flask import render_template, request
from webapp import app
from auth.login_required import login_required
from auth.permission_required import permission_required
from db.db_order import *

__author__ = 'sonnyhcl'


@app.route('/order', methods=['GET'])
@permission_required('root')
@login_required
def order_index():
return render_template('order.html')
Expand Down
2 changes: 2 additions & 0 deletions webapp/views/product.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@
from flask import render_template, request
from webapp import app
from auth.login_required import login_required
from auth.permission_required import permission_required
from db.db_product import products

__author_name__ = 'sonnyhcl'


@app.route('/product', methods=['GET'])
@permission_required('user')
@login_required
def product():
return render_template('product.html')
Expand Down
4 changes: 4 additions & 0 deletions webapp/views/show_log.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,14 @@
from flask import render_template, request, session, \
url_for, redirect, make_response
from auth.login_required import login_required
from auth.permission_required import permission_required
from webapp import app

__author__ = 'sonnyhcl'


@app.route('/show_web_log', methods=['GET'])
@permission_required('root')
@login_required
def show_web_log():
"""
Expand All @@ -22,6 +25,7 @@ def show_web_log():


@app.route('/show_db_log', methods=['GET'])
@permission_required('root')
@login_required
def show_db_log():
"""
Expand Down
2 changes: 2 additions & 0 deletions webapp/views/transaction.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@
from flask import render_template, request, session
from webapp import app
from auth.login_required import login_required
from auth.permission_required import permission_required
from db.db_transaction import transaction

__author__ = 'sonnyhcl'


@app.route('/transaction', methods=['GET'])
@permission_required('user')
@login_required
def transaction_index():
return render_template('transaction.html')
Expand Down
4 changes: 3 additions & 1 deletion webapp/views/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,13 @@
from db.db_user import *
from db.db_community import *
from auth.login_required import login_required
from auth.permission_required import permission_required

__author__ = 'sonnyhcl'


@app.route('/user', methods=['GET'])
@permission_required('admin')
@login_required
def user_index():
return render_template('user.html')
Expand Down Expand Up @@ -52,7 +54,7 @@ def get_users_by_cid():
cid = session['c_id']
status, info = user.get_user_by_cid(cid)
ret = {"data": [], "status": status, "msg": ""}
d = {'root': u"主管理员", 'admin': u"管理员", 'user': u"员工"}
d = {'root': u"主管理员", 'admin': u"社区管理员", 'user': u"员工"}
if status == "Success":
_ = [ret['data'].append({'u_id': i[0], 'u_name': i[1], "u_role": i[2],
"u_phone": i[4], 'c_id': i[5]})
Expand Down

0 comments on commit 8a66fef

Please sign in to comment.