虽然基础模块是由系统自动创建的,但为了更好地进行二次开发您需要深度理解一下后台模块的运行原理。
GOCMS 后台模块运行时序图
通过上面的流程图可以看到,一个后台模块操作的完整流程重路由解析开始,解析请求后中间件会对请求用户进行权限检查,通过检查后会根据不同的 action 执行不同的控制方法,在同一个控制器方法中又通过请求方式 GET 或者 POST 来进一步区分具体的操作。
go 编写的项目最终打包后会编程一个可执行文件,但在开发过程中我们将项目各个功能规划为不同的包,这也是高级编程语言编程的通用做法。我们可以从文件角度看一下运行顺序,进一步了解开发过程 :
1 通过菜单添加添加权限
后台权限检查流程从添加模块开始,我们通过菜单配置文件 :
添加了对应模块的路由地址 ( path 属性 ) :
默认为列表页面的路径。
同时还添加了其他的附加权限,增加、删除、编辑数据 :
2 更新角色
这样的添加同时会同步到角色模块,我们会通过角色更新,保存角色对应的权限数据( 核心数据为 path )。
角色数据以 json 形式保存到 grace_manager_roles 表 :
3 更新用户权限
用户权限以session形式存储,在登录时一次性读取用户对应角色的权限数据,所以在更新角色后我们需要重新登录一次系统。
4 路由权限检查
后台操作系统中间件会对请求路径进行路由解析,然后组合处匹配的权限路径,最后将这个路径与用户权限进行比对,比对失败终止运行,比对成功继续执行后面的逻辑。