Giter VIP home page Giter VIP logo

authorize's Introduction

authorize

介绍

完整的权限控制系统,后端ThinkPHP 6 + 前端Layui 2.5.4,权限验证类使用5ini99/think-auth(已修改为适配ThinkPHP6)。

手上有套自己写的数据查询和数据图形化的系统,因为涉及到各个部门、各地办事处的用户权限不同,所以用了5ini99/think-auth权限控制类进行权限控制,发现还挺好用,所以特别将权限部分抽出来,适配最新版本ThinkPHP然后开源出来抛砖引玉,可用于二次开发。
GitHub项目地址:https://github.com/fkueyu/authorize
码云项目地址:https://gitee.com/frxc/authorize

软件架构

开发环境: XAMPP 3.2.4(PHP 7.3.7+Mysql),ThinkPHP 6.0.1,Layui 2.5.4,jquery 3.4.1 后续ThinkPHP 6发布正式版本后会同步升级到最新版本。

安装教程

  1. 根据自身条件搭建环境,Linux环境和Windows Server环境建议使用宝塔面板。其它Windows可以选择XAMPP(以下内容以XAMPP为例)。
  2. 安装composer (后续可以升级ThinkPHP6框架核心)
  3. 切换到XAMPP的htdocs目录克隆本仓库
  4. 运行XAMPP,修改apache配置文件中网站根目录到ThinkPHP的public目录,下面是开发环境示例: 找到配置文件中两行:
    DocumentRoot "D:/xampp7/htdocs"
    <Directory "D:/xampp7/htdocs">
    修改为:
    DocumentRoot "D:/xampp7/htdocs/authorize/public"
    <Directory "D:/xampp7/htdocs/authorize/public">
  5. 启动mysql数据库服务,参考ThinkPHP6官方手册配置数据库连接(https://www.kancloud.cn/manual/thinkphp6_0/1037531
  6. 导入数据数据库结构及演示数据,(共5张表),默认数据库名称为fr_lab,数据表前缀为fr_lab_,供导入的sql文件fr_lab.sql位于public目录
  7. 启动apache服务即可访问(管理员账号:admin,密码:123456)

使用说明

  1. 若修改数据库名和表名需同步修改ThinkPHP数据库配置文件和think-auth验证类的源文件(位于\authorize\vendor\5ini99\think-auth\src\Auth.php)
  2. 欢迎提出问题和建议(QQ交流群:18685945,加群请备注项目名称)
  3. 查看代码前建议先仔细阅读,权限认证类功能特性(来自https://github.com/5ini99/think-auth):
  • 1,是对规则进行认证,不是对节点进行认证。用户可以把节点当作规则名称实现对节点进行认证。
  •  $auth=new Auth();  $auth->check('规则名称','用户id')
    
  • 2,可以同时对多条规则进行认证,并设置多条规则的关系(or或者and)
  •  $auth=new Auth();  $auth->check('规则1,规则2','用户id','and')
    
  •  第三个参数为and时表示,用户需要同时具有规则1和规则2的权限。 当第三个参数为or时,表示用户值需要具备其中一个条件即可。默认为or
    
  • 3,一个用户可以属于多个用户组(think_auth_group_access表 定义了用户所属用户组)。我们需要设置每个用户组拥有哪些规则(think_auth_group 定义了用户组权限)
  • 4,支持规则表达式。
  •  在think_auth_rule 表中定义一条规则时,如果type为1, condition字段就可以定义规则表达式。 如定义{score}>5  and {score}<100  表示用户的分数在5-100之间时这条规则才会通过。
    

系统截图

首页 用户管理 角色管理-角色成员 角色管理-角色权限 规则管理 数据字典

authorize's People

Contributors

fkueyu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.