权限细粒度完整示例

编辑
  • 文档创建者:文档助手1
  • 浏览次数:11117次
  • 编辑次数:17次
  • 最近更新:zms 于 2019-09-24

  • 1. 示例

    下面我们以一个完整的示例来分别讲解上两节中介绍的权限细粒度控制的所有内容。

    某一产品公司,在全国 2 个地区华东、华北都有办事处,每个办事处里都有区销售总经理和销售,销售有一个或多个,希望是实现第一个 sheet 显示各地区所有销售详细情况,第二个 sheet 是总销售情况,使每个地区的销售只能看到该地区与自己相关的数据,并且普通销售对参数面板控件只有查看权限,没有编辑权限,销售经理可以看到当前地区所有销售员数据以及销售合计栏,公司总领导能看到所有 sheet。

    2. 前期准备

    2.1 模板设计

    新建一张模板,新建数据集 ds1:SELECT * FROM 销量,并 输出 成内置数据集,再打开输出的内置数据集 cpt 文件,为数据集新增一列用户名,如下图所示:
    222

    如下图所示进行模板设计:
    222

    222

    2.2 用户添加

    FineReport 数据决策系统里面的用户没有该模板中涉及到的销售员,故我们往数据决策系统中添加几个用户,华东地区添加 2 个孙林、张珊,华北地区添加 1 个王伟,并添加机构部门销售,该部门下面有三个职位:销售人员、销售经理和领导,其中孙林、张珊和王伟是销售人员,Anna 是华北地区销售经理,Alice 是华东地区销售经理,Lisa 是领导,详细配置请查看 手动添加用户,如下图所示:

    222

    2.3 数据过滤

    (1)参数面板设置

    点击模板>模板参数,添加一个参数 Product,同时在报表主体中切换到 参数面板,将参数控件全部添加进来,控件类型选择 下拉复选控件,数据字典设置如下图所示:
    222

    (2)过滤条件添加

    为报表主体添加两个过滤条件,第一个是产品类型所在字段,根据参数面板的 Product 参数过滤产品类型,公式为:if(len($Product) = 0, nofilter, $Product)
    222

    第二个是地区所在单元格,使系统当前登录用户只能看到与自身相关的数据,公式为:if(GETUSERJOBTITLES() = "销售人员", $fine_username, nofilter)。如下图所示:

    1.png

    过滤条件中使用到了参数为空选择全部

    (3)地区过滤

    在上面描述中提到了华东地区经理只能看到华东地区数据,华北地区经理只能看到华北地区数据,故,我们为该字段添加过滤条件,实现权限控制,详情请查看 权限细粒度之参数控制,公式为:if($fine_username = "Anna", "华北", if($fine_username = "Alice", "华东", nofilter))

    如下图所示:
    2.png

    已完成模板请参照%FR_HOME%\WebReport\WEB-INF\reportlets\demo\Authority\产品销售情况查询.cpt

    $fine_username、$fr_authority、$fr_userposition 参数在 10.0 里分别对应 $fine_username、$fine_role、$fine_position,这 3 个参数都做了兼容。

    3. 权限编辑

    点击模板>进入权限编辑进入权限编辑界面。

    3.1 控件权限编辑

    在示例描述中讲到,普通销售对参数面板控件只有查看权限,没有编辑权限,即销售人员对控件可见不可用,销售经理和领导即可见也可用,如下图所示:

    222

    3.2 单元格内容权限编辑

    销售人员只能看到自己数据的合计,即 E6 单元格里面的合计汇总数据,不能看到所有人员的合计数据,销售经理可以看到该地区的所有销售人员的所有合计数据,如下图所示,选择销售人员角色,选中汇总行中的单元格,设置其权限不可见:

    222

    3.3 sheet 权限控制

    销售人员和销售经理只能看到销售详情这个 sheet,而销售经理只可以看到总销售情况这个 sheet,如下图所示:

    222

    以同样的方式为销售经理和领导进行权限编辑。

    4. 模板挂载在系统中

    4.1 报表目录添加

    在浏览器地址栏中输入http://localhost:8075/webroot/decision?op=fs?,用管理员或者有权限的普通用户登录系统,点击管理系统>目录管理,将上面的模板添加在 FRTest 目录下面,如下图所示:

    222

    注:由于多 sheet 模板只有在填报预览或者数据分析的模式下才能显示多 sheet,这里使用填报方式查看。

    4.2 报表目录权限分配

    添加完报表目录之后,点击权限管理>报表权限快捷配置,在左侧的目录框中选中 FRTest 目录下面的权限细粒度模板,选择右侧的部门职位,在职位列表下面勾选销售这个部门,即表示,销售下面的所有用户均拥有查看权限细粒度这个模板的权限,如下图所示:

    222

    5. 效果查看

    (1)销售人员

    销售人员用户登录系统,我们这里使用华东地区的孙林和华北地区的张伟登录系统,点击FRTest>权限细粒度模板,效果如下图所示:
    222

    222

    (2)销售经理

    分别使用华东销售经理 Alice 和华北销售经理 Anna 登录系统,效果如下图所示:
    222

    222

    (3)领导

    使用 Lisa 账号登录系统,效果如下图所示:
    222


    附件列表


    主题: 部署集成
    标签: 暂无标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]