160 lines
7.2 KiB
VB.net
160 lines
7.2 KiB
VB.net
Imports DD_Rights
|
|
Imports System.ComponentModel
|
|
|
|
Public Class frmUsersReworkRights
|
|
Private _error As Boolean = False
|
|
Private Sub frmCheckRightsEntity_Load(sender As Object, e As EventArgs) Handles Me.Load
|
|
'lblstate.Visible = False
|
|
Refresh_Users()
|
|
End Sub
|
|
Sub Refresh_Users()
|
|
Try
|
|
Dim Sql = String.Format("SELECT * FROM TBDD_USER WHERE MODULE_RECORD_ORG = 1 ORDER By USERNAME")
|
|
Dim DT_USER = ClassDatabase.Return_Datatable(Sql)
|
|
Try
|
|
MyDataset.TBAD_Users.Clear()
|
|
|
|
For Each row As DataRow In DT_USER.Rows
|
|
Dim newUserRow As MyDataset.TBAD_UsersRow
|
|
newUserRow = MyDataset.TBAD_Users.NewTBAD_UsersRow
|
|
newUserRow.Username = row.Item("USERNAME")
|
|
newUserRow.Surname = row.Item("NAME")
|
|
newUserRow.Prename = row.Item("PRENAME")
|
|
Try
|
|
newUserRow.Email = row.Item("EMAIL")
|
|
Catch ex As Exception
|
|
newUserRow.Email = ""
|
|
End Try
|
|
|
|
newUserRow.ID = row.Item("GUID")
|
|
MyDataset.TBAD_Users.Rows.Add(newUserRow)
|
|
' chklbxUserForGroup.Items.Add(New MyListBoxItem() With {.Text = row.Item(1), .ExtraData = row.Item(0)})
|
|
Next
|
|
Catch ex As Exception
|
|
MsgBox("Error Load_Users for menues:" & vbNewLine & ex.Message)
|
|
End Try
|
|
Catch ex As Exception
|
|
MsgBox("Unexpected error in load Users List: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub btnCheckRights_Click(sender As Object, e As EventArgs) Handles btnCheckRights.Click
|
|
Dim Count As Integer
|
|
For Each row As DataRow In MyDataset.TBAD_Users.Rows
|
|
If row.Item(0) = CBool(True) Then
|
|
Count += 1
|
|
End If
|
|
Next
|
|
|
|
If Count > 0 Then
|
|
Try
|
|
Me.Cursor = Cursors.WaitCursor
|
|
|
|
|
|
|
|
''BackgroundWorker erstellen ...
|
|
BW_RightsEntity = New BackgroundWorker
|
|
BW_RightsEntity.WorkerReportsProgress = True
|
|
'ProgressBar1.Maximum = Count + 1
|
|
'lblstate.Visible = True
|
|
'lblstate.Text = "Background Worker started...."
|
|
ProgressPanel1.Description = "Preparing Right-Collector...."
|
|
' Me.ProgressBar1.Visible = True
|
|
ProgressPanel1.Visible = True
|
|
btnCheckRights.Enabled = False
|
|
btncancel.Visible = True
|
|
System.Threading.Thread.Sleep(500)
|
|
Application.DoEvents()
|
|
DO_Work()
|
|
BW_RightsEntity_RunWorkerCompleted()
|
|
'AddHandler BW_RightsEntity.DoWork, AddressOf bw_DoWork
|
|
'BW_RightsEntity.ReportProgress(1)
|
|
'.. und starten
|
|
'BW_RightsEntity.RunWorkerAsync()
|
|
Catch ex As Exception
|
|
MsgBox("Unexpected error in starting backgroundworker: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
'Me.ProgressBar1.Visible = False
|
|
End Try
|
|
End If
|
|
Me.Cursor = Cursors.Default
|
|
|
|
End Sub
|
|
|
|
Private Sub BW_RightsEntity_ProgressChanged(sender As Object, e As ProgressChangedEventArgs) Handles BW_RightsEntity.ProgressChanged
|
|
'Me.ProgressBar1.Value = e.ProgressPercentage
|
|
ProgressPanel1.Description = "Collecting rights for user...."
|
|
End Sub
|
|
Private Sub bw_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs)
|
|
Dim worker As BackgroundWorker = CType(sender, BackgroundWorker)
|
|
_error = False
|
|
Dim i As Integer = 1
|
|
For Each row As DataRow In MyDataset.TBAD_Users.Rows
|
|
If row.Item(0) = CBool(True) Then
|
|
' ProgressPanel1.Description = "Collecting rights for user: " & row.Item("USERNAME")
|
|
Dim sql = String.Format("DECLARE @return_value int " & vbNewLine & _
|
|
"EXEC @return_value = [dbo].[PRPMO_RIGHTS_SERVICE_CHECK_USER] @USER_ID = {0}, @pCHECK_WHO = {1} " & vbNewLine & _
|
|
"SELECT 'Return Value' = @return_value", row.Item(5), Environment.UserName)
|
|
Me.Cursor = Cursors.WaitCursor
|
|
Dim DT As DataTable = ClassDatabase.Return_Datatable(sql)
|
|
If Not IsNothing(DT) Then
|
|
Dim result = DT.Rows(0).Item(0)
|
|
If result <> 0 Then
|
|
MsgBox("Unexpected Error in Executing rightprocedure - Check the log!", MsgBoxStyle.Critical)
|
|
_error = True
|
|
BW_RightsEntity.ReportProgress(+1)
|
|
Exit For
|
|
Else
|
|
Dim del = String.Format("DELETE FROM TBPMO_USER_RIGHTS_JOBS WHERE USER_ID = {0}", row.Item(5))
|
|
ClassDatabase.Execute_non_Query(del)
|
|
End If
|
|
End If
|
|
|
|
End If
|
|
BW_RightsEntity.ReportProgress(+1)
|
|
Next
|
|
End Sub
|
|
Sub DO_Work()
|
|
|
|
For Each row As DataRow In MyDataset.TBAD_Users.Rows
|
|
If row.Item(0) = CBool(True) Then
|
|
ProgressPanel1.Description = "Collecting rights for user...." & row.Item("USERNAME")
|
|
Application.DoEvents()
|
|
' ProgressPanel1.Description = "Collecting rights for user: " & row.Item("USERNAME")
|
|
Dim proc = String.Format("EXEC PRPMO_RIGHTS_SERVICE_CHECK_USER {0}, '{1}'", row.Item(5), Environment.UserName)
|
|
If ClassDatabase.Execute_non_Query(proc, False, 240) = False Then
|
|
MsgBox("Unexpected Error in Executing rightprocedure - Check the log!", MsgBoxStyle.Critical)
|
|
_error = True
|
|
Exit For
|
|
Else
|
|
Dim del = String.Format("DELETE FROM TBPMO_USER_RIGHTS_JOBS WHERE USER_ID = {0}", row.Item(5))
|
|
ClassDatabase.Execute_non_Query(del)
|
|
End If
|
|
End If
|
|
Next
|
|
End Sub
|
|
Private Sub btncancel_Click(sender As Object, e As EventArgs) Handles btncancel.Click
|
|
' Cancel the asynchronous operation.
|
|
Me.BW_RightsEntity.CancelAsync()
|
|
End Sub
|
|
|
|
Private Sub BW_RightsEntity_RunWorkerCompleted() '(sender As Object, e As RunWorkerCompletedEventArgs) 'Handles BW_RightsEntity.RunWorkerCompleted
|
|
Try
|
|
btncancel.Visible = False
|
|
'ProgressBar1.Visible = False
|
|
'lblstate.Visible = False
|
|
btnCheckRights.Enabled = True
|
|
btncancel.Visible = False
|
|
ProgressPanel1.Visible = False
|
|
If _error = False Then
|
|
MsgBox("All rights of files belonging to User were checked and transmitted to the server!" & vbNewLine & "The setting of the rights might take up to 10 minutes!", MsgBoxStyle.Information)
|
|
Else
|
|
MsgBox("Some errors occured while checking and transmitting the rights...please check the log!", MsgBoxStyle.Exclamation)
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
btnCheckRights.Enabled = True
|
|
btncancel.Visible = False
|
|
ProgressPanel1.Visible = False
|
|
End Try
|
|
End Sub
|
|
End Class |