按钮权限管理

前端

{% load btnPermission %}
	{% add_btn request 'level_add' %}
	{% edit_btn request 'level_edit' pk=user_level.id %}
	{% delete_btn request 'level_delete' pk=user_level.id %}

templatetags内

from django.template import Library
from django.conf import settings
from django.urls import reverse
from django.utils.safestring import mark_safe

register = Library()

def check_per(request, url_name):
    # 获取账号权限
    is_admin = request.user_info.isAdmin
    permission_dict = settings.WEB_PERMISSION[is_admin]
    # 判断url_name是否在permission_dict
    if url_name not in permission_dict:
        return False
    return True

@register.simple_tag
def add_btn(request, url_name, *args, **kwargs):
    if not check_per(request, url_name):
        return ''
    # 反转url
    url = reverse(url_name, args=args, kwargs=kwargs)
    html_btn = f"""<a href="{url}" class="btn-success btn" style="margin-bottom: 10px"><i
                class="fa fa-plus-square-o"></i> 添加</a>"""
    return mark_safe(html_btn)

@register.simple_tag
def edit_btn(request, url_name, *args, **kwargs):
    if not check_per(request, url_name):
        return ''
    # 反转url
    url = reverse(url_name, args=args, kwargs=kwargs)
    html_btn = f"""<a href="{url}" class="btn btn-warning btn-sm">编辑</a>"""
    return mark_safe(html_btn)

@register.simple_tag
def delete_btn(request, url_name, *args, **kwargs):
    if not check_per(request, url_name):
        return ''
    # ajax向
    one_id = kwargs.get('pk')
    html_btn = f"""<a one_id="{one_id}" href="#" class="btn btn-danger btn-sm delBtn">删除</a>"""
    return mark_safe(html_btn)

settings内

WEB_PERMISSION = {
    1: {
        "level_list": {"text": "等级列表", "parent": None},
        "level_add": {"text": "创建等级", "parent": "level_list"},
        "level_delete": {"text": "删除等级", "parent": "level_list"},
        "level_edit": {"text": "编辑等级", "parent": "level_list"},
        "user_list": {"text": "人员列表", "parent": None},
        "user_add": {"text": "创建人员", "parent": 'user_list'},
        "user_edit": {"text": "编辑人员", "parent": 'user_list'},
        "user_delete": {"text": "删除人员", "parent": "user_list"},
        "user_reset_pwd": {"text": "重置人员密码", "parent": "user_list"},
        "price_policy_list": {"text": "价格策略列表", "parent": None},
        "price_policy_add": {"text": "创建价格策略", "parent": 'price_policy_list'},
        "price_policy_edit": {"text": "编辑价格策略", "parent": 'price_policy_list'},
        "price_policy_del": {"text": "删除价格策略", "parent": 'price_policy_list'},

    },
    0: {
        "level_list": {"text": "等级列表", "parent": None},
        "level_add": {"text": "创建等级", "parent": "level_list"},
        "level_delete": {"text": "删除等级", "parent": "level_list"},
        # "level_edit": {"text": "编辑等级", "parent": "level_list"},
    }
}
posted @ 2022-09-15 08:22  Sherwin_szw  阅读(33)  评论(0编辑  收藏  举报