官方社群在线客服官方频道防骗查询货币工具

BBS论坛(十)

2025年01月14日 02:16:49
news.like.tgnews.like.tgnews.like.tgnews.like.tg

LIKE.TG | 发现全球营销软件&服务汇聚顶尖互联网营销和AI营销产品,提供一站式出海营销解决方案。唯一官网:www.like.tg

10.1.客户端权限验证功能完成

(1)cms/cms_profile

显示当前用户的角色和权限

代码语言:javascript
复制
<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

代码语言:javascript
复制
@bp.context_processor def cms_context_pocessor(): return {'CMSPermission':CMSPermission}

(3)cms/cms_base.html

不同的角色,显示不同的内容

代码语言:javascript
复制
{% 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)添加用户和角色

代码语言:javascript
复制
#添加访问者 python manage.py create_cms_user -u 我是访问者 -p 123456 -e 11111@qq.com python manage.py add_user_to_role -e 11111@qq.com -n 访问者 #添加运营者 python manage.py create_cms_user -u 我是运营者 -p 123456 -e 22222@qq.com python manage.py add_user_to_role -e 22222@qq.com -n 运营 #添加管理员 python manage.py create_cms_user -u 我是管理员 -p 123456 -e 33333@qq.com python manage.py add_user_to_role -e 33333@qq.com -n 管理员

不同的用户登录到后台cms显示不同的内容

开发者

访问者

10.2.服务端权限验证功能完成

(1)后台剩余的html页面

cms_posts.html

代码语言:javascript
复制
{% extends 'cms/cms_base.html' %} {% block title %} 帖子管理 {% endblock %} {% block head %} {% endblock %} {% block page_title %} {{ self.title() }} {% endblock %} {% block main_content %} 帖子管理页面 {% endblock %}

其它几个一样

代码语言:javascript
复制
cms_comments.html cms_boards.html cms_fusers.html cms_cusers.html cms_croles.html

(2)cms/decorators.py

添加一个权限验证的装饰器

代码语言:javascript
复制
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

代码语言:javascript
复制
@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链接

代码语言:javascript
复制
{% 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 %}

LIKE.TG汇集全球营销软件&服务,助力出海企业营销增长。提供最新的“私域营销获客”“跨境电商”“全球客服”“金融支持”“web3”等一手资讯新闻。

点击【联系客服】 🎁 免费领 1G 住宅代理IP/proxy, 即刻体验 WhatsApp、LINE、Telegram、Twitter、ZALO、Instagram、signal等获客系统,社媒账号购买 & 粉丝引流自助服务或关注【LIKE.TG出海指南频道】【LIKE.TG生态链-全球资源互联社区】连接全球出海营销资源。

本文由LIKE.TG编辑部转载自互联网并编辑,如有侵权影响,请联系官方客服,将为您妥善处理。

This article is republished from public internet and edited by the LIKE.TG editorial department. If there is any infringement, please contact our official customer service for proper handling.


Server deployment全球论坛人工智能论坛全球峰会发展论坛战略论坛开放论坛程序员论坛互联网峰会科技峰会
加入like.tg生态圈,即可获利、结识全球供应商、拥抱全球软件生态圈加入like.tg平台,即可获利、结识全球供应商、拥抱全球营销软件生态圈加入like.tg生态资源圈,即可获利、结识全球供应商、拥抱全球软件生态圈
加入like.tg生态圈,即可获利、结识全球供应商、拥抱全球软件生态圈加入like.tg平台,即可获利、结识全球供应商、拥抱全球营销软件生态圈加入like.tg生态资源圈,即可获利、结识全球供应商、拥抱全球软件生态圈