settings: 'rbac.apps.RbacConfig',
中間件: 'rbac.service.rbac.ValidPermission',html
UserInfo中的用戶名和密碼也可刪了,只留rbac.User中的用戶名和密碼。
user = models.OneToOneField("rbac.User", null=True)
makemigrations
migrategit
# -*- coding:utf-8 -*- from stark.service.stark import site,ModelStark from .models import * class UserConfig(ModelStark): list_display = ["name",'roles'] site.register(User,UserConfig) class RoleConfig(ModelStark): list_display = ["title","permission"] site.register(Role,RoleConfig) class PermissionConfig(ModelStark): list_display = ["id","title","url","group","action"] site.register(Permission, PermissionConfig) site.register(PermissionGroup)
不一樣的用戶具備不一樣的權限github
知識點django
url(r'^login/', views.login), ------------------------------------- from django.shortcuts import render,HttpResponse # Create your views here. from rbac.models import User from rbac.service.permission import initial_session def login(request): if request.method == "POST": user = request.POST.get("user") pwd = request.POST.get("pwd") user = User.objects.filter(name=user,pwd=pwd).first() if user: request.session["user_id"] = user.pk # 註冊權限到session中 initial_session(user,request) return HttpResponse("登陸成功") return render(request,'login.html',locals())
'rbac.service.rbac.ValidPermission',
例如:session
{% extends 'base.html' %} {% block con %} <h4>個人客戶</h4> <ul> {% for customer_distrubute in customer_distrubute_list %} <li> {{ customer_distrubute.customer }} -----{{ customer_distrubute.date|date:'Y-m-d' }} -----{{ customer_distrubute.get_status_display }} </li> {% endfor %} </ul> {% endblock %}
原始版app