230 lines
22 KiB
Transact-SQL
230 lines
22 KiB
Transact-SQL
UPDATE TBDD_MODULES SET DB_VERSION = '1.0.2.0' where SHORT_NAME = 'ZF'
|
||
GO
|
||
|
||
-- =============================================
|
||
-- Author: DD MS
|
||
-- Changed: 09.06.2022 MS ADDED ZOOFLOW
|
||
-- Changed: 11.05.2022 MS ADDED PM
|
||
-- Changed: 13.08.2020 MS ADDED Zooflow
|
||
-- =============================================
|
||
ALTER FUNCTION [dbo].[FNZF_GET_MODULE_INFO] (@pUSERNAME VARCHAR(100))
|
||
RETURNS @Table TABLE
|
||
(SequentialOrder INT IDENTITY(1, 1),
|
||
[TYPE] VARCHAR(50),
|
||
[NAME] VARCHAR(50),
|
||
[VALUE] VARCHAR(512))
|
||
AS
|
||
BEGIN
|
||
/*
|
||
This function checks all user-relevant relations an
|
||
*/
|
||
DECLARE
|
||
@RESULT VARCHAR(500),
|
||
@USER_ID INTEGER,
|
||
@USER_PRENAME VARCHAR(50),
|
||
@USER_SURNAME VARCHAR(50),
|
||
@USER_SHORTNAME VARCHAR(50),
|
||
@USER_EMAIL VARCHAR(50),
|
||
@USER_LANGUAGE VARCHAR(10),
|
||
@USER_DATE_FORMAT VARCHAR(10),
|
||
@USER_ECM_ID INTEGER,
|
||
@IS_IN_MODULE VARCHAR(5),
|
||
@IS_ADMIN VARCHAR(5),
|
||
@USER_RIGHT_FILE_DEL BIT,
|
||
@USERCOUNT_LOGGED_IN INTEGER,
|
||
@MODULE_NAME VARCHAR(100),
|
||
@MODULE_GUID INTEGER,
|
||
@USER_GROUPNAME_CW VARCHAR(100),
|
||
@ADMIN_GROUPNAME_GLOBIX VARCHAR(100),
|
||
@USER_GROUPNAME_GLOBIX VARCHAR(100),
|
||
@ADMIN_GROUPNAME_PM VARCHAR(100),
|
||
@USER_GROUPNAME_PM VARCHAR(100),
|
||
@ADMIN_GROUPNAME_CW VARCHAR(100),
|
||
@USER_GROUPNAME_ZF VARCHAR(100),
|
||
@ADMIN_GROUPNAME_ZF VARCHAR(100)
|
||
|
||
SET @USER_ID = 0
|
||
SET @IS_ADMIN = 'False'
|
||
SET @IS_IN_MODULE = 'False'
|
||
SET @USERCOUNT_LOGGED_IN = 0
|
||
SET @RESULT = ''
|
||
|
||
SET @USER_GROUPNAME_CW = 'CW_USER'
|
||
SET @ADMIN_GROUPNAME_CW = 'CW_ADMINS'
|
||
SET @USER_GROUPNAME_GLOBIX = 'GLOBIX_USER'
|
||
SET @ADMIN_GROUPNAME_GLOBIX = 'GLOBIX_ADMINS'
|
||
SET @USER_GROUPNAME_PM = 'PM_USER'
|
||
SET @ADMIN_GROUPNAME_PM = 'PM_ADMINS'
|
||
SET @USER_GROUPNAME_ZF = 'ZOOFLOW_USER'
|
||
SET @ADMIN_GROUPNAME_ZF = 'ZOOFLOW_ADMINS'
|
||
|
||
|
||
IF NOT EXISTS(SELECT GUID FROM TBDD_USER WHERE UPPER(USERNAME) = UPPER(@pUSERNAME))
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('USER', 'ERROR','USER NOT CONFIGURED OR LISTED')
|
||
ELSE
|
||
BEGIN
|
||
SELECT @USER_ID = GUID, @USER_ECM_ID = USERID_FK_INT_ECM, @USER_PRENAME = PRENAME,
|
||
@USER_SURNAME = NAME, @USER_SHORTNAME = SHORTNAME,@USER_EMAIL = EMAIL,@USER_LANGUAGE = LANGUAGE,@USER_DATE_FORMAT = DATE_FORMAT FROM TBDD_USER WHERE UPPER(USERNAME) = UPPER(@pUSERNAME)
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('USER', 'USER_ID',@USER_ID);
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('USER', 'USER_PRENAME',@USER_PRENAME);
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('USER', 'USER_SURNAME',@USER_SURNAME);
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('USER', 'USER_SHORTNAME',@USER_SHORTNAME);
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('USER', 'USER_EMAIL',@USER_EMAIL);
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('USER', 'USER_DATE_FORMAT',@USER_DATE_FORMAT);
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('USER', 'USER_LANGUAGE',@USER_LANGUAGE);
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('USER', 'USER_ECM_ID',@USER_ECM_ID);
|
||
|
||
/*#### ClipboardWatcher ####*/
|
||
SELECT @MODULE_GUID = GUID, @MODULE_NAME = NAME FROM TBDD_MODULES WHERE SHORT_NAME = 'CW'
|
||
SELECT @USERCOUNT_LOGGED_IN = COUNT(*) FROM TBDD_USER_MODULE_LOG_IN WHERE UPPER(MODULE) = UPPER(@MODULE_NAME) AND CLIENT_ID = 1
|
||
--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_CW)
|
||
BEGIN
|
||
SET @IS_IN_MODULE = 'True'
|
||
SET @RESULT = 'User is part of Group (' + @USER_GROUPNAME_CW + ')'
|
||
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'
|
||
select @IS_ADMIN = CONVERT(VARCHAR(5),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 not part of group (' + @USER_GROUPNAME_CW + ')'
|
||
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'
|
||
SET @IS_IN_MODULE = 'True'
|
||
select @IS_ADMIN = CONVERT(VARCHAR(5),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
|
||
|
||
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_CW)
|
||
BEGIN
|
||
SET @RESULT = @RESULT + '| User is part of group (' + @ADMIN_GROUPNAME_CW + ')'
|
||
SET @IS_ADMIN = 'True'
|
||
SET @IS_IN_MODULE = 'True'
|
||
END
|
||
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('CW', 'MODULE_ACCESS',@IS_IN_MODULE);
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('CW', 'IS_ADMIN',@IS_ADMIN);
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('CW', 'USER_COUNT_LOGGED_IN',@USERCOUNT_LOGGED_IN);
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('CW', 'RESULT',@RESULT);
|
||
|
||
/*#### GLOBIX ####*/
|
||
SET @RESULT = ''
|
||
SELECT @MODULE_GUID = GUID, @MODULE_NAME = NAME FROM TBDD_MODULES WHERE SHORT_NAME = 'GLOBIX'
|
||
SELECT @USERCOUNT_LOGGED_IN = COUNT(*) FROM TBDD_USER_MODULE_LOG_IN WHERE UPPER(MODULE) = UPPER(@MODULE_NAME) AND CLIENT_ID = 1
|
||
--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_GLOBIX)
|
||
BEGIN
|
||
SET @IS_IN_MODULE = 'True'
|
||
SET @RESULT = 'User is part of Group (' + @USER_GROUPNAME_GLOBIX + ')'
|
||
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'
|
||
SET @IS_IN_MODULE = 'True'
|
||
select @IS_ADMIN = CONVERT(VARCHAR(5),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 not part of group (' + @USER_GROUPNAME_GLOBIX + ')'
|
||
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'
|
||
SET @IS_IN_MODULE = 'True'
|
||
select @IS_ADMIN = CONVERT(VARCHAR(5),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
|
||
|
||
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_GLOBIX)
|
||
BEGIN
|
||
SET @RESULT = @RESULT + '| User is part of group (' + @ADMIN_GROUPNAME_GLOBIX + ')'
|
||
SET @IS_ADMIN = 'True'
|
||
SET @IS_IN_MODULE = 'True'
|
||
END
|
||
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('GLOBIX', 'MODULE_ACCESS',@IS_IN_MODULE);
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('GLOBIX', 'IS_ADMIN',@IS_ADMIN);
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('GLOBIX', 'USER_COUNT_LOGGED_IN',@USERCOUNT_LOGGED_IN);
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('GLOBIX', 'RESULT',@RESULT);
|
||
|
||
|
||
/*#### PM ####*/
|
||
SET @RESULT = ''
|
||
SELECT @MODULE_GUID = GUID, @MODULE_NAME = NAME FROM TBDD_MODULES WHERE SHORT_NAME = 'PM'
|
||
SELECT @USERCOUNT_LOGGED_IN = COUNT(*) FROM TBDD_USER_MODULE_LOG_IN WHERE UPPER(MODULE) = UPPER(@MODULE_NAME) AND CLIENT_ID = 1
|
||
--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_PM)
|
||
BEGIN
|
||
SET @IS_IN_MODULE = 'True'
|
||
SET @RESULT = 'User is part of Group (' + @USER_GROUPNAME_PM + ')'
|
||
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'
|
||
SET @IS_IN_MODULE = 'True'
|
||
select @IS_ADMIN = CONVERT(VARCHAR(5),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 not part of group (' + @USER_GROUPNAME_PM + ')'
|
||
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'
|
||
SET @IS_IN_MODULE = 'True'
|
||
select @IS_ADMIN = CONVERT(VARCHAR(5),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
|
||
|
||
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_PM)
|
||
BEGIN
|
||
SET @RESULT = @RESULT + '| User is part of group (' + @ADMIN_GROUPNAME_PM + ')'
|
||
SET @IS_ADMIN = 'True'
|
||
SET @IS_IN_MODULE = 'True'
|
||
END
|
||
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('PM', 'MODULE_ACCESS',@IS_IN_MODULE);
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('PM', 'IS_ADMIN',@IS_ADMIN);
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('PM', 'USER_COUNT_LOGGED_IN',@USERCOUNT_LOGGED_IN);
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('PM', 'RESULT',@RESULT);
|
||
/*#### ZOOFLOW ####*/
|
||
SET @RESULT = ''
|
||
SELECT @MODULE_GUID = GUID, @MODULE_NAME = NAME FROM TBDD_MODULES WHERE NAME = 'ZooFlow'
|
||
SELECT @USERCOUNT_LOGGED_IN = COUNT(*) FROM TBDD_USER_MODULE_LOG_IN WHERE MODULE = @MODULE_NAME AND CLIENT_ID = 1
|
||
--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_ZF)
|
||
BEGIN
|
||
SET @IS_IN_MODULE = 'True'
|
||
SET @RESULT = 'User is part of Group (' + @USER_GROUPNAME_PM + ')'
|
||
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'
|
||
SET @IS_IN_MODULE = 'True'
|
||
select @IS_ADMIN = CONVERT(VARCHAR(5),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 NOT part of group (' + @USER_GROUPNAME_ZF + ')'
|
||
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_ZF)
|
||
BEGIN
|
||
SET @RESULT = @RESULT + '| User is part of group (' + @ADMIN_GROUPNAME_ZF + ')'
|
||
SET @IS_ADMIN = 'True'
|
||
SET @IS_IN_MODULE = 'True'
|
||
END
|
||
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('ZOOFLOW', 'MODULE_ACCESS',@IS_IN_MODULE);
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('ZOOFLOW', 'IS_ADMIN',@IS_ADMIN);
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('ZOOFLOW', 'USER_COUNT_LOGGED_IN',@USERCOUNT_LOGGED_IN);
|
||
INSERT INTO @Table (TYPE,NAME,VALUE) VALUES ('ZOOFLOW', 'RESULT',@RESULT);
|
||
END
|
||
RETURN
|
||
END
|
||
GO
|
||
|
||
|