一百零九:CMS系统之前端根据不同权限渲染不同菜单

杀马特。学长 韩版系。学妹 提交于 2019-12-05 15:38:11

 

给用户绑定为开发者

个人信息中渲染角色和权限

{% extends 'cms/cms_base.html' %}{% block title %}    个人信息{% endblock %}{% block page_title %}    {{ self.title() }}{% endblock %}{% block main_content %}    {% set user = g.cms_user %}    <table class="table table-bordered">        <tbody>            <tr>                <td>用户名:</td>                <td>{{ user.username }}</td>            </tr>            <tr>                <td>邮箱:</td>                <td>{{ user.email }}</td>            </tr>            <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>            <tr>                <td>加入时间:</td>                <td>{{ user.join_time }}</td>            </tr>        </tbody>    </table>{% endblock %}

由于一个用户可能有多个角色,所以这里就不在用户名后面渲染角色了,同一给用户名价格链接,跳转到个人中心

创建不同用户分别绑定不同角色

python manager.py create_cms_user -u 访问者用户 -p 123456 -e 133@qq.com
python manager.py add_user_to_role -e 133@qq.com -n 访问者

python manager.py create_cms_user -u 运营用户 -p 123456 -e 144@qq.com
python manager.py add_user_to_role -e 144@qq.com -n 运营

python manager.py create_cms_user -u 管理员用户 -p 123456 -e 155@qq.com
python manager.py add_user_to_role -e 155@qq.com -n 管理员

在钩子函数中使用蓝图.context_processor,以后只要是此蓝图返回的模板,都会携带此数据

@bp.context_processordef cms_context_processor():    """ 返回权限 """    return {"CMSPermission": CMSPersmission}

根据权限判断渲染的菜单

{% 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 %}

 

使用不同角色登录

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!