arya使用流程

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/


arya使用流程的更多相关文章
- CURD插件(仿Django-admin版)
前言 如何提升自己的开发效率? 每个新项目都是自己经做过的项目(经验所致),在项目开发过程中不断总结.封装属于自己的组件, 例如:每个web项目大部分都涉及增删改查,分页显示,搜素,CRM就是这样的组 ...
- Linux下服务器端开发流程及相关工具介绍(C++)
去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...
- 基于netty http协议栈的轻量级流程控制组件的实现
今儿个是冬至,所谓“冬大过年”,公司也应景五点钟就放大伙儿回家吃饺子喝羊肉汤了,而我本着极高的职业素养依然坚持留在公司(实则因为没饺子吃没羊肉汤喝,只能呆公司吃食堂……).趁着这一个多小时的时间,想跟 ...
- 通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流程[下]:管道是如何构建起来的?
在<中篇>中,我们对管道的构成以及它对请求的处理流程进行了详细介绍,接下来我们需要了解的是这样一个管道是如何被构建起来的.总的来说,管道由一个服务器和一个HttpApplication构成 ...
- nginx+iis+redis+Task.MainForm构建分布式架构 之 (redis存储分布式共享的session及共享session运作流程)
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配 ...
- 8、Struts2 运行流程分析
1.流程分析: 请求发送给 StrutsPrepareAndExecuteFilter StrutsPrepareAndExecuteFilter 询问 ActionMapper: 该请求是否是一个 ...
- Hawk 6. 高级话题:子流程系统
子流程的定义 当流程设计的越来越复杂,越来越长时,就难以进行管理了.因此,采用模块化的设计才会更加合理.本节我们介绍子流程的原理和使用. 所谓子流程,就是能先构造出一个流程,然后被其他流程调用.被调用 ...
- 流程开发Activiti 与SpringMVC整合实例
流程(Activiti) 流程是完成一系列有序动作的概述.每一个节点动作的结果将对后面的具体操作步骤产生影响.信息化系统中流程的功能完全等同于纸上办公的层级审批,尤其在oa系统中各类电子流提现较为明显 ...
- zookeeper源码分析之五服务端(集群leader)处理请求流程
leader的实现类为LeaderZooKeeperServer,它间接继承自标准ZookeeperServer.它规定了请求到达leader时需要经历的路径: PrepRequestProcesso ...
随机推荐
- 【UVa】Salesmen(dp)
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...
- 原生YII2 增删改查的一些操作(非ActiveRecord)
1.添加数据 如下,使用insert方法:t_admin_user为数据表名..其他的是属性.. $num = Yii::$app->db->createCommand()->ins ...
- 使用JSP表达式和JSP脚本打印九九乘法表
首先使用JSP声明声明一个函数用于得到九九乘法表的内容 <%! String printMultiTable() { String s = ""; for (int i = ...
- 用httpclient做压力测试时Too many open files的解决办法
在工作过程中,用httpclient去压测一个web api,发现压一小段时间就出现了Too many open files.实际上,HttpClient建立Socket时 ,post.release ...
- 后端程序员如何玩转AJAX
1.原生的Ajax入门 (感觉很是繁琐,所以一般我们都是用简单的方式) 创建一个核心对象 XMLHttpRequest var xmlhttp; if (window.XMLHttpRequest) ...
- IDEA整合日志框架Log4j2+Slf4j详细配置过程
日志框架这么多,他们之间到底是什么关系呢?笼统的讲就是slf4j是一系列的日志接口,而log4j2.logback是具体实现了接口功能的日志框架.现在的主流日志接口都使用slf4j,而日志的实现就见仁 ...
- Java操作文件转码
package downloadTest; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.F ...
- Java进阶SQL函数、网页定时刷新与自定义JSTL函数
一.SQL函数 能够在SQL语句中调用的函数(方法) ,用来实现一些小功能 聚合函数 能够把多行数据聚合成一个值(统计) count() 计数,计算数据条数 max() 计算最大值 m ...
- fidder教程
Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,都有很大 ...
- Truncate有外键约束的表
SET FOREIGN_KEY_CHECKS=0; TRUNCATE TABLE table_name; SET FOREIGN_KEY_CHECKS=1;