Project

General

Profile

TL_SYS_ROLE_MAPPING_Sync.txt

Luc Tran Van, 10/27/2022 10:18 AM

 
1

    
2
-- Mapping AbpUserRoles -> TL_SYS_ROLE_MAPPING
3
ALTER PROCEDURE dbo.TL_SYS_ROLE_MAPPING_Sync
4
@p_TLNAME varchar(20) = NULL,
5
@p_USER_LOGIN varchar(20) = NULL
6
AS
7
BEGIN TRANSACTION
8
 
9
    DECLARE @USER_ID BIGINT,@ROLENAME VARCHAR(50)
10
    SET @USER_ID =(SELECT ID FROM TL_USER WHERE TLNANME =@p_TLNAME)
11
    
12
    IF((SELECT count(*) FROM AbpUserRoles aur WHERE aur.UserId =@USER_ID)=1)
13
    BEGIN  
14
        SET @ROLENAME =(SELECT ar.DisplayName FROM (SELECT aur.RoleId FROM AbpUserRoles aur WHERE aur.UserId =@USER_ID) tmp JOIN AbpRoles ar ON tmp.RoleId =ar.Id)
15
        IF(EXISTS(SELECT 1 FROM TL_USER WHERE TLNANME = @p_TLNAME AND RoleName <>@ROLENAME))
16
        BEGIN
17
            UPDATE TL_USER SET RoleName = @ROLENAME WHERE TLNANME = @p_TLNAME
18
            IF @@Error <> 0 GOTO ABORT
19
        END
20
    END
21

    
22

    
23
    
24
   DELETE TL_SYS_ROLE_MAPPING WHERE TLNAME = @p_TLNAME AND IS_MAIN = 0
25
   INSERT INTO TL_SYS_ROLE_MAPPING (ROLE_OLD, ROLE_NEW, TLNAME, DEP_ID, BRANCH_ID, EFF_DATE, EXP_DATE, NOTES, AUTH_STATUS, RECORD_STATUS, MAKER_ID, CHECKER_ID, IS_MAIN)
26
   SELECT A.RoleName,C.DisplayName,@p_TLNAME AS TLNAME,A.DEP_ID,A.TLSUBBRID, NULL,NULL,'' AS NOTES,'A' AS AUTH_STATUS, 1 AS RECORD_STATUS,@p_USER_LOGIN AS MAKER_ID,@p_USER_LOGIN AS CHECKER_ID,0 AS IS_MAIN
27
   FROM (SELECT ID,A.RoleName,A.TLSUBBRID,A.DEP_ID FROM TL_USER A  WHERE TLNANME =@p_TLNAME) A
28
   JOIN AbpUserRoles B ON B.UserId = A.ID 
29
   JOIN AbpRoles C ON C.Id=B.RoleId 
30
--   WHERE C.DisplayName NOT IN (SELECT tsrm.ROLE_NEW FROM TL_SYS_ROLE_MAPPING tsrm WHERE tsrm.IS_MAIN=0 AND tsrm.TLNAME=@p_TLNAME)
31
   IF @@Error <> 0 GOTO ABORT
32
    
33
COMMIT TRANSACTION
34
SELECT '0' as Result, '' ErrorDesc
35
RETURN '0'
36
ABORT:
37
BEGIN
38
		ROLLBACK TRANSACTION
39
		SELECT '-1' as Result, '' ErrorDesc
40
		RETURN '-1'
41
End
42

    
43

    
44

    
45