簡體   English   中英

基於頁面項目值的Oracle Apex授權方案

[英]Oracle Apex authorization scheme based on page item value

我當前正在使用Oracle Apex 5.1版,並且我正在嘗試建立一個基於我的應用程序中第31頁上的文本字段頁面項的值以及其他因素的授權方案,但是我沒有任何授權成功。

我基於一個名為NAVIGATION的表中的SQL查詢創建了一個動態列表。 然后,我將此列表用作應用程序中的“導航菜單”。 我設置列表查詢的方式是,如果單擊“導航菜單”選項卡上的將我定向到應用程序中的第31頁,則有問題的文本字段頁面項的值將自動推送到該文本字段。 但是,我還通過以下方式設置了對列表的查詢:“導航菜單”中的多個選項卡實際上將用戶定向到頁面31,但是推送到文本字段頁面項的值取決於“導航菜單”選項卡,即點擊。 換句話說,該文本字段頁面項可以包含不同的值,具體取決於單擊了“導航菜單”中的哪個選項卡。 之所以設置它,是因為第31頁上顯示的內容有所不同,具體取決於該文本字段中的值。 一切都完美。 但是,我要在該頁面上顯示的內容取決於用戶的身份,這使我想到了授權方案的問題。

現在,我想為第31頁建立一個授權方案,該方案取決於該文本字段頁面項,並取決於我的一個表中稱為TEAMMEMBERS的特定數據。 TEAMMEMBERS有一個名為“用戶名”的列和一個名為“ P31_Access”的列。 “用戶名”列包含要進入應用程序的人員的用戶名。 “ P31_Acess”包含可以推到第31頁上的該文本字段的不同值。因此,基本上我想要的是,如果單擊“導航菜單”中帶我到第31頁的選項卡之一,則希望該應用程序在我的TEAMMEMBERS表中查找,在“用戶名”列中找到我的用戶名,然后查看同一行中“ P31_Access”列中的值。 如果該行中“ P31_Access”中的值與第31頁上的文本字段頁面項的值相同,則可以訪問。 否則,將不授予訪問權限。

我知道這似乎是一種處理訪問的奇怪方法,但是為頁面上的各個組件設置授權方案將無法滿足我的特定情況和需要。

到目前為止,這是我所擁有的,但是並沒有產生我想要的結果。

SELECT 1
FROM TEAMMEMBERS
WHERE P31_ACCESS = :P31_ACCESS
AND upper(username) = upper(:APP_USER);

我確定查詢有很多問題,但是我不確定該如何編寫。 有人有什么想法嗎? 我想知道返回布爾值的PLSQL是否可以更好地設置此授權方案,但是我不確定。

先感謝您。

我的第一個猜測是未將P31_ACCESS設置為會話狀態。 由於您正在頁面上運行一個進程,因此需要在服務器上進行設置,並且需要在頁面生成過程的早期進行設置。 因此,您可能需要在“標頭之前”步驟中進行“計算”才能設置其值。

確保您的授權過程不是“每個會話一次”。 您可能希望每個頁面查看一次。

根據您的描述,這聽起來也像您希望您的查詢是這樣,並確保它是Exists SQL Query類型:

SELECT 1
FROM TEAMMEMBERS
WHERE ( P31_ACCESS = :P31_ACCESS OR P31_ACCESS IS NULL )
AND upper(username) = upper(:APP_USER);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM