2013-07-31 34 views
0

我正在尝试构建将在6个工作站点上使用的应用程序。我希望将所有员工的详细信息提交给同一个申请,并且每个员工都将分配一个“站点”(他们工作的城市)。当该网站的经理使用该应用程序时,我希望他们仅查看他们有权访问的网站上的工作人员。引用用户组的Oracle Apex

我一直在努力这一段时间。 我已经设置了所有的表格和页面,以便所有员工都可以看到。 我已经创建了用户组,并将不同的用户分配到不同的组(站点)。我不知道如何限制访问权限,甚至不能引用用户分配到的组。

任何有关这个主题的帮助将不胜感激。

谢谢你提前

+0

您正在使用通过顶点本身的用户管理定义的用户和用户组? – Tom

回答

0

我已经找到了一个合适的解决方案我自己。我创建了一个名为'Tbl_000_UserAccess'的表格 在这个表格中有3列(ID,用户ID,站点ID)。

我将用户和站点ID添加到此表中。

然后我在员工表上创建一个视图,限制当前用户的UserID的记录。这是我对任何感兴趣的人的视图编码:

创建或替换强制视图“Vw_010_Staff”(“ID”,“雇员编号”,“名字”,“姓氏”,“团队负责人”教练“,”JE“,”CD“,”IRE“,”FAM“,”GB“,”GST“,”Emp“,”SLS“,”公交RADC“,”KS Ind“ ,“Anon”,“OB”,“辞职”,“Reason”,“Site”)AS 选择“Tbl_010_Staff”,“ID”为“ID”, “Tbl_010_Staff”,“员工编号” “, ”Tbl_010_Staff“。”First Name“as”First Name“, ”Tbl_010_Staff“。”Last Name“as”Last Name“, ”Tbl_011_TeamLeaders“。 ''|| “Tbl_011_TeamLeaders”,“姓氏”为“Team Leader”, “Tbl_012_Coaches”。 ''|| “Tbl_012_Coaches”,“Last Name”为“Coach”, “Tbl_014_JE”,“JE”为“JE”, “Tbl_010_Staff”,“Customer Details”为“CDstuff”, “Tbl_010_Staff”,“IR Essentials” “IRE”, “Tbl_010_Staff”, “家庭税收抵免” 为 “FAM”, “Tbl_010_Staff”。 “一般业务” 为 “GB”, “Tbl_010_Staff”。 “GST” 为 “GST”, “Tbl_010_Staff” “雇主”为“Emp”, “Tbl_010_Staff”,“学生贷款”为“SLS”, “Tbl_010_Staff”,“业务应收账款”为“公交RADC”, “Tbl_010_Staff”,“Kiwi Saver Ind” KS Ind“, ”Tbl_010_Staff“,”Kiwi Saver NonInd“作为”KS N Ind“, ”Tbl_010_Staff“。”Anonymous“作为”Anon“, ”Tbl_010_Staff“。”Outbound“as” OB”, “Tbl_010_Staff”。 “不活跃” 为 “退职”, “Tbl_010_Staff”。 “闲置原因” 为 “理”, “Tbl_010_Staff”。 “网站” 为 “网站”

from (((("Tbl_010_Staff" left outer join "Tbl_011_TeamLeaders" on "Tbl_010_Staff"."Team Leader" = "Tbl_011_TeamLeaders"."ID") 
    left outer join "Tbl_012_Coaches" on "Tbl_010_Staff"."Coach" = "Tbl_012_Coaches"."ID") 
left outer join "Tbl_014_JE" on "Tbl_010_Staff"."JE" = "Tbl_014_JE"."ID") 
left outer join "Tbl_000_UserAccess" on "Tbl_010_Staff"."Site" = "Tbl_000_UserAccess"."SiteID") 

**where "Tbl_000_UserAccess"."SiteID" = 
(Select "Tbl_000_UserAccess"."SiteID" 
    from "Tbl_000_UserAccess" 
    where "Tbl_000_UserAccess"."UserID" = NVL(v('APP_USER'),USER))** 

这已完美运作。唯一令人烦恼的是,当用户添加到模式中时,我还需要将一条记录添加到useraccess表。 请注意,用户名是区分sensative

希望这有助于