354 lines
30 KiB
Transact-SQL
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

UPDATE TBDD_MODULES SET DB_VERSION = '1.0.1.0' where SHORT_NAME = 'ZF'
GO
USE [DD_ECM]
GO
/****** Object: StoredProcedure [dbo].[PRZF_PM_REFRESH_DISPLAY_JOBS] Script Date: 17.05.2022 16:30:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: DD MS
-- Created: 11.05.2022
-- =============================================
ALTER PROCEDURE [dbo].[PRZF_PM_REFRESH_DISPLAY_JOBS]
AS
BEGIN
DECLARE @USR_ID INT
DECLARE @SQL_INDIVIDUAL NVARCHAR(MAX),@SQL_GROUP NVARCHAR(MAX)
DECLARE @SQL_COMMAND NVARCHAR(MAX)
select @SQL_INDIVIDUAL = SQL_COMMAND From IDB.dbo.TBIDB_COMMON_SQL where TITLE = 'ZF_DISPLAY_PM_JOBS_INDIVIDUAL'
select @SQL_GROUP = SQL_COMMAND From IDB.dbo.TBIDB_COMMON_SQL where TITLE = 'ZF_DISPLAY_PM_JOBS_GROUP'
DECLARE @INDIV_JOB_TITLE VARCHAR(50),@GROUP_JOB_TITLE VARCHAR(50)
SET @INDIV_JOB_TITLE = 'PM_INDIVIDUAL_JOB'
SET @GROUP_JOB_TITLE = 'PM_GROUP_JOB'
DECLARE @CountResults TABLE (CountReturned INT)
DECLARE cursUsersDisplayJobs CURSOR FOR
SELECT GUID FROM DD_ECM.dbo.TBDD_USER WHERE ACTIVE = 1
OPEN cursUsersDisplayJobs
FETCH NEXT FROM cursUsersDisplayJobs INTO @USR_ID
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT '##### WORKING ON USERID: '+ CONVERT(VARCHAR(10),@USR_ID) + ' #######'
DELETE FROM TBZF_USER_DISPLAY_JOBS WHERE USR_ID = @USR_ID;
DELETE FROM @CountResults;
IF LEN(@SQL_INDIVIDUAL) > 0
BEGIN
SET @SQL_COMMAND = @SQL_INDIVIDUAL
DECLARE @COUNT_INDIV INT
SET @SQL_COMMAND = REPLACE(@SQL_COMMAND,'@USR_ID',@USR_ID)
--EXEC @COUNT_INDIV = sp_executesql @SQL_COMMAND, N'@USR_ID INT', @USR_ID = @USR_ID
PRINT @SQL_COMMAND
INSERT @CountResults
EXEC(@SQL_COMMAND)
SET @COUNT_INDIV = (SELECT CountReturned FROM @CountResults)
--SELECT @COUNT_INDIV
IF @COUNT_INDIV > 0
INSERT INTO [dbo].[TBZF_USER_DISPLAY_JOBS]
([USR_ID]
,[JOB_TITLE]
,[DESCR]
,[ADDED_WHO])
VALUES
(@USR_ID
,@INDIV_JOB_TITLE
,@COUNT_INDIV
,'PRZF_PM_REFRESH_DISPLAY_JOBS')
END
DELETE FROM @CountResults;
IF LEN(@SQL_GROUP) > 0
BEGIN
PRINT 'WORKING ON GROUP-SQL...'
SET @SQL_COMMAND = @SQL_GROUP
DECLARE @COUNT_GROUP INT
SET @SQL_COMMAND = REPLACE(@SQL_COMMAND,'@USR_ID',@USR_ID)
--EXEC @COUNT_INDIV = sp_executesql @SQL_COMMAND, N'@USR_ID INT', @USR_ID = @USR_ID
PRINT @SQL_COMMAND
DELETE FROM @CountResults;
INSERT @CountResults
EXEC(@SQL_COMMAND)
SET @COUNT_GROUP = (SELECT CountReturned FROM @CountResults)
--SELECT @COUNT_GROUP
IF @COUNT_GROUP > 0
INSERT INTO [dbo].[TBZF_USER_DISPLAY_JOBS]
([USR_ID]
,[JOB_TITLE]
,[DESCR]
,[ADDED_WHO])
VALUES
(@USR_ID
,@GROUP_JOB_TITLE
,@COUNT_GROUP
,'PRZF_PM_REFRESH_DISPLAY_JOBS')
END
PRINT '################ END USER #########################'
FETCH NEXT FROM cursUsersDisplayJobs INTO @USR_ID
END
CLOSE cursUsersDisplayJobs
DEALLOCATE cursUsersDisplayJobs
END
GO
USE [DD_ECM]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: DD MS
-- 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)
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'
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_GLOBIX)
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);
END
RETURN
END
GO
USE [msdb]
GO
/****** Object: Job [DD_EVERY_MINUTE] Script Date: 11.05.2022 10:28:49 ******/
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
/****** Object: JobCategory [[Uncategorized (Local)]] Script Date: 11.05.2022 10:28:49 ******/
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
END
DECLARE @jobId BINARY(16)
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'DD_EVERY_MINUTE',
@enabled=1,
@notify_level_eventlog=0,
@notify_level_email=0,
@notify_level_netsend=0,
@notify_level_page=0,
@delete_level=0,
@description=N'Es ist keine Beschreibung verfügbar.',
@category_name=N'[Uncategorized (Local)]',
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object: Step [PRZF_PM_REFRESH_DISPLAY_JOBS] Script Date: 11.05.2022 10:28:50 ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'PRZF_PM_REFRESH_DISPLAY_JOBS',
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'EXEC PRZF_PM_REFRESH_DISPLAY_JOBS;
GO',
@database_name=N'DD_ECM',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'Schedule1',
@enabled=1,
@freq_type=8,
@freq_interval=62,
@freq_subday_type=4,
@freq_subday_interval=1,
@freq_relative_interval=0,
@freq_recurrence_factor=1,
@active_start_date=20220511,
@active_end_date=99991231,
@active_start_time=80000,
@active_end_time=170000,
@schedule_uid=N'4b8cb692-c6aa-4c39-a2d6-ea6192b1202d'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:
GO