casbin

go-admin在线开发平台学习-2[程序结构分析]

点点圈 提交于 2021-02-18 15:36:48
紧接着上一篇,本文我们对go-admin下载后的源码进行分析。 首先对项目所使用的第三方库进行分析,了解作者使用的库是否是通用的官方库可以有助于我们更快地阅读程序。接着对项目的main()方法进行分析,因为程序使用cli的方式启动,对cli不同的命令进行分析。基于此俩点开始工作。 go-admin中使用的第三方库 cobra 强大的cli封装,支持命令嵌套 cast 简单安全的类型转换 casbin 轻量级开源访问控制框架,采用了元模型的设计思想,支持多种经典的访问控制方案,如基于角色的访问控制 RBAC、基于属性的访问控制 ABAC 等 gorm 一个神奇的,对开发人员友好的 Golang ORM 库 sentinel-golang 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来帮助您保障微服务的稳定性。 opentracing-go 分布式追踪库 cron 定时任务库,支持cron表达式 启动分析 main.go作为程序第一个入口文件,main()方法作为程序入口 使用corboa命令行的方式进行启动,有多个不同的命令,如下所示 查看系统版本 go-admin version 查看系统配置 go-admin config 服务启动 go-admin

Golang 根据Gorm和Gin开发一个后台管理系统

眉间皱痕 提交于 2021-01-13 07:50:42
\\\\\\\\\\\ 项目后端地址: https://github .com/olongfen/gorm-gin-admin 项目前端地址: https://github.com/olongfen/user_admin 项目指导文档 Web UI Framework:element-ui Server Framework:gin Grom Framework: gorm 1. 基本介绍 1.1 项目结构 │ ├─conf (Config file) │ ├─docs (swagger APIs docs) │ ├─log (log file) │ ├─public (public static file) │ ├─static (head icon) ├─src │ ├─controller (Controller) │ ├─middleware (Middleware) │ ├─models (Model entity) │ ├─pkg (Project private package) │ ├─adapter (Casbin adapter) │ ├─app (Gin service response) │ ├─codes (Response code) │ ├─error (Project private error) │ ├─gredis (Redis) │ ├

高效、简单、方便管理与维护的开源运维工单系统

和自甴很熟 提交于 2020-08-09 01:47:23
ferry 工单系统介绍 ferry工单系统是一个集工单统计、任务钩子、RBAC权限管理、灵活配置流程与模版于一身的开源工单系统,当然也可以称之为工作流引擎。 权限控制: 给予casbin的rbac权限控制开发,能非常灵活的控制左侧菜单及页面按钮,并且可以对api进行权限控制,避免可以通过类似与Postman的工具直接发送请求触发api操作的情况。 工单统计: 对工单进行数据统计,便于以后对根据工单进行分析与调整。 任务钩子: 目前支持在当前阶段离开时来触发任务钩子,进行任务的执行,当然后面会加入进入当前阶段的时候触发任务钩子,来执行任务,并且将表单数据,当成参数传递给任务,方便任务可以根据表单数据进行一系列的操作。 灵活配置流程及模版: 通过后台管理,实现拖拖拽拽就能创建出一个完成的工作流和模版,并可以绑定模版。进行表单输入。 当然还有更多更好更妙的功能,比如: 并行阶段处理,条件判断处理,会签功能,处理人实现变量管理 等等。 还有已经排入日程的功能开发,比如: 表单设计的子表单功能,加签功能,催办功能,多人可自认工单处理功能 等等。 当然如果你觉得还有需要加的功能可以给作者留言,或者提交PR。 博客: https://www.fdevops.com/ github: https://github.com/lanyulei/ferry gitee: https://gitee

go web 权限管理 简单例子 (面向对象权限 ABAC / Casbin)

无人久伴 提交于 2020-08-08 06:24:34
go web 权限管理 简单例子 (面向对象权限 ABAC / Casbin) 说明 ABAC 调用 github.com/casbin/casbin abac_model.conf [request_definition] r = sub, obj, act [policy_definition] p = sub, obj,act [policy_effect] e = some(where (p.eft == allow)) [matchers] m = r.sub.App == r.obj.App && r.sub.Type == r.obj.Type && r.sub.Method == r.obj.Method main.go package main import ( "fmt" "github.com/casbin/casbin" ) type User struct { Id int UserName string Group []Group } type Group struct { Id int Name string App string // app Type string // 类型 Method string // 方法 Priority int // 优先级 } type Obj struct { App string // app Type