基于Tornado实现,提供Restful风格的API,提供基于RBAC的完善权限管理,可对所有用户的操作进行审计
本应用是基于tornado框架 restful风格的API 实现后台管理,搭配使用admin-front前端(iView+ vue)组成的一套后台用户 权限以及系统管理的解决方案(提供登录,注册 密码修改 鉴权 用户管理 角色管理 权限管理 前端组件管理 前端路由管理 通知服务API 系统基础信息接口) 本项目为CODO开源项目提供后台支持,也可以基于此项目基础项目开发自己的站点,更多基础功能还在不断开发中,如果想要查看更新动态,你可以到更新日志查看最新更新,如果你是新手想快速部署,你可以去部署文档 查看
登录/登出 (支持谷歌动态码/支持邮箱登录/支持LDAP登录)
密码修改
鉴权 /权限刷新
用户管理 用户系统基于RBAC模型的
角色管理
权限管理 (后端路由)基于角色
菜单管理 (前端路由)基于角色
组件管理 (前端组件)基于角色
通知管理 (提供发送短信,发送邮件API)
系统配置 (后端api地址,短信配置,邮件配置,存储配置,邮箱登录等等)
系统日志 (从API网关获取日志,当然也可以自行从基类获取)
├── doc
│ ├── data.sql
│ ├── deployment.md
│ ├── nginx_ops.conf
│ ├── requirements.txt
│ └── supervisor_ops.conf
├── docker-compose.yml
├── Dockerfile
├── __init__.py
├── libs
│ ├── base_handler.py
│ ├── __init__.py
│ ├── my_verify.py
│ └── utils.py
├── mg
│ ├── applications.py
│ ├── handlers
│ │ ├── app_mg_handler.py
│ │ ├── app_settings_handler.py
│ │ ├── components_handler.py
│ │ ├── configs_init.py
│ │ ├── functions_handler.py
│ │ ├── __init__.py
│ │ ├── login_handler.py
│ │ ├── menus_handler.py
│ │ ├── notifications_handler.py
│ │ ├── roles_handler.py
│ │ ├── users_handler.py
│ │ └── verify_handler.py
│ ├── __init__.py
│ └── subscribe.py
├── models
│ ├── admin.py
│ ├── app_config.py
│ ├── __init__.py
├── README.md
├── settings.py
└── startup.py
这部分文档主要用来介绍用户管理,它可以很精细的管理你的用户权限
用户列表:顾名思义,用来管理和展示用户的列表,记录用户的详细信息
功能支持
展示界面
用来详细配置管理每个接口的权限,默认不需修改。
注意事项
/
权限,无需修改,以免造成系统请求某功能出错功能说明
支持多种搜索方式,如:权限名称、请求路径、请求方法、时间等
支持新增、编辑、关闭、删除等操作权限的管理
支持新增自定义权限功能,适用于开发人员编写的API接口能很方便的接入进来权限管理划分
一些详细的API及使用文档正在支持更新中............
菜单组件:顾名思义,也就是导航栏所看到的功能模块(如:用户管理、系统管理)和一些功能按钮(如:编辑、删除按钮),默认无需修改
注意事项
功能介绍
列举以下几个菜单和组件进行介绍,字面英语也可看出含义,如下:
由于代码层面不好直接使用中文,你可以选择平台语言English
,如下图,很清晰看到每个作用。
基于RBAC角色管理访问控制权限,可以很精细/方便的管理你的用户权限
功能介绍
角色的搜索、编辑、关闭、删除
自定义角色名字,自定义赋权组件、菜单、权限管理
列表可搜索赋权设计,方便用户可视化操作
示例介绍分为两部分,创建管理员用户赋权和创建普通用户赋权
新建用户
同上,填写信息即可,详细权限管理全部在角色管理配置
用户赋权
新增用户
点击用户列表---新增用户,输入信息
用户赋权
点击角色管理---新建,输入角色信息,选择角色进行赋权
这部分主要介绍系统配置,系统管理模块主要分为:
系统配置
和系统日志
系统配置主要介绍系统参数配置,后续后陆续支持各种核心功能配置
系统配置
这块需要配置你的API地址,部署时你API网关服务所部署的服务器地址,只有确认了API网关,各个功能模块才可以正常通信。
邮件设置
这块主要配置邮箱,配置了此邮箱信息后,后续平台内所涉及到邮件提醒都会使用此邮箱配置。
不同运营商配置可参考FAQ
中邮箱设置问题
短信接口
这块主要配置短信接口信息,短信接口只支持阿里云
阿里大鱼
,后续平台所涉及到发短信会调用此接口
cn-hangzhou
目前阿里官方给出必须是这个Dysmsapi
目前官方给出一般都是这个名称dysmsapi.aliyuncs.com
目前官方给出必须是这个地址这里需要必须有SMS的权限
邮箱登陆
这块主要是支持第三方邮箱登陆,当你想要使用邮箱登陆此平台时,你可以在此进行配置 比如我们企业邮箱是腾讯的,域名就是
opendevops.cn
,SMTP就是腾讯的stmp.exmail.qq.com
,这样配置完成后我就可以使用我[email protected]
邮箱+密码登陆此平台了。
存储配置 -> 这块主要是配置Bucket信息,目前只支持阿里云的OSS,这里目前主要用于将跳板日志审计的内容存放到OSS目录里面,若不配置此项则存数据库(可能会很大)
cn-hangzhou
这里主要记录的本系统平台的所有请求日志,如:GET/POST/DELETE/PUT等,你的操作信息都会被记录,不要随意干坏事哟,管理员都可以看到的,安全我们还是会考虑进去的。
仅支持阿里大鱼
/v2/notifications/sms/
POST
contentType:"application/json"
{"phone": "十一位手机号多个以逗号分割", "msg": {"msg": "短信内容"},"sign_name": "签名","template_code": "SMS_136397941111"}
/v2/notifications/mail/
POST
contentType:"application/json"
{"to_list": "[email protected], [email protected]", "subject": "标题","content": "内容"}
本系统使用token进行身份验证,当用户需要API进行访问的时候就需要获取token,并把token放入cookie里或者 访问的url参数里
从用户管理 > 菜单组件里面找到 get_token_btn 这个代表获取token的按钮 要存在并且启用
从用户管理 >角色管理里面找到你要赋值的角色,点击组件把get_token_btn 添加进去
使用token 向 CODO 服务 API 提交安全的 REST 或 HTTP 查询协议请求。为了您的安全,请不要与任何人分享您的密钥。作为最佳做法,我们建议经常更换密钥
简单python示例,当然你之前一定会检查这个token是否对这个接口有权限,对吧!
import requests
import json
auth_key= '这里就是你的token'
url = 'https://xxx.xxxx.cn/api/kerrigan/v1/conf/publish/config/?project_code=shenshuo&environment=dev&service=nginx&filename=demo.conf'
### 使用 cookie 传递
try:
res = requests.get(url, cookies=dict(auth_key=auth_key))
ret = json.loads(res.content)
if ret['code'] == 0: return ret['data']
except Exception as e:
print('[Error:] 接口连接失败,错误信息:{}'.format(e))
exit(-1)
### 使用url 传递
try:
_params = {'这里是参数名': '这里是参数值', 'auth_key': auth_key}
res = requests.get(url, params=_params)
ret = json.loads(res.content)
if ret['code'] == 0: return ret['data']
except Exception as e:
print('[Error:] 接口连接失败,错误信息:{}'.format(e))
exit(-2)
Everything is GPL v3.0.