187 lines
5.3 KiB
Transact-SQL
Raw Blame History

UPDATE TBDD_BASECONFIG SET DB_VERSION = '1.2'
GO
ALTER TABLE TBDD_CLIENT ADD ACTIVE BIT NOT NULL DEFAULT 0
GO
CREATE VIEW VWDD_USER_CLIENT
AS
SELECT
T1.GUID AS CLIENT_ID
,T1.CLIENT_NAME
,T.USER_ID
,T2.USERNAME
FROM
TBDD_CLIENT_USER T
,TBDD_CLIENT T1
,TBDD_USER T2
WHERE
T1.ACTIVE = 1
AND T.CLIENT_ID = T1.GUID
AND T.USER_ID = T2.GUID
--AND T2.USERNAME = 'SchreiberM'
GO
CREATE FUNCTION [dbo].[FNDD_CHECK_USER_MODULE] (@pUSERNAME VARCHAR(100), @pMODULE_SHORT_NAME VARCHAR(10),@pCLIENTID INTEGER)
RETURNS @Table TABLE
(SequentialOrder INT IDENTITY(1, 1),
USER_ID INTEGER,
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,
USERCOUNT_LOGGED_IN INTEGER,
COMMENT VARCHAR(500))
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),
@IS_IN_MODULE BIT,
@IS_ADMIN BIT,
@USER_RIGHT_FILE_DEL BIT,
@USERCOUNT_LOGGED_IN INTEGER,
@MODULE_NAME VARCHAR(100),
@MODULE_GUID INTEGER,
@USER_GROUPNAME VARCHAR(100),
@ADMIN_GROUPNAME VARCHAR(100)
SET @USER_ID = 0
SET @IS_ADMIN = 0
SET @IS_IN_MODULE = 0
SET @USERCOUNT_LOGGED_IN = 0
SET @RESULT = ''
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
IF NOT EXISTS(SELECT GUID FROM TBDD_USER WHERE UPPER(USERNAME) = UPPER(@pUSERNAME))
BEGIN
SET @RESULT = 'USER NOT CONFIGURED OR LISTED'
END
ELSE
BEGIN
SELECT @USER_ID = GUID,@USER_PRENAME = PRENAME,
@USER_SURNAME = NAME, @USER_SHORTNAME = SHORTNAME,@USER_EMAIL = EMAIL,@USER_LANGUAGE = LANGUAGE FROM TBDD_USER WHERE UPPER(USERNAME) = UPPER(@pUSERNAME)
SELECT @USERCOUNT_LOGGED_IN = COUNT(*) FROM TBDD_USER_MODULE_LOG_IN WHERE UPPER(MODULE) = UPPER(@MODULE_NAME) AND CLIENT_ID = @pCLIENTID
--CHECK USER <20>S 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'
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 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
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
END
INSERT INTO @Table (USER_ID,USER_PRENAME, USER_SURNAME,USER_SHORTNAME,USER_EMAIL,USER_LANGUAGE, USER_RIGHT_FILE_DEL, MODULE_ACCESS,IS_ADMIN,USERCOUNT_LOGGED_IN, COMMENT)
VALUES (@USER_ID,@USER_PRENAME,@USER_SURNAME,@USER_SHORTNAME,@USER_EMAIL,@USER_LANGUAGE,@USER_RIGHT_FILE_DEL,@IS_IN_MODULE,@IS_ADMIN,@USERCOUNT_LOGGED_IN,@RESULT)
RETURN
END
GO
CREATE VIEW VWDD_USER_GROUP_MODULE
AS
select
T1.NAME AS GROUP_NAME,
TU.*
FROM
TBDD_GROUPS_USER T,
TBDD_GROUPS T1,
TBDD_USER TU
WHERE
TU.NAME IS NOT NULL
AND TU.PRENAME IS NOT NULL
AND T1.INTERNAL = 1
AND T.GROUP_ID = T1.GUID
AND T.USER_ID = TU.GUID
--AND T1.NAME IN ('CW_USER','CW_ADMINS')
UNION
SELECT
T2.NAME AS GROUP_MODULE,
TU.*
FROM
TBDD_USER TU,
TBDD_USER_MODULES T1,
TBDD_MODULES T2
WHERE
TU.NAME IS NOT NULL
AND TU.PRENAME IS NOT NULL
AND TU.GUID = T1.USER_ID
AND T1.MODULE_ID = T2.GUID
GO
CREATE VIEW VWDD_USER_MODULE_CW
AS
SELECT
DISTINCT GUID ,
USERNAME,
NAME,
PRENAME,
EMAIL
FROM
VWDD_USER_GROUP_MODULE
WHERE
GROUP_NAME IN ('Clipboard-Watcher','CW_USER','CW_ADMINS')
GO