`
阅读更多

不知大家在做项目时是否遇到我同样的问题,这就是如何控制整个系统的权限。权限控制起来有粗有细,有的按模块分配权限,稍好点也就是定死几个权限操作来分配,然而又几乎没有通用的权限系统可以使用,往往要做新项目时,为了省时省力,就只好将那个又老又笨的权限控制模块搬来搬去了。

所以,我希望做一个功能强大而且部署简单类似于组件式的权限管理系统,设计也早有了腹稿,只是苦于一直没有时间(好像这是懒人的惯用借口J)。最近终于逮着机会可以稍作休整,可以安心地将设计重新修改,并将它付诸实现了。

闲话不多说,先简要介绍一下该权限管理系统的特点,该系统采用了struts1.1+tiles+Oracle9i的架构,其中的权限树用到了DTree。功能上做到了灵活授权,操控细致,权限可以细到按钮及超链级别(需要配合扩展的struts标签),而且部署简单,下面谈谈我自己的设计经验。

该系统主要功能如下:

1、  自定义操作动作(如增加、删除、修改、审核等,不再是以前见过的那种粗粒度的按模块分配权限,或者稍微先进点的规定死某几个操作了)。

2、  无限级功能模块管理,自定义模块排序,可以更好地对整个系统中所有模块进行分类管理。

3、  灵活地为各模块分配操作,即每个模块有哪些操作需要被控制(将步骤1中添加的操作按需分配给各模块)。

4、  对所有用户基础信息进行管理,实行有效期机制,过期自动失效,在有效期间亦可强制停止用户使用。

5、  自定义角色,可以起个听起来通俗易懂的名字。

6、  任意角色可任意组合系统权限功能点(比如某个模块里他只能修改数据而不能添加或删除等其它操作)

7、  一个用户可有多个角色(多身份),一个角色也可以被多个用户拥有(同身份)(多对多),灵活授权。

8、  按角色给用户授权,当授权对象数量庞大的时候就可大显身手了(比如给公司全体员工授权)。

9、  按用户分配角色,当某个用户以多种身份出现在系统中的时候,希望分配多个角色。

10、              用户及角色分级管理,下级用户只能拥有上级用户权限的子集,可无限级,而除了超级管理员外其它用户都只能看到属于自己管理范围内(自己创建的)用户,也只能分配自己管理范围内(自己创建)的角色,这样可以做到各司其职,管理清晰。



从数据库结构来看,一共设计了七个表(table),表名及功能分别如下:

1、  操作表

用来存放用户自定义的各种功能操作,比如新增、修改、删除等,以前见过的设计是将操作直接放在模块下面管理,这就导致了常见的操作通常要重复添加N次(比如大部分模块都会有新增修改等操作),如果模块比较多就显得非常繁琐且容易出错。现在把它放在一个单独的表里面进行管理就可以避免这一问题出现,流程也更加清晰。

2、  模块表

顾名思义就是将系统中的各模块进行管理,支持无限级模块

3、  模块操作关联表

各模块有什么样的操作就在这里体现,在模块与操作之间建立起关联形成权限点,以便给角色授权。

4、  角色表

对角色基本信息进行管理。用户可以自定义成各种各样的角色,比如局长、校长、总经理等。

5、  角色权限表

将角色与系统中的权限点关联起来,也就是完成授权的动作。

6、  用户表

将用户的最基本的信息进行管理(在正常的业务系统中可进行扩展用户信息),比如姓名、有效期等。

7、  用户角色表

在用户与角色之间建立起关联,给用户授予哪些角色权限(同一用户可以有多个角色),也可以按角色添加用户,比如将“员工”角色授予公司所有人,而不用按用户一个一个地授权。

 

 

 

个人签名

-------------------------------------

 

图盾 淘宝保护 保护图片 图片防盗

分享到:
评论

相关推荐

    原创layui与thinkphp最细级别权限控制后台,通过读取代码注释来实现权限控制

    在IT行业中,权限控制是后台管理系统中的核心组成部分,它确保用户只能访问他们被授权的资源。本项目结合了layui前端框架和thinkphp后端框架,实现了最细粒度的权限控制,通过读取代码注释的方式来决定用户权限,这...

    权限控制,js控制js控制js控制权限控制

    在IT行业中,权限控制是确保系统安全性和数据保护的关键机制,尤其在Web应用程序中,JavaScript作为客户端脚本语言,其在权限控制中的角色至关重要。本文将深入探讨JavaScript如何实现权限控制,以及它在这个过程中...

    SpringBoot 权限控制(菜单控制,页面元素控制,url控制)

    在IT行业中,权限控制是确保系统安全性和用户体验的关键部分,特别是在企业级应用中。SpringBoot作为Java领域广泛使用的微服务框架,提供了丰富的功能来帮助开发者实现权限管理。本篇文章将详细探讨如何在SpringBoot...

    C# winform 权限控制 包括角色 用户 权限设置

    在C# WinForm应用开发中,权限控制是一个关键的安全组件,它确保了只有授权的用户才能访问特定的功能或数据。本教程将详细讲解如何在C# WinForm环境中实现基于角色的权限控制,包括角色、用户和权限的设置。 首先,...

    java写的一个权限控制的插件

    Java权限控制插件是软件开发中的一个重要组成部分,它主要用于管理和限制不同用户或角色对系统资源的访问。在本文中,我们将深入探讨这个基于Java编写的权限控制插件,特别是其核心概念、设计模式以及实现机制。 ...

    asp.net core项目mvc权限控制:分配权限

    在ASP.NET Core中,权限控制是一个关键的组件,用于确保只有具备特定权限的用户才能访问特定的资源或执行特定的操作。在本教程中,我们将探讨如何在ASP.NET Core MVC项目中实现这一功能,特别是如何进行权限的分配。...

    Spring Security如何使用URL地址进行权限控制

    Spring Security如何使用URL地址进行权限控制 Spring Security是一个功能强大且广泛应用的Java安全框架,它提供了许多功能,包括身份验证、授权、加密等。其中,权限控制是Spring Security的一个重要组件,它允许...

    ssh权限控制demo

    演示了包括:权限控制、超大附件文件上传、EasyUI基本组件使用等等功能,具体请自行看本示例演示功能 SSHE框架环境需求:JAVA环境:JDK7+;数据库环境:oracle10g+/sqlserver2000+/mysql5+;WEB容器环境:jetty6+/...

    权限控制模型文档 介绍权限控制模块

    【权限控制模型】是信息化系统中至关重要的组成部分,它的设计直接影响到系统的安全性、稳定性和易用性。本文将深入探讨几种常见的访问控制技术,包括自主访问控制(DAC)、强制访问控制(MAC)以及基于角色的访问...

    springboot springsecurity动态权限控制

    在这个“springboot springsecurity动态权限控制”的主题中,我们将深入探讨如何在Spring Boot项目中集成Spring Security,实现动态权限控制,让菜单权限的管理更加灵活和高效。 首先,我们需要理解Spring Security...

    基于Winform权限控制系统

    这是一款基于Winform权限控制系统源码,基本上实现了权限管理系统的功能,对于新手来说,还是比较有学习价值的,值得推荐一下,感兴趣的朋友可以下载学习一下。 二、功能介绍 1、用户管理 2、组管理 3、用户授权 ...

    前后端分离做权限控制设计.docx

    ### 前后端分离下的权限控制设计 随着前端框架如React、Angular和Vue的兴起,前后端分离架构成为主流趋势。然而,这种架构模式带来了新的挑战,尤其是关于权限控制的问题。本文旨在探讨如何在前后端分离的架构下...

    Struts2拦截器实现权限控制demo

    在这个“Struts2拦截器实现权限控制demo”中,我们将深入探讨如何利用拦截器来实现细粒度的用户权限管理。 首先,我们需要了解Struts2中的拦截器工作原理。拦截器是基于Java的动态代理模式实现的,它们按照配置的...

    web业务系统权限控制

    ### Web业务系统权限控制知识点详解 #### 一、概述 在现代Web应用开发中,权限控制是一项非常重要的功能。良好的权限控制系统能够确保只有授权的用户才能访问特定的资源和服务,从而提高了系统的安全性与稳定性。本...

    asp权限控制,asp+access,含数据库文件

    在ASP中实现权限控制是确保网站安全和数据保护的关键环节。此压缩包文件包含的内容显然与ASP用户权限设置相关,特别是结合了Access数据库进行用户管理。 ASP中的权限控制主要涉及到以下几个方面: 1. **身份验证**...

    一种基于Vue.js和Django的权限控制方法及系统.pdf

    该发明涉及一种基于Vue.js和Django的权限控制系统,它主要关注的是在互联网应用程序中实现高效且严格的用户权限管理。Vue.js是一种轻量级的前端JavaScript框架,它以其易用性、灵活性和组件化特性而受到开发者的青睐...

    Struts2权限控制

    "基于Struts2拦截器的权限控制.doc"文档很可能是提供了一个具体的案例,详细讲解了如何创建并使用拦截器进行权限控制。文档可能会涵盖以下内容: 1. 创建自定义拦截器类,实现`Interceptor`接口,重写`intercept()`...

    Java访问权限控制源代码

    在Java编程语言中,访问权限控制是至关重要的一个部分,它确保了代码的封装性和安全性。本主题将深入探讨Java中的访问修饰符及其在源代码中的应用。 首先,Java提供了四种基本的访问权限控制修饰符: 1. **public*...

    基于Django和Vue的RBAC权限控制后台管理系统源码

    项目概述:本源码为基于角色基础访问控制(RBAC)模型的中小型应用开发平台,采用前后端分离架构。...该平台为开发人员提供了一个具有完善权限控制的后台管理系统,支持快速开发具有复杂权限需求的中后台应用。

    asp.net权限控制

    ASP.NET权限控制是Web开发中一个关键的安全环节,它确保只有授权的用户才能访问特定的资源或执行特定的操作。在本程序中,开发者利用ASP.NET的内置对象和HTTP消息头来实现这一目标。下面我们将详细探讨这个话题。 ...

Global site tag (gtag.js) - Google Analytics