2013-07-31 30 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

希望這有助於