RecordOrganizer/app/DD-Record-Organizer/frmRight_Management.vb
2023-05-22 16:55:44 +02:00

303 lines
14 KiB
VB.net

Public Class frmRight_Management
Private Shared _Instance As frmRight_Management = Nothing
Private insert As Boolean = False
Public Shared Function Instance() As frmRight_Management
If _Instance Is Nothing OrElse _Instance.IsDisposed = True Then
_Instance = New frmRight_Management
End If
_Instance.BringToFront()
Return _Instance
End Function
Private Sub Save_User_Rights_Data()
Try
Me.Validate()
'Me.TBPMO_RIGHT_USERBindingSource.EndEdit()
If DD_DMSDataSet.TBPMO_RIGHT_USER.GetChanges() Is Nothing = False Then
'Me.TBPMO_RIGHT_USERDataGridView.CurrentRow.Cells("colADDED_WHO").Value = USER_USERNAME
'Me.TBPMO_RIGHT_USERBindingSource.EndEdit()
'Me.TBPMO_RIGHT_USERTableAdapter.Update(DD_DMSDataSet.TBPMO_RIGHT_USER)
tschangedlabel.Text = "Right User changed - " & Now
tschangedlabel.Visible = True
Else
tschangedlabel.Visible = False
End If
Catch ex As Exception
MsgBox("Error in Save_User_Rights_Data:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub Save_Group_Rights_Data()
Try
Me.Validate()
Me.TBPMO_RIGHT_GROUPBindingSource.EndEdit()
If DD_DMSDataSet.TBPMO_RIGHT_GROUP.GetChanges Is Nothing = False Then
Try
Me.TBPMO_RIGHT_GROUPDataGridView.CurrentRow.Cells("DataGridViewTextBoxColumn6").Value = USER_USERNAME
Catch ex As Exception
End Try
Me.TBPMO_RIGHT_GROUPBindingSource.EndEdit()
Me.TBPMO_RIGHT_GROUPTableAdapter.Update(DD_DMSDataSet.TBPMO_RIGHT_GROUP)
tschangedlabel.Text = "Right Group changed - " & Now
tschangedlabel.Visible = True
Else
tschangedlabel.Visible = False
End If
Catch ex As Exception
MsgBox("Error in Save_Group_Rights_Data:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Sub Load_Datagrid(ByVal _Datagrid As DataGridView, ByVal _settings_String As String)
Try
Dim settings() As String
If My.Settings(_settings_String) <> String.Empty Then
settings = My.Settings(_settings_String).Split("$"c)
For idx As Integer = 0 To _Datagrid.Columns.Count - 1
Dim sv() As String = settings(idx).Split("/"c)
_Datagrid.Columns(idx).DisplayIndex = CInt(sv(0))
_Datagrid.Columns(idx).Width = CInt(sv(1))
Next
End If
Catch ex As Exception
End Try
End Sub
Sub Save_Datagrid(ByVal _Datagrid As DataGridView, ByVal _settings_String As String)
Try
Dim settings As String = String.Empty
For idx As Integer = 0 To _Datagrid.Columns.Count - 1
settings += _Datagrid.Columns(idx).DisplayIndex.ToString()
settings += "/"
settings += _Datagrid.Columns(idx).Width.ToString
settings += "$"
Next
My.Settings(_settings_String) = settings
Catch ex As Exception
My.Settings(_settings_String) = String.Empty
End Try
End Sub
Private Sub frmRight_Management_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
Save_Datagrid(TBPMO_RIGHT_GROUPDataGridView, "TBPMO_RIGHT_GROUPDataGridView")
If LICENSE_PROXY = True And DD_LIB_Standards.clsDatabase.DB_PROXY_INITIALIZED Then
MessageBox.Show("If You changed some data here, be aware that this data needs to be synchronized with Your proxy-data!" & vbNewLine & "The regualar processing-time are 30 minutes", "Attention", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
'Save_Datagrid(TBPMO_RIGHT_USERDataGridView, "TBPMO_RIGHT_USERDataGridView")
End Sub
Private Sub frmGroup_Rights_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: Diese Codezeile lädt Daten in die Tabelle "DD_ECMAdmin.TBDD_GROUPS". Sie können sie bei Bedarf verschieben oder entfernen.
Refresh_Entities()
Try
Me.TBWH_USER_GROUPSTableAdapter.Connection.ConnectionString = MyConnectionString
Me.TBWH_USER_GROUPSTableAdapter.Fill(Me.DD_ECMAdmin.TBWH_USER_GROUPS)
Me.TBDD_USER_GROUPSTableAdapter.Connection.ConnectionString = MyConnectionString
Me.TBDD_USER_GROUPSTableAdapter.Fill(Me.DD_DMSDataSet.TBDD_USER_GROUPS)
Me.TBDD_GROUPSTableAdapter.Connection.ConnectionString = MyConnectionString
Me.TBDD_GROUPSTableAdapter.Fill(Me.DD_ECMAdmin.TBDD_GROUPS)
Me.TBDD_USERTableAdapter.Connection.ConnectionString = MyConnectionString
Me.TBDD_USERTableAdapter.Fill(Me.DD_DMSDataSet.TBDD_USER)
Catch ex As Exception
MsgBox("Error in Loading Form:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
Refresh_Rights_Groups()
Load_Datagrid(TBPMO_RIGHT_GROUPDataGridView, "TBPMO_RIGHT_GROUPDataGridView")
'Load_Datagrid(TBPMO_RIGHT_USERDataGridView, "TBPMO_RIGHT_USERDataGridView")
End Sub
Sub Refresh_Rights_Users(ENTITY_ID As Integer)
Try
USER_RIGHTSTableAdapter.Connection.ConnectionString = MyConnectionString
Me.USER_RIGHTSTableAdapter.Fill(Me.DD_ECMAdmin.USER_RIGHTS, USER_LANGUAGE, ENTITY_ID)
Catch ex As Exception
MsgBox("Error loading users:" & vbNewLine & ex.Message)
End Try
End Sub
Sub Refresh_Rights_Groups()
Try
Me.TBPMO_RIGHT_GROUPTableAdapter.Connection.ConnectionString = MyConnectionString
Me.TBPMO_RIGHT_GROUPTableAdapter.Fill(Me.DD_DMSDataSet.TBPMO_RIGHT_GROUP)
Catch ex As Exception
MsgBox("Error in Refresh_Rights_Groups:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub Refresh_Entities()
Try
Me.TBWH_ENTITIESTableAdapter.Connection.ConnectionString = MyConnectionString
Me.TBWH_ENTITIESTableAdapter.Fill(Me.DD_ECMAdmin.TBWH_ENTITIES, USER_LANGUAGE, 1, USER_GUID)
Catch ex As System.Exception
MsgBox("Error in Refresh_Entities:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub TBPMO_RIGHT_GROUPBindingSource_AddingNew(sender As Object, e As System.ComponentModel.AddingNewEventArgs) Handles TBPMO_RIGHT_GROUPBindingSource.AddingNew
Me.DD_DMSDataSet.TBPMO_RIGHT_GROUP.ADDED_WHOColumn.DefaultValue = USER_USERNAME
End Sub
Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
Save_Group_Rights_Data()
End Sub
Private Sub TBPMO_RIGHT_GROUPBindingSource_CurrentChanged(sender As Object, e As EventArgs) Handles TBPMO_RIGHT_GROUPBindingSource.CurrentChanged
tschangedlabel.Visible = False
End Sub
Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton2.Click
Refresh_Rights_Groups()
End Sub
Private Sub ToolStripButton3_Click(sender As Object, e As EventArgs)
Save_User_Rights_Data()
End Sub
Private Sub ToolStripButton4_Click(sender As Object, e As EventArgs) Handles ToolStripButton4.Click
Refresh_Rights_Users(cmbEntity.SelectedValue)
End Sub
Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TabControl1.SelectedIndexChanged
Select Case TabControl1.SelectedIndex
Case 1
Dim sql = String.Format("select T1.FORM_ID, [dbo].[FNPMO_GETOBJECTCAPTION]('{0}','FORMVIEW_TITLE' + CONVERT(VARCHAR(5), T1.GUID), 1) AS 'FORM_TITLE' FROM TBPMO_FORM_VIEW T1 " & _
"WHERE T1.SCREEN_ID = 1 ORDER BY T1.FORM_TITLE", USER_LANGUAGE)
Dim DT As DataTable = MYDB_ECM.GetDatatable(sql)
If Not IsNothing(DT) Then
cmbEntity.DataSource = DT
cmbEntity.DisplayMember = DT.Columns(1).ColumnName
cmbEntity.ValueMember = DT.Columns(0).ColumnName
End If
Refresh_Free_Users()
Refresh_Rights_Users(cmbEntity.SelectedValue)
End Select
End Sub
Sub Refresh_Free_Users()
Dim Sql = $"SELECT T.* FROM TBDD_USER T INNER JOIN TBDD_USER_MODULES T1 ON T.GUID = T1.USER_ID INNER JOIN TBDD_MODULES T2 ON T1.MODULE_ID = T2.GUID
WHERE T2.SHORT_NAME = 'ADDI' AND T.GUID NOT IN (SELECT USER_ID FROM TBPMO_RIGHT_USER WHERE ENTITY_ID = {cmbEntity.SelectedValue}) ORDER BY USERNAME"
Dim DT_USER = MYDB_ECM.GetDatatable(sql)
Try
DD_ECMAdmin.TBAD_Users.Clear()
For Each row As DataRow In DT_USER.Rows
Dim newUserRow As DD_ECMAdmin.TBAD_UsersRow
newUserRow = DD_ECMAdmin.TBAD_Users.NewTBAD_UsersRow
newUserRow.Username = row.Item("USERNAME")
Try
newUserRow.Surname = row.Item("NAME")
Catch ex As Exception
newUserRow.Surname = ""
End Try
Try
newUserRow.Prename = row.Item("PRENAME")
Catch ex As Exception
newUserRow.Prename = ""
End Try
Try
newUserRow.Email = row.Item("EMAIL")
Catch ex As Exception
newUserRow.Email = ""
End Try
newUserRow.ID = row.Item("GUID")
DD_ECMAdmin.TBAD_Users.Rows.Add(newUserRow)
' chklbxUserForGroup.Items.Add(New MyListBoxItem() With {.Text = row.Item(1), .ExtraData = row.Item(0)})
Next
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Error Refresh_Free_Users:", ex.Message)
End Try
End Sub
Private Sub cmbEntity_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbEntity.SelectedIndexChanged
If cmbEntity.SelectedIndex <> -1 Then
Try
Dim i As Integer = cmbEntity.SelectedValue
Catch ex As Exception
Exit Sub
End Try
Refresh_Free_Users()
Refresh_Rights_Users(cmbEntity.SelectedValue)
End If
End Sub
Private Sub btnAddUser2ConstructorREL_Click(sender As Object, e As EventArgs) Handles btnAddUser2ConstructorREL.Click
Try
Try
Dim i As Integer = cmbEntity.SelectedValue
Catch ex As Exception
Exit Sub
End Try
For Each row As DataRow In DD_ECMAdmin.TBAD_Users.Rows
If row.Item(0) = CBool(True) Then
Dim insert = String.Format("INSERT INTO TBPMO_RIGHT_USER (USER_ID,ENTITY_ID) VALUES ({0},{1})", row.Item(5), cmbEntity.SelectedValue)
If MYDB_ECM.ExecuteNonQuery(insert) = False Then
MsgBox("Could not insert the User-Definition....Check the logfile!", MsgBoxStyle.Exclamation)
End If
End If
Next
For Each row As DataRow In DD_ECMAdmin.TBAD_Users.Rows
row.Item(0) = CBool(False)
Next
Refresh_Free_Users()
Refresh_Rights_Users(cmbEntity.SelectedValue)
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Error while adding user-rights:", ex.Message)
End Try
End Sub
Private Sub btndeleteUserRight_Click(sender As Object, e As EventArgs) Handles btndeleteUserRight.Click
Try
Dim ID = GridView1.GetFocusedRowCellValue(GridView1.Columns("GUID"))
Try
Dim I As Integer = CInt(ID)
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Error while deleting rights:", ex.Message)
Exit Sub
End Try
Dim del = String.Format("DELETE FROM TBPMO_RIGHT_USER WHERE GUID = {0}", ID)
If MYDB_ECM.ExecuteNonQuery(del) = True Then
Refresh_Rights_Users(cmbEntity.SelectedValue)
Refresh_Free_Users()
End If
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected error in deleting rights:", ex.Message)
End Try
End Sub
Private Sub GridView1_CellValueChanged(sender As Object, e As DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs) Handles GridView1.CellValueChanged
Try
GridView1.EndSelection()
Dim column = e.Column.FieldName
Dim ID = GridView1.GetFocusedRowCellValue(GridView1.Columns("GUID"))
Try
Dim I As Integer = CInt(ID)
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Error getting row-ID:", ex.Message)
Exit Sub
End Try
Dim int_bool As Integer
If e.Value.ToString = "True" Then
int_bool = 1
Else
int_bool = 0
End If
Dim upd = String.Format("UPDATE TBPMO_RIGHT_USER SET {0} = {1} WHERE GUID = {2}", column, int_bool, ID)
If MYDB_ECM.ExecuteNonQuery(upd) = False Then
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Could not Update Right-details!")
statelbl.Text = ""
Else
statelbl.Text = "ID: " & ID.ToString & " - '" & e.Column.Caption.ToString & "' updated. - " & Now.ToString
End If
Catch ex As Exception
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error", "Error in grvwGridPos_CellValueChanged: ", ex.Message)
End Try
End Sub
End Class