业务背景
当同一个人同时在多个租户环境任职时,这个人在登录时需要进行多租户选择切换
切换方式
1、通过地址进行切换:地址/login/company 即出现我的公司和协作公司页面
我的公司:我这个人所在的租户有哪些!如图所示:我在东北院和总部都有任职,即我的公司有两个。
协作公司:(协作一般用在超管或者系统管理员上,在个人设置-协作者设置中进行设置,将超管账号中个人设置-协作者设置成你的租户的电话号,那么你就可以协作超管登陆系统,处理业务)
如图所示:代表我可以协作上面三个单位的租户身份去登陆系统
2、配置应用开通,方便切换
- 新建立其他类型云函数 1634_hcm_application_filter 1634是公司id。替换成你所在公司id就可以
代码
class OtherExtendPlugin(object):
"""
其他类别云函数
"""
KEY = 'hcmcloud'
def execute(self, *args, **kwargs):
"""
正式执行方法
"""
app_list = args[0]
employee = args[1]["employee_id"]
for item in app_list:
if item["number"] == "change_company":
item["url"] = "https://hr.cscec.com/login/company"
#需要将https://hr.cscec.com 改成你公司租户的域名
return args[0]
def test(self, **param):
"""
测试执行方法
"""
pass
- 建立编码为change_company的应用并发布,参数和场景不填即可
- 发布后即可点击应用进行切换
限制切换
但是有些租户环境在实际业务中经常是不允许切换的,比如拿中建项目来说,
王明这个人在一局和总部都有租户任职,一般控制总部租户不允许切换,只有进行特殊授权的人员才允许切换。
- 设置总部租户不允许人员随意切换,通过用hcm.model.edit编辑公司Company表下的grand属性
{"model":"Company","id_":1819,"info":{"self_service_grant_mode":"grant"}}
如果允许任何人切换则编辑no_grant属性
{"model":"Company","id_":1819,"info":{"self_service_grant_mode":"no_grant"}}
1819为不允许切换的公司id
- 设置该授权人员可以进行切换
比如上面的例子,设置总部租户不允许切换,那么如果王明这个人想切换,那必须要在总部环境进行授权
授权地址:#/common_model_list?model=CompanyEmployeeGrantRecord
点击新增,授权类型选择员工自助,将王明添加进去
- 设置完成后只有授权过的人才可以登录到此租户