545 lines
27 KiB
VB.net
545 lines
27 KiB
VB.net
Imports System.IO
|
|
Imports DigitalData.Modules.Base
|
|
Imports DigitalData.Modules.Config
|
|
Imports DigitalData.Modules.Database
|
|
Imports DigitalData.Modules.Logging
|
|
|
|
Public Class ClassInit
|
|
Public Sub New()
|
|
End Sub
|
|
|
|
Public Sub InitLoggerANDConfig()
|
|
Try
|
|
Dim oLocalUserAppDataPath As String = Application.LocalUserAppDataPath
|
|
LOGCONFIG = New LogConfig(LogConfig.PathType.AppData,
|
|
oLocalUserAppDataPath & "\Log", Nothing,
|
|
My.Application.Info.CompanyName,
|
|
My.Application.Info.ProductName)
|
|
LOGGER = LOGCONFIG.GetLogger()
|
|
LOGGER.Info("orgFLOW started")
|
|
|
|
Dim oUserAppDataPath As String = Application.UserAppDataPath
|
|
|
|
Dim oLegacyAppDataPath As String = Application.UserAppDataPath
|
|
Dim oCommonAppDataPath = Application.CommonAppDataPath
|
|
LOGGER.Debug($"oCommonAppDataPath: {oCommonAppDataPath}")
|
|
Dim oStartupPath = Application.StartupPath
|
|
' If AppConfig from Startup Path should be forced, rewrite the common app data path
|
|
If My.Settings.UseAppConfig = True Then
|
|
oCommonAppDataPath = oStartupPath
|
|
LOGGER.Info($"Achtung: Anstatt ComputerConfig wird AppConfig-/Startup-Path ({oCommonAppDataPath}) benutzt! (UseAppConfig in Appdata)")
|
|
End If
|
|
|
|
CONFIG = New ConfigManager(Of ClassConfig)(LOGCONFIG, oUserAppDataPath, oCommonAppDataPath, oStartupPath)
|
|
LOGGER.Debug("Config loaded")
|
|
LOGGER.Debug($"oUserAppDataPath: {oUserAppDataPath}")
|
|
LOGGER.Debug($"oCommonAppDataPath: {oCommonAppDataPath}")
|
|
Try
|
|
If CONFIG.Config.ConnectionString <> String.Empty Then
|
|
LOGGER.Debug("Connection String loaded")
|
|
MyConnectionString = DecryptConnectionString(CONFIG.Config.ConnectionString)
|
|
End If
|
|
Catch ex As Exception
|
|
LOGGER.Error(ex, "Unexpected Error Getting CONFIG.TestMode or CONFIG.ConnectionStringTest")
|
|
End Try
|
|
|
|
Catch ex As Exception
|
|
LOGGER.Error(ex)
|
|
End Try
|
|
End Sub
|
|
Private Shared Function DecryptConnectionString(EncryptedConnectionString As String) As String
|
|
Dim oBuilder As New SqlClient.SqlConnectionStringBuilder With {
|
|
.ConnectionString = EncryptedConnectionString
|
|
}
|
|
|
|
If oBuilder.ConnectionString.Contains("Password=") Then
|
|
Dim oPlaintextPassword As String
|
|
Dim oDecryptor As New ClassEncryption("!35452didalog=")
|
|
|
|
Try
|
|
oPlaintextPassword = oDecryptor.DecryptData(oBuilder.Password)
|
|
Catch ex As Exception
|
|
LOGGER.Error(ex)
|
|
LOGGER.Debug("Password {0} could not be decrypted. Assuming plaintext password.")
|
|
oPlaintextPassword = oBuilder.Password
|
|
End Try
|
|
Return EncryptedConnectionString.Replace(oBuilder.Password, oPlaintextPassword)
|
|
Else
|
|
Return EncryptedConnectionString
|
|
End If
|
|
End Function
|
|
Public Shared Function InitDatabase()
|
|
Try
|
|
'Dim dbResult As Boolean
|
|
|
|
MySettings_Load()
|
|
|
|
If LoadFileExclusion() = False Then
|
|
MsgBox("The Exclude File Structure for files in Folderwatch could not be initialized!", MsgBoxStyle.Information)
|
|
End If
|
|
If CONFIG.Config.ConnectionString <> String.Empty Then
|
|
LOGGER.Debug("Connection String from CONFIG")
|
|
MyConnectionString = DecryptConnectionString(CONFIG.Config.ConnectionString)
|
|
End If
|
|
If MyConnectionString <> String.Empty Then
|
|
MYDB_ECM = New MSSQLServer(LOGCONFIG, MyConnectionString)
|
|
If MYDB_ECM.DBInitialized = False Then
|
|
frmConfig_Basic.ShowDialog()
|
|
End If
|
|
' dbResult = clsDatabase.Init(MyConnectionString)
|
|
Else
|
|
frmConfig_Basic.ShowDialog()
|
|
' dbResult = clsDatabase.Init(MyConnectionString)
|
|
End If
|
|
'If ClassProxy.MyPROXYConnectionString <> String.Empty Then
|
|
' If clsDatabase.Init(ClassProxy.MyPROXYConnectionString, True) = False Then
|
|
' ClassHelper.MSGBOX_Handler("ERROR", "", "Error while Initializing proxyserver - Check logfile")
|
|
' Else
|
|
' Dim csb As New SqlClient.SqlConnectionStringBuilder
|
|
' csb.ConnectionString = ClassProxy.MyPROXYConnectionString
|
|
' ClassHelper.InsertEssential_Log(USER_GUID, "USER-ID", String.Format("Proxy-Server {0} - Database {1} is used", csb.DataSource, csb.InitialCatalog))
|
|
' End If
|
|
'End If
|
|
If Not IsNothing(MYDB_ECM) Then
|
|
If MYDB_ECM.DBInitialized = False Then
|
|
Throw New Exception("Find more information in the logfile.")
|
|
End If
|
|
Else
|
|
Return False
|
|
End If
|
|
|
|
Return True
|
|
Catch ex As Exception
|
|
LOGGER.Error(ex)
|
|
MsgBox("Unexpected Error in Init Database:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
Return False
|
|
End Try
|
|
|
|
End Function
|
|
|
|
Public Sub InitAddons()
|
|
Try
|
|
Dim CurrentDir As String = My.Application.Info.DirectoryPath
|
|
|
|
Dim AddonPath As String = MY_ADDON_PATH ' MYDB_ECM.GetScalarValue(SQL)
|
|
Dim Dev_AddonPath As String = System.IO.Path.GetFullPath(System.IO.Path.Combine(CurrentDir, "..\..\..\..\app"))
|
|
|
|
If AddonPath Is Nothing OrElse AddonPath = "" Then
|
|
' Addon Pfad in der Datenbank ist leer
|
|
Dim path = System.IO.Path.Combine(CurrentDir, "Addons")
|
|
Dim AddonDir As New DirectoryInfo(path)
|
|
|
|
If AddonDir.Exists Then
|
|
AddonPath = path
|
|
Else
|
|
AddonPath = Dev_AddonPath
|
|
End If
|
|
Else
|
|
' Addon Pfad steht in der Datenbank
|
|
Dim path = AddonPath
|
|
Dim AddonDir As New DirectoryInfo(path)
|
|
|
|
If (AddonDir.Exists) Then
|
|
If AddonDir.Name = "Addons" Then
|
|
AddonPath = path
|
|
Else
|
|
AddonPath = Dev_AddonPath
|
|
End If
|
|
Else
|
|
AddonPath = Dev_AddonPath
|
|
End If
|
|
End If
|
|
|
|
MY_ADDON_PATH = AddonPath
|
|
SaveMySettingsValue("PATH_ADDON", MY_ADDON_PATH, "ConfigMain")
|
|
Catch ex As Exception
|
|
LOGGER.Error(ex)
|
|
MsgBox("Unexpected Error in InitAddons:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
End Sub
|
|
|
|
Public Sub InitBasics2()
|
|
Try
|
|
Dim configResult As Boolean
|
|
configResult = Settings_LoadBasicConfig()
|
|
|
|
If configResult = False Then
|
|
Throw New Exception("Find more information in the logfile.")
|
|
End If
|
|
|
|
Dim oSql = String.Format("SELECT * FROM TBPMO_KONFIGURATION WHERE GUID = 1")
|
|
Dim KONFIG_DT As DataTable = MYDB_ECM.GetDatatable(oSql)
|
|
If KONFIG_DT.Rows.Count = 1 Then
|
|
Try
|
|
MY_WIKISTRING = KONFIG_DT.Rows(0).Item("WIKI_STRING")
|
|
|
|
Catch ex As Exception
|
|
MY_WIKISTRING = ""
|
|
End Try
|
|
WD_UNICODE = KONFIG_DT.Rows(0).Item("WD_UNICODE")
|
|
SQL_FULLTEXT = KONFIG_DT.Rows(0).Item("SQL_FULLTEXT")
|
|
WMDriveLetter = KONFIG_DT.Rows(0).Item("WM_LAUFWERKBUCHSTABE")
|
|
WMPATH_PREFIX = KONFIG_DT.Rows(0).Item("WMPATH_PREFIX")
|
|
|
|
|
|
If Not WMPATH_PREFIX.ToUpper.StartsWith(constWMOBJECTS) Then
|
|
SHARE_DRIVE_ACTIVE = True
|
|
LOGGER.Info($"WM SHARE_DRIVE [{WMPATH_PREFIX}] via TBPMO_KONFIGURATION is active")
|
|
End If
|
|
End If
|
|
|
|
oSql = "SELECT * FROM TBDD_SQL_COMMANDS"
|
|
Dim oDTSQL_COMMANDS As DataTable = MYDB_ECM.GetDatatable(oSql)
|
|
For Each oRow As DataRow In oDTSQL_COMMANDS.Rows
|
|
If oRow.Item("TITLE") = "ADDI_DOC_SEARCH_RECORD" Then
|
|
SQL_DOC_RESULT_RECORD = oRow.Item("SQL_COMMAND")
|
|
LOGGER.Debug("SQL_DOC_RESULT_RECORD = " + SQL_DOC_RESULT_RECORD)
|
|
ElseIf oRow.Item("TITLE") = "OF_GLOBAL_SEARCH" Then
|
|
SQL_GLOBAL_SEARCH = oRow.Item("SQL_COMMAND")
|
|
|
|
ElseIf oRow.Item("TITLE") = "OF_NODE_SEARCH" Then
|
|
SQL_OF_NODE_SEARCH = oRow.Item("SQL_COMMAND")
|
|
ElseIf oRow.Item("TITLE") = "LIC_COUNT_NAMED" Then
|
|
SQL_LIC_NAMED_USER = oRow.Item("SQL_COMMAND")
|
|
End If
|
|
|
|
|
|
Next
|
|
Try
|
|
oSql = "SELECT * FROM TBDD_CATALOG"
|
|
Dim oDTTBDD_CATALOG As DataTable = MYDB_ECM.GetDatatable(oSql)
|
|
For Each oRow As DataRow In oDTTBDD_CATALOG.Rows
|
|
If oRow.Item("CAT_TITLE") = "DDSUPPORT_PORTAL" Then
|
|
CONF_SUPPORTPORTAL = oRow.Item("CAT_STRING")
|
|
LOGGER.Debug("CONF_SUPPORTPORTAL = " + CONF_SUPPORTPORTAL)
|
|
ElseIf oRow.Item("CAT_TITLE") = "WM_RWA" Then
|
|
WM_RWA = oRow.Item("CAT_STRING")
|
|
LOGGER.Debug("WM_RWA = " + WM_RWA)
|
|
ElseIf oRow.Item("CAT_TITLE") = "WM_RWA1" Then
|
|
WM_RWA1 = oRow.Item("CAT_STRING")
|
|
LOGGER.Debug("WM_RWA1 = " + WM_RWA1)
|
|
ElseIf oRow.Item("CAT_TITLE") = "WM_RWA2" Then
|
|
WM_RWA2 = oRow.Item("CAT_STRING")
|
|
LOGGER.Debug("WM_RWA2 = " + WM_RWA1)
|
|
End If
|
|
Next
|
|
Catch ex As Exception
|
|
LOGGER.Error(ex)
|
|
End Try
|
|
|
|
oSql = "SELECT * FROM TBPMO_CONTROL"
|
|
CURRENT_TBPMO_CONTROL = MYDB_ECM.GetDatatable(oSql)
|
|
oSql = "SELECT * FROM TBPMO_DOCSEARCH_RESULTLIST_CONFIG WHERE VISIBLE = 1"
|
|
DT_DOCSEARCH_RESULTLIST_CONFIG = MYDB_ECM.GetDatatable(oSql)
|
|
oSql = "SELECT * FROM TBPMO_DOCSEARCH_VARIABLE_CONTROLS"
|
|
CURRENT_VARIABLE_CONTROLS = MYDB_ECM.GetDatatable(oSql)
|
|
oSql = "SELECT * FROM TBPMO_FORM_VIEW"
|
|
CURRENT_TBPMO_FORM_VIEW = MYDB_ECM.GetDatatable(oSql)
|
|
oSql = "select T.*, T1.HEADER_CAPTION,T1.TYPE_ID ,T1.ENTITY_ID,T1.LANGUAGE from TBPMO_DOCRESULT_DROPDOWN_ITEMS T, TBPMO_DOCSEARCH_RESULTLIST_CONFIG T1 WHERE T.CONFIG_ID = T1.GUID"
|
|
CURRENT_TBPMO_DOCRESULT_DROPDOWN_ITEMS = MYDB_ECM.GetDatatable(oSql)
|
|
'clsCURRENT.LOG_ERRORS_ONLY = DEBUG
|
|
|
|
oSql = String.Format("select* from TBPMO_FILE_FORMATS_CHANGE")
|
|
Dim oDTFF_CHANGE As DataTable = MYDB_ECM.GetDatatable(oSql)
|
|
For Each oRow As DataRow In oDTFF_CHANGE.Rows
|
|
FILE_FORMATS_CHANGE_DURING_EDIT.Add(oRow.Item("FILE_EXT"))
|
|
Next
|
|
oSql = "Select Top 1 * from TBPMO_WD_OBJECTTYPE"
|
|
Dim oDTTBPMO_WD_OBJECTTYPE = MYDB_ECM.GetDatatable(oSql)
|
|
If oDTTBPMO_WD_OBJECTTYPE.Rows.Count = 1 Then
|
|
WMOBJECTTYPE = oDTTBPMO_WD_OBJECTTYPE.Rows(0).Item("OBJECT_TYPE").ToString
|
|
WMINDEX_DOCTYPE = oDTTBPMO_WD_OBJECTTYPE.Rows(0).Item("IDXNAME_DOCTYPE").ToString
|
|
WMINDEX_RELATION = oDTTBPMO_WD_OBJECTTYPE.Rows(0).Item("IDXNAME_RELATION").ToString
|
|
End If
|
|
MYGDPICTURE_LICENSE_KEY = MYDB_ECM.GetGDPictureString()
|
|
|
|
FILESYSTEM = New FilesystemEx(LOGCONFIG)
|
|
|
|
|
|
Catch ex As Exception
|
|
LOGGER.Error(ex)
|
|
MsgBox("Unexpected Error in InitBasics2:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Public Shared Sub Init_CONN_SWITCH()
|
|
Try
|
|
Dim sql = String.Format("SELECT T1.GUID, T.DESCRIPTION, T.SQL_CONNECTION, T.SQL_CONNECTION_PROXY, T.WM_ALIAS,T1.ACTIVE FROM " &
|
|
"TBPMO_CLIENT_CONNECTION_SWITCH T, TBPMO_CLIENT_CONN_SWITCH_USER T1 WHERE T.GUID = T1.CONN_SWITCH_ID " &
|
|
"And T.ACTIVE = 1 And T1.USER_ID = {0}", USER_GUID)
|
|
CURRENT_TBPMO_CONN_SWITCH = MYDB_ECM.GetDatatable(sql)
|
|
Catch ex As Exception
|
|
LOGGER.Error(ex)
|
|
LOGGER.Warn("Unexpected Error in Init_CONN_SWITCH: " & ex.Message)
|
|
End Try
|
|
End Sub
|
|
|
|
Public Shared Function InitUserLogin(Optional _User As String = "")
|
|
Try
|
|
Dim oMODULE_ACCES As Boolean = False
|
|
If _User = "" Then
|
|
USER_USERNAME = Environment.UserName
|
|
Else
|
|
USER_USERNAME = _User
|
|
End If
|
|
|
|
Dim oFNSQL = String.Format("SELECT * FROM [dbo].[FNDD_LOGIN_USER_MODULE] ('{0}','ORGFLOW',{1})", USER_USERNAME, CLIENT_SELECTED)
|
|
Dim DT_CHECKUSER_MODULE As DataTable
|
|
LOGGER.Info("Login at: " & Now.ToString)
|
|
LOGGER.Info("Username: " & USER_USERNAME)
|
|
Dim USER_DT As DataTable = MYDB_ECM.GetDatatable(oFNSQL)
|
|
If USER_DT.Rows.Count = 0 Then
|
|
LOGGER.Warn(" - User '" & USER_USERNAME & "' not listed in Useradministration!")
|
|
|
|
Dim msg = String.Format("You are not listed in the Useradministration." & vbNewLine & "Please contact the admin.")
|
|
MsgBox(msg, MsgBoxStyle.Exclamation)
|
|
ClassHelper.InsertEssential_Log(0, "USER-ID", String.Format("User '{0}' not listed in Userconfiguration", USER_USERNAME))
|
|
Return False
|
|
Else
|
|
DTTBPMO_SERVICE_RIGHT_CONFIG = MYDB_ECM.GetDatatable("SELECT * FROM TBPMO_SERVICE_RIGHT_CONFIG WHERE GUID = 1")
|
|
WM_DOMAIN = DTTBPMO_SERVICE_RIGHT_CONFIG.Rows(0).Item("AD_DOMAIN")
|
|
WM_USER = DTTBPMO_SERVICE_RIGHT_CONFIG.Rows(0).Item("AD_USER")
|
|
WM_SERVER = DTTBPMO_SERVICE_RIGHT_CONFIG.Rows(0).Item("AD_SERVER")
|
|
Dim PWplainText As String
|
|
Dim wrapper As New ClassEncryption("!35452didalog=")
|
|
' DecryptData throws if the wrong password is used.
|
|
Try
|
|
PWplainText = wrapper.DecryptData(DTTBPMO_SERVICE_RIGHT_CONFIG.Rows(0).Item("AD_USER_PW"))
|
|
Catch ex As Exception
|
|
LOGGER.Warn("The Userpassword could not be decrypted")
|
|
PWplainText = ""
|
|
End Try
|
|
WM_USER_PW = PWplainText
|
|
|
|
USER_GUID = USER_DT.Rows(0).Item("USER_ID")
|
|
LOGGER.Debug($"USER_GUID: {USER_GUID}")
|
|
Try
|
|
USERID_FK_INT_ECM = USER_DT.Rows(0).Item("USERID_FK_INT_ECM")
|
|
Catch ex As Exception
|
|
LOGGER.Warn("ACHTUNG - Spalte USERID_FK_INT_ECM nicht in FNDD_LOGIN_USER_MODULE enthalten ")
|
|
USERID_FK_INT_ECM = 0
|
|
End Try
|
|
LOGGER.Debug($"USERID_FK_INT_ECM: {USERID_FK_INT_ECM}")
|
|
USER_IS_ADMIN = USER_DT.Rows(0).Item("IS_ADMIN")
|
|
USER_LANGUAGE = USER_DT.Rows(0).Item("USER_LANGUAGE")
|
|
'clsCURRENT.USER_LANGUAGE = USER_LANGUAGE
|
|
USER_DATE_FORMAT = USER_DT.Rows(0).Item("USER_DATE_FORMAT")
|
|
oMODULE_ACCES = USER_DT.Rows(0).Item("MODULE_ACCESS")
|
|
Dim oWORKING_MODE = USER_DT.Rows(0).Item("WORKING_MODE")
|
|
|
|
Dim oSplitWorkMode As String() = oWORKING_MODE.Split("#")
|
|
|
|
' Use For Each loop over words and display them.
|
|
Dim oMode As String
|
|
For Each oMode In oSplitWorkMode
|
|
LOGGER.Debug($"oWorkingMode Parameter: {oMode}")
|
|
|
|
If oMode.StartsWith("WMMODE") Then
|
|
WorkMode_WMMODE = oMode.Replace("WMMODE=", "")
|
|
LOGGER.Debug($"oWorkmode WMMODE = [{WorkMode_WMMODE}]")
|
|
If WorkMode_WMMODE = "READ" Then
|
|
WM_READ_ONLY = True
|
|
LOGGER.Info("WINDREAM IS CONFIGURED READ ONLY FOR USER!")
|
|
ElseIf WorkMode_WMMODE = "ADD" Then
|
|
WM_ADD_NO_DELETE = True
|
|
LOGGER.Info("WINDREAM IS CONFIGURED AS ADD-ONLY FOR USER!")
|
|
End If
|
|
ElseIf oMode.StartsWith("WM_PRAEFIX") Then
|
|
WMPATH_PREFIX = oMode.Replace("WM_PRAEFIX=", "")
|
|
WMPATH_via_WMA = True
|
|
LOGGER.Debug($"oWorkmode WM_PRAEFIX = [{WMPATH_PREFIX}]")
|
|
If Not WMPATH_PREFIX.ToUpper.StartsWith(constWMOBJECTS) Then
|
|
SHARE_DRIVE_ACTIVE = True
|
|
LOGGER.Info($"WM SHARE_DRIVE [{WMPATH_PREFIX}] via WORKING_MODE is active")
|
|
End If
|
|
ElseIf oMode = "WM_USER_LOGIN" Then
|
|
LOGGER.Info($"WM_IMPERSONATE_LOGIN WILL BE SET TO False via WORKING_MODE!")
|
|
WM_IMPERSONATE_LOGIN = False
|
|
Else
|
|
If oMode <> "0" Then
|
|
LOGGER.Info($"Wrong oMode: {oMode}")
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
If SHARE_DRIVE_ACTIVE = True And Len(oWORKING_MODE) = 0 Then
|
|
LOGGER.Info("WINDREAM IS CONFIGURED READ ONLY AS No Workmode was configured and Sharedrive is active!")
|
|
WM_READ_ONLY = True
|
|
End If
|
|
If USER_IS_ADMIN And SHARE_DRIVE_ACTIVE = True Then
|
|
LOGGER.Info($"User configured as an admin, but SHAREDRIVE ACTIVE - So WM_READ_ONLY = False!")
|
|
WM_READ_ONLY = False
|
|
End If
|
|
End If
|
|
|
|
|
|
If oMODULE_ACCES = False Then
|
|
LOGGER.Warn("User '" & USER_USERNAME & "' not authorized for using OrgFlow!")
|
|
'MsgBox("Achtung: Sie sind nicht für die Nutzung dieses Moduls freigeschaltet." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:")
|
|
Dim msg = String.Format("Sie sind nicht für die Nutzung dieses Moduls freigeschaltet." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!")
|
|
|
|
If USER_LANGUAGE <> "de-DE" Then
|
|
msg = String.Format("You are not authorized for using this module." & vbNewLine & "Please contact the admin.")
|
|
End If
|
|
MsgBox(msg, MsgBoxStyle.Exclamation)
|
|
Return False
|
|
End If
|
|
'Me.Close()
|
|
|
|
oFNSQL = String.Format("select * from TBPMO_RIGHT_USER WHERE USER_ID = " & USER_GUID)
|
|
CURRENT_TBPMO_RIGHT_USER = MYDB_ECM.GetDatatable(oFNSQL)
|
|
|
|
|
|
Init_CONN_SWITCH()
|
|
DT_CLIENT_USER = MYDB_ECM.GetDatatable("SELECT T.*, T1.LICENSE_PMO, T1.CLIENT_NAME FROM TBDD_CLIENT_USER T,TBDD_CLIENT T1 WHERE T.CLIENT_ID = T1.GUID AND T.USER_ID = " & USER_GUID)
|
|
If DT_CLIENT_USER.Rows.Count > 1 Then
|
|
frmClientLogin.ShowDialog()
|
|
ElseIf DT_CLIENT_USER.Rows.Count = 1 Then
|
|
CLIENT_SELECTED = DT_CLIENT_USER.Rows(0).Item("CLIENT_ID")
|
|
End If
|
|
If CLIENT_SELECTED = 99 Then
|
|
Dim msg = String.Format("Die Mandantenanmeldung war nicht möglich." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!")
|
|
|
|
If USER_LANGUAGE <> "de-DE" Then
|
|
msg = String.Format("The client-login was not possible." & vbNewLine & "Please contact the admin.")
|
|
End If
|
|
MsgBox(msg, MsgBoxStyle.Exclamation)
|
|
Return False
|
|
End If
|
|
|
|
'Am System anmelden
|
|
ClassLicence.Refresh_Licence(CLIENT_SELECTED)
|
|
'Am System anmelden
|
|
'sql = String.Format("UPDATE TBDD_USER SET LOGGED_IN = 1, LOGGED_WHERE = '{0}' WHERE GUID = {1}", Environment.MachineName, USER_GUID)
|
|
MYDB_ECM.ExecuteNonQuery(oFNSQL)
|
|
oFNSQL = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_GUID & " AND MODULE= 'Record-Organizer'"
|
|
If MYDB_ECM.ExecuteNonQuery(oFNSQL) = True Then
|
|
|
|
End If
|
|
Dim ConStringMain As String
|
|
|
|
ConStringMain = "Main: " & MyConnectionString
|
|
|
|
oFNSQL = String.Format("INSERT INTO TBDD_USER_MODULE_LOG_IN (USER_ID,CLIENT_ID,MODULE,VERSION_CLIENT,MACHINE_NAME,CONNECTION_STRING) VALUES ({0},{1},'Record-Organizer','{2}','{3}','{4}')", USER_GUID, CLIENT_SELECTED, My.Application.Info.Version.ToString, Environment.MachineName, ConStringMain)
|
|
MYDB_ECM.ExecuteNonQuery(oFNSQL)
|
|
|
|
|
|
If USER_IS_ADMIN = True Then
|
|
If ESC_Hidden = True Then
|
|
frmLoginUserSelect.ShowDialog()
|
|
ESC_Hidden = False
|
|
If USER_USERNAME <> "" Then
|
|
InitUserLogin(USER_USERNAME)
|
|
End If
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
|
|
Try
|
|
If WM_READ_ONLY = False Then
|
|
Try
|
|
LOGGER.Debug($"Connecting to windream-Server via DigitalData.Modules.Windream.Windream...")
|
|
If WM_IMPERSONATE_LOGIN = False Then
|
|
WMMOD = New DigitalData.Modules.Windream.Windream(LOGCONFIG, False, WMDriveLetter, WMPATH_PREFIX, True, WM_SERVER, "", "", WM_DOMAIN)
|
|
Else
|
|
WMMOD = New DigitalData.Modules.Windream.Windream(LOGCONFIG, False, WMDriveLetter, WMPATH_PREFIX, True, WM_SERVER, WM_USER, WM_USER_PW, WM_DOMAIN)
|
|
End If
|
|
|
|
If IsNothing(WMMOD) Then
|
|
MsgBox("Could not connect to windream! Check Your configuration", MsgBoxStyle.Exclamation)
|
|
Else
|
|
LOGGER.Debug($"..Successfully connected to Modules.Windream!")
|
|
End If
|
|
Catch ex As Exception
|
|
If IsNothing(WMMOD) Then
|
|
MsgBox($"Could not connect to windream [{WM_SERVER}]! Check Your configuration and inform Your admin!", MsgBoxStyle.Exclamation)
|
|
End If
|
|
LOGGER.Error(ex)
|
|
LOGGER.Warn("Could not create the login for DigitalData.Modules.Windream.Windream! Setting WM_READ_ONLY = True")
|
|
WM_READ_ONLY = True
|
|
End Try
|
|
|
|
If WMMOD.SessionLoggedin = False Then
|
|
LOGGER.Warn("Could not create the login for windream - No session created!")
|
|
ClassHelper.MSGBOX_Handler("ERROR", "windream-login Error:", "Could not create the login/session!", "orgFLOW will start anyway but be aware that searching and importing won't be possible!")
|
|
End If
|
|
End If
|
|
Catch ex As Exception
|
|
LOGGER.Warn("Unexpected Error in WINDREAM MOD.Init: " & ex.Message)
|
|
MsgBox("Unexpected Error in Creating windream-Session: " & ex.Message & vbNewLine & "Please inform Your sysadmin!", MsgBoxStyle.Critical)
|
|
End Try
|
|
|
|
|
|
If SQL_LIC_NAMED_USER <> "" Then
|
|
SQL_LIC_NAMED_USER = SQL_LIC_NAMED_USER.Replace("@MODULE", "Record-Organizer")
|
|
SQL_LIC_NAMED_USER = SQL_LIC_NAMED_USER.Replace("@CLIENT", CLIENT_SELECTED.ToString)
|
|
oFNSQL = SQL_LIC_NAMED_USER
|
|
Else
|
|
oFNSQL = String.Format("SELECT COUNT(*) AS Expr1 FROM TBDD_USER_MODULE_LOG_IN WHERE MODULE = 'Record-Organizer' AND CLIENT_ID = {0}", CLIENT_SELECTED)
|
|
End If
|
|
|
|
Dim anzahl = MYDB_ECM.GetScalarValue(oFNSQL)
|
|
LICENSES_USED = CInt(anzahl)
|
|
LOGGER.Info("NamedUser in TimeSpan#: " & anzahl.ToString)
|
|
LOGGER.Info("LICENSE_COUNT: " & LICENSE_COUNT.ToString)
|
|
'####
|
|
|
|
If LICENSE_COUNT <= (LICENSES_USED) And LICENSE_EXPIRED = False Then
|
|
Dim msg = String.Format("Die Anzahl der aktuell verbrauchten Lizenzen (" & LICENSES_USED.ToString & ") überschreitet die Anzahl der aktuellen Lizenzen!" & vbNewLine & "Anzahl der Lizenzen: " & LICENSE_COUNT.ToString & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!")
|
|
|
|
If USER_LANGUAGE <> "de-DE" Then
|
|
msg = String.Format("The number of USED licenses (" & LICENSES_USED.ToString & ") exceeds the number of licenses." & vbNewLine &
|
|
"Number of licenses: " & LICENSE_COUNT.ToString & vbNewLine & "Please contact Your admin!")
|
|
End If
|
|
MsgBox(msg, MsgBoxStyle.Exclamation)
|
|
LOGGER.Warn("The number of USED licenses (" & LICENSES_USED.ToString & ") exceeds the number of licenses (" & LICENSE_COUNT & ") ")
|
|
If USER_IS_ADMIN = False Then
|
|
'Anmeldung wieder herausnehmen
|
|
oFNSQL = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_GUID & " AND MODULE= 'Record-Organizer'"
|
|
MYDB_ECM.ExecuteNonQuery(oFNSQL)
|
|
LOGGER.Warn(" - logged out the user")
|
|
Return False
|
|
End If
|
|
ElseIf LICENSE_EXPIRED = True Then
|
|
MsgBox("Your license has expired!" & vbNewLine & "Last valid date: " & LICENSE_DATE & vbNewLine & "Please contact your admin!", MsgBoxStyle.Exclamation)
|
|
oFNSQL = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_GUID & " AND MODULE= 'Record-Organizer'"
|
|
MYDB_ECM.ExecuteNonQuery(oFNSQL)
|
|
Return False
|
|
Else
|
|
Try
|
|
'Die FolderWatch starten
|
|
Dim sql1 = "SELECT FOLDER_PATH FROM TBPMO_FOLDERWATCH_USER WHERE FOLDER_TYPE = 'SCAN' AND USER_ID = " & USER_GUID
|
|
Dim folderwatch_SCAN = MYDB_ECM.GetScalarValue(sql1)
|
|
|
|
If Not folderwatch_SCAN Is Nothing Then
|
|
CURRENT_SCAN_FOLDERWATCH = folderwatch_SCAN
|
|
If FWSCAN_started = True Then
|
|
ClassFolderWatcher.StartStop_FolderWatchSCAN()
|
|
End If
|
|
End If
|
|
Catch ex As Exception
|
|
LOGGER.Warn("Unexpected Error in Init_Folderwatch: " & ex.Message, True)
|
|
Return False
|
|
End Try
|
|
|
|
End If
|
|
'If LICENSE_PROXY = True And clsDatabase.DB_PROXY_INITIALIZED Then
|
|
' SQL_FULLTEXT = "SELECT DISTINCT [dwDocID] FROM [dbo].FullText WHERE CONTAINS([Text], '""*@FULLTEXT*""') "
|
|
'End If
|
|
Dim oSQL = $"SELECT COUNT(GU.GUID) FROM TBDD_GROUPS_USER GU INNER JOIN TBDD_GROUPS G ON GU.GROUP_ID = G.GUID WHERE G.NAME = 'ORGFLOW-Supervisor' AND GU.USER_ID = {USER_GUID}"
|
|
USER_IS_SUPERVISOR = MYDB_ECM.GetScalarValue(oSQL)
|
|
Return True
|
|
Catch ex As Exception
|
|
LOGGER.Error(ex)
|
|
LOGGER.Warn("Unexpected Error in InitUserLogin: " & ex.Message)
|
|
MsgBox("Unexpected Error in InitUserLogin: " & ex.Message, MsgBoxStyle.Critical)
|
|
Return False
|
|
End Try
|
|
|
|
End Function
|
|
|
|
End Class
|