2013-07-31 5 views
0

6 개 작업 사이트에서 사용할 응용 프로그램을 빌드하려고합니다. 나는 모든 직원의 세부 사항을 동일한 신청서에 제출하고 싶고 각 직원은 그들에게 할당 된 '사이트'(그들이 근무하는 도시)를 갖게됩니다. 해당 사이트의 관리자가 응용 프로그램을 사용할 때 해당 사용자가 액세스 할 수있는 사이트의 직원 만 보길 원합니다.사용자 그룹을 참조하는 Oracle Apex

저는 한동안이 문제에 시달렸습니다. 모든 직원을 볼 수 있도록 모든 테이블과 페이지를 설정했습니다. 사용자 그룹을 만들고 다른 사용자를 다른 그룹 (사이트)에 할당했습니다. 나는 액세스를 제한하는 방법이나 사용자가 할당 된 그룹을 참조하는 방법을 모릅니다.

이 주제에 대한 도움이 있으면 대단히 감사하겠습니다.

고맙습니다.

+0

이 도움이 sensative

희망입니다 양해하여 주시기 바랍니다? – Tom

답변

0

직접 해결책을 찾았습니다. 'Tbl_000_UserAccess'라는 테이블을 만들었습니다. 이 테이블에는 3 개의 열 (ID, 사용자 ID, 사이트 ID)이 있습니다.

나는이 표에서 볼 수있는 사용자와 사이트 ID를 추가합니다.

그러면 staff 테이블에 대한보기를 작성하여 레코드를 현재 사용자의 사용자 ID로 제한합니다. 관심있는 사람을 대상으로 코딩 한 내용입니다.

FORCE VIEW "Vw_010_Staff"("ID", "Emp No.", "성", "팀 리더" 코치, JE, CD, IRE, FAM, GB, GST, Emp, SLS, 버스 RADC, KS Ind, KS N Ind, , "Anon", "OB", "Resigned", "Reason", "Site") AS "ID"를 "Tbl_010_Staff", "Tbl_010_Staff", "직원 번호"를 "Emp No. ", "Tbl_010_Staff "."이름 ", "Tbl_010_Staff "."성 ", "Tbl_011_TeamLeaders "."성 "으로. ''|| "Tbl_011_TeamLeaders". "성"(팀 리더), "Tbl_012_Coaches". "이름"|| ''|| "Tbl_010_Staff", "Tbl_010_Staff", "CDstuff", "CDstuff", "Tbl_010_Staff". "IR Essentials"로 "Tbl_012_Coaches" "코치"로 "성"으로 "성"으로 "012"를 "Tbl_014_JE" "FAM"로 "IRE" "Tbl_010_Staff." "가족 세액 공제", "Tbl_010_Staff." "일반 사업", "GST"로 "GB", "Tbl_010_Staff". "GST" "Tbl_010_Staff"로 "Business RAD", "Tbl_010_Staff". "Kiwi Saver Ind"는 "SMB"로, "SLS"는 "SLS"로, 학생용 대출은 "Tbl_010_Staff" KS Ind ", "Tbl_010_Staff ""Kiwi Ind ", "Tbl_010_Staff "."Anon ","Anon ", "Tbl_010_Staff "."아웃 바운드 " 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 테이블에 레코드를 추가해야한다는 것입니다. 사용자 아이디는 경우 당신은 정점 자체의 사용자 관리를 통해 정의 된 사용자 및 사용자 그룹을 사용하는