用户角色权限 案例

from django.db import models

class User(models.Model):
    """
    用户表
    """
    username = models.CharField(verbose_name=‘用户名‘, max_length=32)
    password = models.CharField(verbose_name=‘密码‘, max_length=64)
    email = models.EmailField(verbose_name=‘邮箱‘)

    def __str__(self):
        return self.username

class Role(models.Model):
    """
    角色表
    """
    caption = models.CharField(verbose_name=‘角色‘, max_length=32)

    def __str__(self):
        return self.caption

class User2Role(models.Model):
    """
    用户角色关系表
    """
    user = models.ForeignKey(User, verbose_name=‘用户‘, related_name=‘roles‘)
    role = models.ForeignKey(Role, verbose_name=‘角色‘, related_name=‘users‘)

    def __str__(self):
        return ‘%s-%s‘ % (self.user.username, self.role.caption,)

class Menu(models.Model):
    """
    菜单表
    """
    caption = models.CharField(verbose_name=‘菜单名称‘, max_length=32)
    parent = models.ForeignKey(‘self‘, verbose_name=‘父菜单‘, related_name=‘p‘, null=True, blank=True)

    def __str__(self):
        prev = ""
        parent = self.parent
        while True:
            if parent:
                prev = prev + ‘-‘ + str(parent.caption)
                parent = parent.parent
            else:
                break
        return ‘%s-%s‘ % (prev, self.caption,)

class Permission(models.Model):
    """
    权限
    """
    caption = models.CharField(verbose_name=‘权限‘, max_length=32)
    url = models.CharField(verbose_name=‘URL正则‘, max_length=128)
    menu = models.ForeignKey(Menu, verbose_name=‘所属菜单‘, related_name=‘permissions‘,null=True,blank=True)

    def __str__(self):
        return "%s-%s" % (self.caption, self.url,)

class Action(models.Model):
    """
    操作:增删改查
    """
    caption = models.CharField(verbose_name=‘操作标题‘, max_length=32)
    code = models.CharField(verbose_name=‘方法‘, max_length=32)

    def __str__(self):
        return self.caption

class Permission2Action2Role(models.Model):
    """
    权限操作关系表
    """
    permission = models.ForeignKey(Permission, verbose_name=‘权限URL‘, related_name=‘actions‘)
    action = models.ForeignKey(Action, verbose_name=‘操作‘, related_name=‘permissions‘)
    role = models.ForeignKey(Role, verbose_name=‘角色‘, related_name=‘p2as‘)

    class Meta:
        unique_together = (
            (‘permission‘, ‘action‘, ‘role‘),
        )

    def __str__(self):
        return "%s-%s-%s" % (self.permission, self.action, self.role,)

python3 manage.py startapp app02

models.py

时间: 2024-10-15 02:15:53

用户角色权限 案例的相关文章

t3用户-角色-权限hibernate经典配置

[java] view plain copy print? 用户-角色-权限hibernate经典配置. [java] view plain copy print? 既然有人问起,我就写下说明吧.在文章中间的配置文件那里.权当回忆一下,也帮助更多人.这是以前学校时写的,没有注释.都是贴的代码笔记.看到的莫要见怪.欢迎学习交流. [java] view plain copy print? [java] view plain copy print? 首先是三个实体类: [java] view pla

RBAC用户角色权限设计方案

转自http://www.cnblogs.com/zwq194/archive/2011/03/07/1974821.html RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色-权限”的授权模型.在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系.(如下图) 角色是什么?可以理解为一定数量的权限的集合,权限的载体.例如:一个论坛系统

Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理10

今天把用户的菜单显示和页面的按钮显示都做好了,下面先来个效果图 接下来说下我实现的方法: 首先我在每个方法前面都加了这个属性, /// <summary> /// 表示当前Action请求为一个具体的功能页面 /// </summary> public class AdminActionMethod : Attribute { /// <summary> /// 页面请求路径 /// </summary> public string ActionUrl {

Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理

这是本人第一次写,写的不好的地方还忘包含.写这个的主要原因是翔通过这个来学习下EF的CodeFirst模式,本来也想用AngularJs来玩玩的,但是自己只会普通的绑定,对指令这些不是很熟悉,所以就基本不用了.还有最主要的原因就是锻炼下自己的能力.好了其他就不多说了,下面来看下我对这个项目的整体概述吧: 目录: 目录我以后会在这边添加上去的 一.Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理 基本设计 项目中使用到的工具: Visual Studio 2013,

扩展RBAC用户角色权限设计方案

RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色-权限”的授权模型.在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系.(如下图) 角色是什么?可以理解为一定数量的权限的集合,权限的载体.例如:一个论坛系统,“超级管理员”.“版主”都是角色.版主可管理版内的帖子.可管理版内的用户等,这些是权限.要给某个用户授予这些权限,不需要直接将

java用户角色权限设计

实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个"非法用户"很可能就能通过浏览器轻易访问到B/S系统中的所有功能.因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法的使用已授权功能,而对那些未经授权的"非法用户"将会将他

[转]扩展RBAC用户角色权限设计方案

原文地址:http://www.iteye.com/topic/930648 RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用 户-角色-权限”的授权模型.在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系.(如下图) 角色是什么?可以理解为一定数量的权限的集合,权限的载体.例如:一个论坛系统,“超级管理员”.“版主”都是角色.版主可管理版

设计OA系统的用户-角色-权限分配

转载:http://www.cnblogs.com/jsping/archive/2013/01/23/2872972.html 设计OA系统的用户-角色-权限分配 一,前言  本文主要讲述在OA系统设计时用户——角色——权限的数据库设计,以便实现权限分配. 二,初步分析 用户通过UI登录系统时,把用户的用户名.密码传递给后台判断用户表中是否存在可用的用户信息,如果存在那么允许页面的跳转,并设置一些Session信息,当页面跳转时根据用户的Session信息获取用户的角色,进一步根据角色获取用户

扩展RBAC用户角色权限设计方案&lt;转&gt;

RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色-权限”的授权模型.在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系.(如下图) 角色是什么?可以理解为一定数量的权限的集合,权限的载体.例如:一个论坛系统,“超级管理员”.“版主”都是角色.版主可管理版内的帖子.可管理版内的用户等,这些是权限.要给某个用户授予这些权限,不需要直接将