zoukankan      html  css  js  c++  java
  • Salesforce学习之路(五)role hierarchy & sharing

    1. Role Hierarchy

    在私有或者混合模型中,如果在organization-wide defaults设置某个对象为Private,那么对象的记录只有拥有者可以查看。但是,role hierarchy可以让该条记录拥有者的上司有权限访问该条记录。

    前提:Case在Organization-wide Defaults中被设为Private.

    如图片中所说,如果US Sales Rep为Case A的拥有者,则US Sales Director,VP of Global Sales以及CEO都拥有访问Case A的权限。

    注意,这里的权限继承是单向的。例如:US Sales Director为Case B的拥有者,那么VP Sales Director和CEO拥有Case B的访问权限,而US Sales Rep没有。

    2. Orgnazation-Wide Defaults

    相当于全局范围内,sObject的访问权限设置,一般分为:Private, Public Read Only, Public Read/Write

    • Private: 除了该条记录的拥有者,其他人无法访问(可通过其他的手段增加访问权限)。
    • Public Read Only: 除了该条记录的拥有者,其他人只有查看权限,没有修改权限(可通过其他手段增加修改权限)。
    • Public Read/Write: 所有的用户都可以访问该对象的所有记录。

    3. Sharing Rules

    除了设置全局范围内默认的权限外,还可针对某个Object,自定义设置Sharing Rules以满足业务需求。

    首先,选择需要设置规则的对象,点击New

    由图可见,Rule Type有两种:

    • Based on record owner:当记录拥有者为某个用户或某个角色等时,满足分享条件。
    • Based on criteria:当达到设计的过滤准则时,满足分享条件

    3.1 Based on record owner

    当记录的拥有者的条件:Public groups == Account Share-BALTI 为真时,将该条记录分享给NGCC-CC Site Manager这个Role以及属于该Role下的所有用户。

    注意:这里拥有者和被分享者有多种选择,可以是Group(用户组), Role(某个用户或某类用户),Roles, Internal and Portal Subordinates(某个用户及该用户下属所有用户)等,这些都可以自定义创建。

    3.2 Based on criteria

    这里的Criteria便是规则,具体内容如下:

    • Field,选择Lead Record Type字段。
    • Operator,判断的条件,equal(==),not equal(!=), start with(字符串以什么开始), contains(字符串中包含该字符), does not contain(字符串不包含), less than(<), greater than(>), less or equal(<=), greater or equal(>=), includes(包括), excludes(不包括), within(在什么里)。注意,这里是全量操作,而实际情况下,不同字段属不同类型,只有部分操作可选择。例如:less than/greater than则适用于Number类型,start with适用于Text(可理解为String)类型。
    • Value,判断的值,多个值之间用逗号隔开。

    Filter Logic, 不同过滤条件之间的逻辑关系,上述图中,有三条过滤条件,其过滤逻辑为1 AND (2 OR 3),即(第一个条件为真)并且(第二个条件或第三个条件为真)时,该条规则满足。

    Share with, 当满足该条规则时,便将该条记录分享给NGCC-CC Site Manager这个Role以及属于该Role下的所有用户。

    ** Access, 被分享用户对于该条记录的权限设置,分为Read Only和Read/Write两种。

    4. Teams

    顾名思义,创建一个team,在其中添加多个用户,然后将记录分享给整个team成员。

    注意:对于Salesfroce来讲,目前只有两个标准对象拥有team概念:Account, Case.

    Step 1: Enable Account Team

    Step 2: 选择在哪些Page layout中可以看到Team,并将其添加到用户的自定义相关列表中,点击save。

    Step 3: 【Setup】-->【Object Manager】-->【Account】-->【Page Layouts】-->【***】(自定义page layout)

    选择Related Lists,在右侧找到Account Team后,将其拖至下方,点击Save按钮--> Yes,如下图所示。

    Step 4: 点击九宫格,在All Items下面选择Account,进入Account导航页面。

    Step 5: Account Team列中添加Team成员,点击Add Team Members。当然,你也可以创建一个Team,然后在此处直接Add Default Team。

    点击Save按钮,分享该条记录至RestrieveCode SP和wu kai用户。

    PS:点击用户旁边的倒三角,可以对该用户进行编辑和删除操作。

    5. Manual Sharing

    手动分享,通过sharing按钮,手动分享该条记录至指定用户(群)。但是,该功能目前还没有合入Lighnting Experience版本,若想使用,可切换至Classic版本。

    点击右上角头像,选择Switch to Salesforce Classic

    切换至Classic版本,界面如下。

    从Recent Items下找到Account Team Sample用户,点击Sharing,添加要分享的用户。

    6. 权限控制

    对于Salesforce来说,权限是不断累加的,多种规则权限间表现为并集关系,但对于Salesfroce来说,搜寻不同规则是有先后顺序的,具体表现如下图所示。

    用户访问某记录依次查询:

      1)Organization-Wide Default: Public Read/Write,读写权限;Public Read/Only,只读权限,若想修改,往下查看;Private, 无访问权限,往下查看。

      2)Role Hierarchy: 用户为记录拥有者的领导,有权限访问(读写权限)。

      3)Sharing Rules: 满足规则,并且属于被分享者之一,则有访问权限(读写权限可配置)。

      4)Teams and Manual Sharing: 属于Team成员之一或者属于Sharing成员之一,则拥有访问权限(读写权限可配置)

    上述四条规则依次查询,满足操作权限则退出,如不满足,继续往下,若皆不满足则无权限访问。

    Okay,上述内容是我对于Data Security的一点理解,如有误之处,望大佬斧正。

  • 相关阅读:
    C# 反射
    WinForm资源管理器开发(TreeView&ListView)
    枚举——完美立方
    关于考证
    人工智能时代,程序员要不要精通算法?
    程序员需要掌握哪些软技能?
    Android数据解析——JSON
    C# 数组转json
    jQuery跨域调用Web API
    oracle 创建表同时添加注释
  • 原文地址:https://www.cnblogs.com/cloudman-open/p/11587425.html
Copyright © 2011-2022 走看看