10-----BBS論壇
阿新 • • 發佈:2018-11-26
10.1.客戶端許可權驗證功能完成
(1)cms/cms_profile
顯示當前使用者的角色和許可權
<tr> <td>角色:</td> <td> {% for role in user.roles %} {{ role.name }} {% if not loop.last %},{% endif %} {% endfor %}</td> </tr> <tr> <td>許可權:</td> <td> {% for role in user.roles %} {{ role.desc }} {% if not loop.last %}/{% endif %} {% endfor %}</td> </tr>
(2)cms/hooks.py
@bp.context_processor def cms_context_pocessor(): return {'CMSPermission':CMSPermission}
(3)cms/cms_base.html
不同的角色,顯示不同的內容
{% set cms_user = g.cms_user %} {% if cms_user.has_permission(CMSPermission.POSTER) %}<li class="nav-group post-manage"><a href="#">帖子管理</a></li> {% endif %} {% if cms_user.has_permission(CMSPermission.COMMENTER) %} <li class="comments-manage"><a href="#">評論管理</a></li> {% endif %} {% if cms_user.has_permission(CMSPermission.BOARDER) %} <li class="board-manage"><a href="#">板塊管理</a></li> {% endif %} {% if cms_user.has_permission(CMSPermission.FRONTUSER) %} <li class="nav-group user-manage"><a href="#">前臺使用者管理</a></li> {% endif %} {% if cms_user.has_permission(CMSPermission.CMSUSER) %} <li class="nav-group cmsuser-manage"><a href="#">CMS使用者管理</a></li> {% endif %} {% if cms_user.is_developer %} <li class="cmsrole-manage"><a href="#">CMS組管理</a></li> {% endif %}
(4)新增使用者和角色
#新增訪問者 python manage.py create_cms_user -u 我是訪問者 -p 123456 -e 11111@qq.com python manage.py add_user_to_role -e [email protected] -n 訪問者 #新增運營者 python manage.py create_cms_user -u 我是運營者 -p 123456 -e 22222@qq.com python manage.py add_user_to_role -e [email protected] -n 運營 #新增管理員 python manage.py create_cms_user -u 我是管理員 -p 123456 -e 33333@qq.com python manage.py add_user_to_role -e [email protected] -n 管理員
不同的使用者登入到後臺cms顯示不同的內容
開發者
訪問者
10.2.服務端許可權驗證功能完成
(1)後臺剩餘的html頁面
cms_posts.html
{% extends 'cms/cms_base.html' %}
{% block title %}
帖子管理
{% endblock %}
{% block head %}
{% endblock %}
{% block page_title %}
{{ self.title() }}
{% endblock %}
{% block main_content %}
帖子管理頁面
{% endblock %}
其它幾個一樣
cms_comments.html
cms_boards.html
cms_fusers.html
cms_cusers.html
cms_croles.html
(2)cms/decorators.py
新增一個許可權驗證的裝飾器
def permission_required(permission): def outter(func): @wraps(func) def inner(*args,**kwargs): user = g.cms_user if user.has_permission(permission): return func(*args,**kwargs) else: return redirect(url_for('cms.index')) return inner return outter
(3)cms/views.py
@bp.route('/posts/') @login_required @permission_required(CMSPermission.POSTER) def posts(): return render_template('cms/cms_posts.html') @bp.route('/comments/') @login_required @permission_required(CMSPermission.COMMENTER) def comments(): return render_template('cms/cms_comments.html') @bp.route('/boards/') @login_required @permission_required(CMSPermission.BOARDER) def boards(): return render_template('cms/cms_boards.html') @bp.route('/fusers/') @login_required @permission_required(CMSPermission.FRONTUSER) def fusers(): return render_template('cms/cms_fusers.html') @bp.route('/cusers/') @login_required @permission_required(CMSPermission.CMSUSER) def cusers(): return render_template('cms/cms_cusers.html') @bp.route('/croles/') @login_required @permission_required(CMSPermission.ALL_PERMISSION) def croles(): return render_template('cms/cms_croles.html')
(4)cms/cms_base.html
修改url連結
{% set cms_user = g.cms_user %} {% if cms_user.has_permission(CMSPermission.POSTER) %} <li class="nav-group post-manage"><a href="{{ url_for('cms.posts') }}">帖子管理</a></li> {% endif %} {% if cms_user.has_permission(CMSPermission.COMMENTER) %} <li class="comments-manage"><a href="{{ url_for('cms.comments') }}">評論管理</a></li> {% endif %} {% if cms_user.has_permission(CMSPermission.BOARDER) %} <li class="board-manage"><a href="{{ url_for('cms.boards') }}">板塊管理</a></li> {% endif %} {% if cms_user.has_permission(CMSPermission.FRONTUSER) %} <li class="nav-group user-manage"><a href="{{ url_for('cms.fusers') }}">前臺使用者管理</a></li> {% endif %} {% if cms_user.has_permission(CMSPermission.CMSUSER) %} <li class="nav-group cmsuser-manage"><a href="{{ url_for('cms.cusers') }}">CMS使用者管理</a></li> {% endif %} {% if cms_user.is_developer %} <li class="cmsrole-manage"><a href="{{ url_for('cms.croles') }}">CMS組管理</a></li> {% endif %}
end。。。
- 10.1.客戶端許可權驗證功能完成
- 10.2.服務端許可權驗證功能完成
10.1.客戶端許可權驗證功能完成
(1)cms/cms_profile
顯示當前使用者的角色和許可權
<tr> <td>角色:</td> <td> {% for role in user.roles %} {{ role.name }} {% if not loop.last %},{% endif %} {% endfor %} </td> </tr> <tr> <td>許可權:</td> <td> {% for role in user.roles %} {{ role.desc }} {% if not loop.last %}/{% endif %} {% endfor %} </td> </tr>
(2)cms/hooks.py
@bp.context_processor def cms_context_pocessor(): return {'CMSPermission':CMSPermission}
(3)cms/cms_base.html
不同的角色,顯示不同的內容
{% set cms_user = g.cms_user %} {% if cms_user.has_permission(CMSPermission.POSTER) %} <li class="nav-group post-manage"><a href="#">帖子管理</a></li> {% endif %} {% if cms_user.has_permission(CMSPermission.COMMENTER) %} <li class="comments-manage"><a href="#">評論管理</a></li> {% endif %} {% if cms_user.has_permission(CMSPermission.BOARDER) %} <li class="board-manage"><a href="#">板塊管理</a></li> {% endif %} {% if cms_user.has_permission(CMSPermission.FRONTUSER) %} <li class="nav-group user-manage"><a href="#">前臺使用者管理</a></li> {% endif %} {% if cms_user.has_permission(CMSPermission.CMSUSER) %} <li class="nav-group cmsuser-manage"><a href="#">CMS使用者管理</a></li> {% endif %} {% if cms_user.is_developer %} <li class="cmsrole-manage"><a href="#">CMS組管理</a></li> {% endif %}
(4)新增使用者和角色
#新增訪問者 python manage.py create_cms_user -u 我是訪問者 -p 123456 -e 11111@qq.com python manage.py add_user_to_role -e [email protected] -n 訪問者 #新增運營者 python manage.py create_cms_user -u 我是運營者 -p 123456 -e 22222@qq.com python manage.py add_user_to_role -e [email protected] -n 運營 #新增管理員 python manage.py create_cms_user -u 我是管理員 -p 123456 -e 33333@qq.com python manage.py add_user_to_role -e [email protected] -n 管理員
不同的使用者登入到後臺cms顯示不同的內容
開發者
訪問者
10.2.服務端許可權驗證功能完成
(1)後臺剩餘的html頁面
cms_posts.html
{% extends 'cms/cms_base.html' %}
{% block title %}
帖子管理
{% endblock %}
{% block head %}
{% endblock %}
{% block page_title %}
{{ self.title() }}
{% endblock %}
{% block main_content %}
帖子管理頁面
{% endblock %}
其它幾個一樣
cms_comments.html
cms_boards.html
cms_fusers.html
cms_cusers.html
cms_croles.html
(2)cms/decorators.py
新增一個許可權驗證的裝飾器
def permission_required(permission): def outter(func): @wraps(func) def inner(*args,**kwargs): user = g.cms_user if user.has_permission(permission): return func(*args,**kwargs) else: return redirect(url_for('cms.index')) return inner return outter
(3)cms/views.py
@bp.route('/posts/') @login_required @permission_required(CMSPermission.POSTER) def posts(): return render_template('cms/cms_posts.html') @bp.route('/comments/') @login_required @permission_required(CMSPermission.COMMENTER) def comments(): return render_template('cms/cms_comments.html') @bp.route('/boards/') @login_required @permission_required(CMSPermission.BOARDER) def boards(): return render_template('cms/cms_boards.html') @bp.route('/fusers/') @login_required @permission_required(CMSPermission.FRONTUSER) def fusers(): return render_template('cms/cms_fusers.html') @bp.route('/cusers/') @login_required @permission_required(CMSPermission.CMSUSER) def cusers(): return render_template('cms/cms_cusers.html') @bp.route('/croles/') @login_required @permission_required(CMSPermission.ALL_PERMISSION) def croles(): return render_template('cms/cms_croles.html')
(4)cms/cms_base.html
修改url連結
{% set cms_user = g.cms_user %} {% if cms_user.has_permission(CMSPermission.POSTER) %} <li class="nav-group post-manage"><a href="{{ url_for('cms.posts') }}">帖子管理</a></li> {% endif %} {% if cms_user.has_permission(CMSPermission.COMMENTER) %} <li class="comments-manage"><a href="{{ url_for('cms.comments') }}">評論管理</a></li> {% endif %} {% if cms_user.has_permission(CMSPermission.BOARDER) %} <li class="board-manage"><a href="{{ url_for('cms.boards') }}">板塊管理</a></li> {% endif %} {% if cms_user.has_permission(CMSPermission.FRONTUSER) %} <li class="nav-group user-manage"><a href="{{ url_for('cms.fusers') }}">前臺使用者管理</a></li> {% endif %} {% if cms_user.has_permission(CMSPermission.CMSUSER) %} <li class="nav-group cmsuser-manage"><a href="{{ url_for('cms.cusers') }}">CMS使用者管理</a></li> {% endif %} {% if cms_user.is_developer %} <li class="cmsrole-manage"><a href="{{ url_for('cms.croles') }}">CMS組管理</a></li> {% endif %}
end。。。