first commit
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
DELIMITER //
|
||||
|
||||
CREATE PROCEDURE get_module_security (
|
||||
IN p_token VARCHAR(100), -- 新增 token 判斷
|
||||
IN p_moduleid VARCHAR(20)
|
||||
)
|
||||
/*
|
||||
Function : 依 Security 的設定, 判斷該 user 所有 menu 的權限
|
||||
Description: 配合 login 後, 寫入 localStorage
|
||||
Build Date : 2023-12-10
|
||||
|
||||
Modify History
|
||||
Item Who Date Modify Docs
|
||||
==== ========== ========== ================================================
|
||||
1 Michael 2023-12-10 改寫為 MySQL 版
|
||||
|
||||
*/
|
||||
BEGIN
|
||||
DECLARE v_recno INT;
|
||||
DECLARE v_statuscode INT;
|
||||
DECLARE v_errMsg NVARCHAR(200);
|
||||
DECLARE v_userid VARCHAR(20);
|
||||
|
||||
SET v_statuscode = 0;
|
||||
SET v_errMsg = '成功!';
|
||||
SET v_recno = 1;
|
||||
|
||||
-- 根據傳入的 token 取得 userid
|
||||
SELECT userid INTO v_userid FROM sys_users WHERE token = p_token;
|
||||
|
||||
-- 回傳值 dataset[0], 前3個欄位有固定的內容
|
||||
SELECT v_statuscode AS code, v_errMsg AS msg, v_recno AS recno;
|
||||
|
||||
-- 回傳值 dataset[1], 實際的資料
|
||||
SELECT DISTINCT menuid, controlname FROM sys_rolemenusecurity
|
||||
WHERE (roleid IN (SELECT DISTINCT roleid FROM sys_userroles WHERE userid = v_userid) OR roleid = '00')
|
||||
AND EXISTS (SELECT * FROM sys_menutable x WHERE x.menuid = sys_rolemenusecurity.menuid AND moduleid = p_moduleid)
|
||||
AND controlname <> 'read';
|
||||
|
||||
END //
|
||||
|
||||
DELIMITER ;
|
||||
Reference in New Issue
Block a user