130 lines
4.8 KiB
Transact-SQL
130 lines
4.8 KiB
Transact-SQL
UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.5.0.0'
|
|
GO
|
|
|
|
ALTER TABLE [dbo].[TBDD_MODULES] ADD WMSESSION_STARTSTOP_STARTUP BIT NOT NULL DEFAULT 0
|
|
GO
|
|
/*Run following command to set the WM-Startup on Appstart to true*/
|
|
--UPDATE TBDD_MODULES SET WMSESSION_STARTSTOP_STARTUP = 1 WHERE SHORT_NAME = 'PM'
|
|
--GO
|
|
CREATE FUNCTION [dbo].[FNDD_GET_USER_FOR_MODULE] (@pMODULE_SHORT_NAME VARCHAR(10),@pCLIENTID INTEGER)
|
|
--DECLARE @pMODULE_SHORT_NAME VARCHAR(10),@pCLIENTID INTEGER
|
|
--SET @pMODULE_SHORT_NAME = 'PM'
|
|
--SET @pCLIENTID = 1
|
|
RETURNS
|
|
--DECLARE
|
|
@Table TABLE
|
|
(SequentialOrder INT IDENTITY(1, 1),
|
|
USER_ID INTEGER,
|
|
USER_NAME VARCHAR(50),
|
|
USER_PRENAME VARCHAR(50),
|
|
USER_SURNAME VARCHAR(50),
|
|
USER_SHORTNAME VARCHAR(50),
|
|
USER_EMAIL VARCHAR(100),
|
|
USER_LANGUAGE VARCHAR(10),
|
|
USER_RIGHT_FILE_DEL BIT,
|
|
MODULE_ACCESS BIT,
|
|
IS_ADMIN BIT,
|
|
USER_COMMENT VARCHAR(500),
|
|
COMMENT VARCHAR(500))
|
|
AS
|
|
BEGIN
|
|
/*
|
|
This function checks all user-relevant relations an
|
|
*/
|
|
DECLARE
|
|
@RESULT VARCHAR(500),
|
|
@USER_ID INTEGER,
|
|
@USER_NAME VARCHAR(50),
|
|
@USER_PRENAME VARCHAR(50),
|
|
@USER_SURNAME VARCHAR(50),
|
|
@USER_SHORTNAME VARCHAR(50),
|
|
@USER_EMAIL VARCHAR(50),
|
|
@USER_LANGUAGE VARCHAR(10),
|
|
@IS_IN_MODULE BIT,
|
|
@IS_ADMIN BIT,
|
|
@USER_RIGHT_FILE_DEL BIT,
|
|
@MODULE_NAME VARCHAR(100),
|
|
@MODULE_GUID INTEGER,
|
|
@USER_GROUPNAME VARCHAR(100),
|
|
@ADMIN_GROUPNAME VARCHAR(100),
|
|
@USER_COMMENT VARCHAR(500)
|
|
|
|
IF @pMODULE_SHORT_NAME = 'PM'
|
|
BEGIN
|
|
SET @USER_GROUPNAME = 'PM_USER'
|
|
SET @ADMIN_GROUPNAME = 'PM_ADMINS'
|
|
END
|
|
ELSE IF @pMODULE_SHORT_NAME = 'CW'
|
|
BEGIN
|
|
SET @USER_GROUPNAME = 'CW_USER'
|
|
SET @ADMIN_GROUPNAME = 'CW_ADMINS'
|
|
END
|
|
ELSE IF @pMODULE_SHORT_NAME = 'ADDI'
|
|
BEGIN
|
|
SET @USER_GROUPNAME = 'ADDI_USER'
|
|
SET @ADMIN_GROUPNAME = 'ADDI_ADMINS'
|
|
END
|
|
ELSE IF @pMODULE_SHORT_NAME = 'GLOBIX'
|
|
BEGIN
|
|
SET @USER_GROUPNAME = 'GLOBIX_USER'
|
|
SET @ADMIN_GROUPNAME = 'GLOBIX_ADMINS'
|
|
END
|
|
ELSE IF @pMODULE_SHORT_NAME = 'UM'
|
|
BEGIN
|
|
SET @USER_GROUPNAME = 'XXXX'
|
|
SET @ADMIN_GROUPNAME = 'UM_ADMINS'
|
|
END
|
|
SELECT @MODULE_GUID = GUID, @MODULE_NAME = NAME FROM TBDD_MODULES WHERE SHORT_NAME = @pMODULE_SHORT_NAME
|
|
|
|
DECLARE cursor_user CURSOR FOR
|
|
select GUID, ISNULL(PRENAME,'no prename'), ISNULL(NAME,'no name'), ISNULL(SHORTNAME,'no shortname'), ISNULL(EMAIL,'no email'), LANGUAGE,USERNAME,COMMENT from TBDD_USER
|
|
OPEN cursor_user
|
|
FETCH NEXT FROM cursor_user INTO @USER_ID,@USER_PRENAME,@USER_SURNAME,@USER_SHORTNAME,@USER_EMAIL,@USER_LANGUAGE,@USER_NAME,@USER_COMMENT
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
SET @IS_ADMIN = 0
|
|
SET @IS_IN_MODULE = 0
|
|
SET @RESULT = ''
|
|
--CHECK USER IS IN MODULE_USER_GROUP
|
|
IF EXISTS(select T1.* from TBDD_GROUPS T, TBDD_GROUPS_USER T1 WHERE T.GUID = T1.GROUP_ID AND T1.USER_ID = @USER_ID AND UPPER(T.NAME) = @USER_GROUPNAME)
|
|
BEGIN
|
|
SET @IS_IN_MODULE = 1
|
|
SET @RESULT = 'User is part of Group (' + @USER_GROUPNAME + ')'
|
|
IF EXISTS(select T.* from TBDD_USER_MODULES T WHERE T.USER_ID = @USER_ID AND T.MODULE_ID = @MODULE_GUID)
|
|
BEGIN
|
|
SET @RESULT = @RESULT + '| User is also configured in User-Modules (Unnecessary)'
|
|
select @IS_ADMIN = T.IS_ADMIN,@USER_RIGHT_FILE_DEL = T.RIGHT1 from TBDD_USER_MODULES T WHERE T.USER_ID = @USER_ID AND T.MODULE_ID = @MODULE_GUID
|
|
|
|
END
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @RESULT = 'User <' + CONVERT(VARCHAR(10),@USER_ID) + ' - ' + @USER_NAME + '> not part of group (' + @USER_GROUPNAME + ')'
|
|
IF EXISTS(select T.* from TBDD_USER_MODULES T WHERE T.USER_ID = @USER_ID AND T.MODULE_ID = @MODULE_GUID)
|
|
BEGIN
|
|
SET @RESULT = @RESULT + '| BUT User configured in User-Modules'
|
|
select @IS_ADMIN = T.IS_ADMIN,@USER_RIGHT_FILE_DEL = T.RIGHT1 from TBDD_USER_MODULES T WHERE T.USER_ID = @USER_ID AND T.MODULE_ID = @MODULE_GUID
|
|
SET @IS_IN_MODULE = 1
|
|
END
|
|
END
|
|
|
|
IF EXISTS(select T1.* from TBDD_GROUPS T, TBDD_GROUPS_USER T1 WHERE T.GUID = T1.GROUP_ID AND T1.USER_ID = @USER_ID AND UPPER(T.NAME) = @ADMIN_GROUPNAME)
|
|
BEGIN
|
|
SET @RESULT = @RESULT + '| User is part of group (' + @ADMIN_GROUPNAME + ')'
|
|
SET @IS_ADMIN = 1
|
|
SET @IS_IN_MODULE = 1
|
|
END
|
|
--PRINT @RESULT
|
|
IF @IS_IN_MODULE = 1
|
|
INSERT INTO @Table (USER_ID,USER_NAME, USER_PRENAME, USER_SURNAME,USER_SHORTNAME,USER_EMAIL,USER_LANGUAGE, USER_RIGHT_FILE_DEL, MODULE_ACCESS,IS_ADMIN,USER_COMMENT,COMMENT)
|
|
VALUES (@USER_ID,@USER_NAME,@USER_PRENAME,@USER_SURNAME,@USER_SHORTNAME,@USER_EMAIL,@USER_LANGUAGE,@USER_RIGHT_FILE_DEL,@IS_IN_MODULE,@IS_ADMIN,@USER_COMMENT,@RESULT)
|
|
FETCH NEXT FROM cursor_user INTO @USER_ID,@USER_PRENAME,@USER_SURNAME,@USER_SHORTNAME,@USER_EMAIL,@USER_LANGUAGE,@USER_NAME,@USER_COMMENT
|
|
END
|
|
CLOSE cursor_user
|
|
DEALLOCATE cursor_user
|
|
RETURN
|
|
END
|
|
GO
|
|
|
|
|