superset支持的图表_如何在Apache开源商业BI平台 superset添加和使用自定义的权限...

Superset是Airbnb开源的一款BI产品,Apache开源项目,支持多种数据库连接,拥有丰富的图表类型,其部署方便,制作看板迅速,能够款速方便的实现数据分析和可视化,是个人和小企业自助BI的不错选择。

0bf1a03bfbbb4c5ba13675898b37a668
b318bc58ca1e4bd7ad19023083844496

最近接到客户需求,需要根据不同的角色,赋予不同的看板使用权限,比如,Admin用户需要在任何时候都能探索,编辑,和下载图表。目测了一下,Superset原生的好像并没有这个权限的定义。只好自己研究一下添加以上的权限:

1. Superset的权限系统

Superset控制权限主要依靠用户(user),角色(role),权限(permissions),视图(view_menu) 四个类来实现。

他们对应的关系如下:

857b6409fbfc492eafcf4497af05ee2f

一个用户对应多个角色,一个角色对应多个用户

一个角色对应多个permission_view, 一个permission_view对应多个角色

一个permission 对应多个 view menu, 一个view_menu对应多个permission

简单的说,就是permission 和view_menus是多对多的关系,然后每一条多对多的关系即为一条权限记录(permission_view_menu), 这个permission_view_menu和role又是多对多的关系。

一个角色包含一个权限记录,该角色下面的所有用户即拥有该权限。

2. 如何添加一条权限信息

def create_role_permission_view_menu(role_name, pv): """ general method to create permission ,view menu, and add perms into role :param role_name: str, role name  :param pv: dict, key is permission_name, value is view_menu_name e.g. :return:  """ for permission_name, view_menu_name in pvs.items(): merge_perm(sm, permission_name, view_menu_name) role = sm.find_role(role_name) perm_view = sm.find_permission_view_menu(permission_name, view_menu_name) sm.add_permission_role(role, perm_view)role_name = "Admin"permission_view_menu = { 'can_edit_chart': "chart
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值