业务背景

当同一个人同时在多个租户环境任职时,这个人在登录时需要进行多租户选择切换


切换方式

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

点击新增,授权类型选择员工自助,将王明添加进去


  • 设置完成后只有授权过的人才可以登录到此租户














  • 无标签