标签:访问 菜单 soft 效果 ... models blog from src
2.setting中注册arya和配置rbac相关设置
INSTALLED_APPS = [ ..... ‘arya.apps.AryaConfig‘, ] .... # ############################## RBAC权限相关配置开始 ############################## # session中保存权限信息的Key RBAC_PERMISSION_URL_SESSION_KEY = "rbac_permission_url_session_key" # Session中保存菜单和权限信息的Key RBAC_MENU_PERMISSION_SESSION_KEY = "rbac_menu_permission_session_key" RBAC_MENU_KEY = "rbac_menu_key" RBAC_MENU_PERMISSION_KEY = "rbac_menu_permission_key" # 匹配URL时指定规则 RBAC_MATCH_PARTTERN = "^{0}$" # 无需权限控制的URL RBAC_NO_AUTH_URL = [ ‘/login/‘, ‘/logout/‘, "/index/", "/test/", ] # 无权访问时,页面提示信息 RBAC_PERMISSION_MSG = "无权限访问" #菜单图标 MENU_ICONS = ["icon-book", "icon-book", "icon-book", "icon-book", "icon-book"] # ############################## RBAC权限相关配置结束 ##############################
3.在你的用户表(用来作登录验证)中添加一行roles
from django.db import models from arya.models import Role class Account(models.Model): username = models.CharField("用户名", max_length=64, unique=True) password = models.CharField("密码", max_length=128) roles = models.ManyToManyField(to=Role, verbose_name="角色")
4.在你需要arya来管理的app中,新建arya.py,注册你的model
from arya.service import sites from . import models sites.site.register(models.Account)
5.在主url中加入arya的路由:
from django.conf.urls import url # from django.contrib import admin from arya.service import sites urlpatterns = [ # url(r‘^admin/‘, admin.site.urls), url(r‘^admin/‘, sites.site.urls), ]
from app01 import views urlpatterns = [ url(r‘^login/$‘, views.login), url(r‘^logout/$‘, views.logout), url(r‘^index/$‘, views.index), ]
from django.shortcuts import render,redirect from arya.service.rbac import initial_permission from . import models def login(request): if request.method == "GET": return render(request, "login.html") elif request.method == "POST": username = request.POST.get("username") pwd = request.POST.get("pwd") # print("___cookie",request.COOKIES) obj = models.Account.objects.filter(username=username, password=pwd).first() if obj: # 初始化权限 request.session["user_info"] = {"nid": obj.id} print(request.session["user_info"]) initial_permission(request, obj) return redirect(‘/index/‘) else: return render(request, "login.html") def logout(request): request.session["user_info"] = None return redirect("/login/") def index(request): return render(request, "index.html")
7.做数据库迁移
python manage.py makemigrations
python manage.py migrate
8.启动程序,登录
9.添加一个权限:url为: http://127.0.0.1:8000/admin/arya/permission/
标签:访问 菜单 soft 效果 ... models blog from src
原文地址:http://www.cnblogs.com/hedeyong/p/7965580.html