按钮权限管理
前端
{% 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"},
}
}
本文作者:Sherwin
本文链接:https://www.cnblogs.com/sherwin1995/p/16695256.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步