This commit is contained in:
SchreiberM
2016-08-22 15:22:33 +02:00
parent 98a527c8b8
commit 7a9b460360
16 changed files with 1061 additions and 119 deletions

View File

@@ -8,6 +8,8 @@
Public USER_WAN As Boolean = False
Public DT_WORK_USER_RIGHTS As DataTable
Public DT_SUPERVISOR_ENTITY As DataTable
Public DT_WORK_USER_CONTROL_SUPERVISOR As DataTable
Public SQL_USER_RIGHTS_CHANGED = "SELECT T.GUID,T1.USERNAME + 'Reason: ' + T.COMMENT AS USER_COMMENT FROM TBPMO_USER_RIGHTS_JOBS T, TBDD_USER T1 WHERE T.USER_ID = T1.GUID AND T.WORKED = 0"
Public SQL_USER_RIGHTS_CHANGED = "SELECT T.GUID, T.USER_ID, T.COMMENT + ' - ' + T1.USERNAME AS USER_COMMENT FROM TBPMO_USER_RIGHTS_JOBS T, TBDD_USER T1 WHERE T.USER_ID = T1.GUID AND T.WORKED = 0 AND T.COMMENT IN ('USER DELETED FROM GROUP')"
Public SQL_USER_RIGHTS_SUPERVISOR_ADDED = "SELECT T.GUID, T.USER_ID, T.COMMENT + ' - ' + T1.USERNAME AS USER_COMMENT, T.ENTITY_ID FROM TBPMO_USER_RIGHTS_JOBS T, TBDD_USER T1 WHERE T.USER_ID = T1.GUID AND T.WORKED = 0 AND T.COMMENT IN('SUPERVISOR ADDED','SUPERVISOR DELETED')"
End Module

View File

@@ -78,6 +78,12 @@
</ItemGroup>
<ItemGroup>
<Compile Include="ApplicationEvents.vb" />
<Compile Include="frmSupervisorEntity.Designer.vb">
<DependentUpon>frmSupervisorEntity.vb</DependentUpon>
</Compile>
<Compile Include="frmSupervisorEntity.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmReworkUsers.Designer.vb">
<DependentUpon>frmReworkUsers.vb</DependentUpon>
</Compile>
@@ -115,6 +121,9 @@
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="frmSupervisorEntity.resx">
<DependentUpon>frmSupervisorEntity.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmReworkUsers.resx">
<DependentUpon>frmReworkUsers.vb</DependentUpon>
</EmbeddedResource>

View File

@@ -6,6 +6,7 @@ Public Class frmCheckRightsEntity
Private _error As Boolean = False
Private countfiles As Integer = 0
Private WorkingFiles As Integer = 0
Private CURR_DOCID As Integer
Private ENTITY_ID As Integer
Private Sub frmCheckRightsEntity_Load(sender As Object, e As EventArgs) Handles Me.Load
Try
@@ -23,12 +24,16 @@ Public Class frmCheckRightsEntity
Private Sub btnCheckRights_Click(sender As Object, e As EventArgs) Handles btnCheckRights.Click
If cmbentity.SelectedIndex <> -1 Then
Try
CURR_DOCID = 0
ENTITY_ID = cmbentity.SelectedValue
Me.ProgressBar1.Visible = True
'BackgroundWorker erstellen ...
BW_RightsEntity = New BackgroundWorker
BW_RightsEntity.WorkerReportsProgress = True
DT_FILES = ClassDatabase.Return_Datatable(String.Format("SELECT * FROM VWPMO_WD_DOC_SEARCH where ENTITY_ID = {0}", ENTITY_ID))
BW_RightsEntity.WorkerSupportsCancellation = True
Dim MAX_DOC_ID = ClassDatabase.Execute_Scalar("SELECT DOC_ID FROM TBPMO_KONFIGURATION WHERE GUID = 1", False)
Dim sqlfiles = String.Format("SELECT * FROM VWPMO_WD_DOC_SEARCH where ENTITY_ID = {0} AND DocID > {1} ORDER BY DocID", ENTITY_ID, MAX_DOC_ID)
DT_FILES = ClassDatabase.Return_Datatable(sqlfiles)
If DD_Rights.ClassRights.Init(ENTITY_ID, chklogging.Checked, DT_FILES.Rows.Count) = False Then
MsgBox("Could not init rights management. " & vbNewLine & "Check logfile", MsgBoxStyle.Critical)
Exit Sub
@@ -64,8 +69,9 @@ Public Class frmCheckRightsEntity
e.Cancel = True
Exit For
Else
If DD_Rights.ClassRights.Collect_Users(row.Item("RECORD_ID")) = True Then
If DD_Rights.ClassRights.Collect_Users(row.Item("RECORD_ID"), row.Item("ENTITY_ID")) = True Then
WorkingFiles += 1
CURR_DOCID = row.Item("DocID")
If DD_Rights.ClassRights.File_DeleteAndSetRight(row.Item("DocID"), row.Item("FULL_FILENAME"), True) Then
If DD_Rights.ClassRights.MSG_RESULT <> "" Then
MsgBox("Unexpected Errors in setting rights: " & vbNewLine & DD_Rights.ClassRights.MSG_RESULT, MsgBoxStyle.Exclamation)
@@ -87,6 +93,16 @@ Public Class frmCheckRightsEntity
Private Sub btncancel_Click(sender As Object, e As EventArgs) Handles btncancel.Click
' Cancel the asynchronous operation.
Me.BW_RightsEntity.CancelAsync()
Dim result As MsgBoxResult
result = MessageBox.Show("Would You like to save the DocID for the next run?", "Confirmation:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If result = MsgBoxResult.Yes Then
ClassDatabase.Execute_non_Query("UPDATE TBPMO_KONFIGURATION SET DOC_ID = " & CURR_DOCID & " WHERE GUID = 1", False)
End If
End Sub
Private Sub BW_RightsEntity_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs) Handles BW_RightsEntity.RunWorkerCompleted
@@ -100,6 +116,7 @@ Public Class frmCheckRightsEntity
MsgBox("Some errors occured while checking and setting the rights...please check the log!" & vbNewLine & ">> " & ClassRights.COUNT_FILES.ToString & " files schould be worked." & _
">> " & ClassRights.WORKED_FILES.ToString & " were worked successfully.", MsgBoxStyle.Exclamation)
End If
ClassDatabase.Execute_non_Query("UPDATE TBPMO_KONFIGURATION SET DOC_ID = 0 WHERE GUID = 1", False)
Catch ex As Exception
End Try

View File

@@ -37,9 +37,9 @@ Partial Class frmReworkUsers
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(25, 9)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(147, 16)
Me.Label1.Size = New System.Drawing.Size(141, 16)
Me.Label1.TabIndex = 0
Me.Label1.Text = "Please choose an entity:"
Me.Label1.Text = "Please choose an user:"
'
'cmbUser
'

View File

@@ -19,7 +19,7 @@ Public Class frmReworkUsers
cmbUser.DataSource = Nothing
cmbUser.DataSource = DT_WORK_USER_RIGHTS
cmbUser.ValueMember = DT_WORK_USER_RIGHTS.Columns(0).ColumnName
cmbUser.DisplayMember = DT_WORK_USER_RIGHTS.Columns(1).ColumnName
cmbUser.DisplayMember = DT_WORK_USER_RIGHTS.Columns(2).ColumnName
If DT_WORK_USER_RIGHTS.Rows.Count = 0 Then
MsgBox("No more Users to rework. Form will be closed!", MsgBoxStyle.Information)
Me.Close()
@@ -34,6 +34,19 @@ Public Class frmReworkUsers
If cmbUser.SelectedIndex <> -1 Then
GUID_WORKING = 0
Try
Dim USER_ID As Integer
Dim expression As String
expression = "TYPE_NODE = 0"
Dim foundRowsLevel0() As DataRow
' Use the Select method to find all rows matching the filter.
foundRowsLevel0 = DT_WORK_USER_RIGHTS.Select(expression)
Dim i As Integer
' For each row
For i = 0 To foundRowsLevel0.GetUpperBound(0)
USER_ID = foundRowsLevel0(i)("USER_ID")
Next
ENTITIES_WORKED = 0
Try
ECM_USER_ID = ClassDatabase.Execute_Scalar(String.Format("SELECT USERID_FK_INT_ECM FROM TBDD_USER WHERE GUID = (SELECT USER_ID FROM TBPMO_USER_RIGHTS_JOBS WHERE GUID = {0} )", cmbUser.SelectedValue))
@@ -46,11 +59,20 @@ Public Class frmReworkUsers
Dim sql = String.Format("SELECT ENTITY_ID FROM VWPMO_WD_DOC_SEARCH where DocID in (SELECT [dwObjectID] FROM VWPMO_WD_OBJECT_RIGHTS WHERE dwUserOrGroupID = {0}) GROUP BY ENTITY_ID", ECM_USER_ID)
Dim DT_ENTITY As DataTable = ClassDatabase.Return_Datatable(sql)
COUNT_ENTITIES = DT_ENTITY.Rows.Count
If DT_ENTITY.Rows.Count = 0 Then
MsgBox("No files found for User. Job will be terminated!")
Finish_Job()
Exit Sub
End If
For Each row As DataRow In DT_ENTITY.Rows
CURR_ENTITY = row.Item("ENTITY_ID")
sql = String.Format("SELECT * FROM VWPMO_WD_DOC_SEARCH where DocID in (SELECT [dwObjectID] FROM VWPMO_WD_OBJECT_RIGHTS WHERE dwUserOrGroupID = {0}) AND ENTITY_ID = {1}", ECM_USER_ID, row.Item("ENTITY_ID"))
DT_FILES = ClassDatabase.Return_Datatable(sql)
If DT_FILES.Rows.Count = 0 Then
MsgBox("No files found for User. Job will be terminated!")
Finish_Job()
Exit Sub
End If
If DD_Rights.ClassRights.Init(row.Item("ENTITY_ID"), chklogging.Checked, DT_FILES.Rows.Count) = False Then
MsgBox("Could not init rights management. " & vbNewLine & "Check logfile", MsgBoxStyle.Critical)
Exit Sub
@@ -95,7 +117,7 @@ Public Class frmReworkUsers
e.Cancel = True
Exit For
Else
If DD_Rights.ClassRights.Collect_Users(row.Item("RECORD_ID")) = True Then
If DD_Rights.ClassRights.Collect_Users(row.Item("RECORD_ID"), row.Item("ENTITY_ID")) = True Then
WorkingFiles += 1
If DD_Rights.ClassRights.File_DeleteAndSetRight(row.Item("DocID"), row.Item("FULL_FILENAME"), True) Then
If DD_Rights.ClassRights.MSG_RESULT <> "" Then
@@ -135,13 +157,7 @@ Public Class frmReworkUsers
lblstate.Visible = False
If _error = False Then
If ENTITIES_WORKED = COUNT_ENTITIES Then
Dim upd = String.Format("UPDATE TBPMO_USER_RIGHTS_JOBS SET WORKED = 1, CHANGED_WHO = 'JOB-RIGHTS FINISHER' WHERE GUID = {0}", GUID_WORKING)
If ClassDatabase.Execute_non_Query(upd) = True Then
'Überprüfen ob es User gibt die aktualisiert werden müssen
Dim Sql = SQL_USER_RIGHTS_CHANGED
DT_WORK_USER_RIGHTS = ClassDatabase.Return_Datatable(Sql)
Refresh_Combo()
End If
Finish_Job()
MsgBox("All rights of files belonging to entity/User were checked and refreshed successfully!", MsgBoxStyle.Information)
End If
@@ -151,5 +167,15 @@ Public Class frmReworkUsers
Catch ex As Exception
End Try
End Sub
Private Sub Finish_Job()
Dim upd = String.Format("UPDATE TBPMO_USER_RIGHTS_JOBS SET WORKED = 1, CHANGED_WHO = 'JOB-RIGHTS FINISHER' WHERE GUID = {0}", GUID_WORKING)
If ClassDatabase.Execute_non_Query(upd) = True Then
'Überprüfen ob es User gibt die aktualisiert werden müssen
Dim Sql = SQL_USER_RIGHTS_CHANGED
DT_WORK_USER_RIGHTS = ClassDatabase.Return_Datatable(Sql)
Refresh_Combo()
End If
End Sub
End Class

View File

@@ -25,17 +25,18 @@ Partial Class frmStart
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmStart))
Me.Button1 = New System.Windows.Forms.Button()
Me.btnWorkUserRights = New System.Windows.Forms.Button()
Me.btnWorkUserRightsSV_ADD = New System.Windows.Forms.Button()
Me.Button2 = New System.Windows.Forms.Button()
Me.SuspendLayout()
'
'Button1
'
Me.Button1.Font = New System.Drawing.Font("Tahoma", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Button1.Font = New System.Drawing.Font("Tahoma", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Button1.Location = New System.Drawing.Point(12, 12)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(250, 45)
Me.Button1.Size = New System.Drawing.Size(312, 45)
Me.Button1.TabIndex = 0
Me.Button1.Text = "Check Rights for Entity"
Me.Button1.Text = "Check Rights for documents belonging to entity"
Me.Button1.UseVisualStyleBackColor = True
'
'btnWorkUserRights
@@ -44,11 +45,22 @@ Partial Class frmStart
Me.btnWorkUserRights.ForeColor = System.Drawing.Color.DarkRed
Me.btnWorkUserRights.Location = New System.Drawing.Point(12, 63)
Me.btnWorkUserRights.Name = "btnWorkUserRights"
Me.btnWorkUserRights.Size = New System.Drawing.Size(250, 45)
Me.btnWorkUserRights.Size = New System.Drawing.Size(312, 45)
Me.btnWorkUserRights.TabIndex = 2
Me.btnWorkUserRights.Text = "Work User"
Me.btnWorkUserRights.UseVisualStyleBackColor = True
'
'btnWorkUserRightsSV_ADD
'
Me.btnWorkUserRightsSV_ADD.Font = New System.Drawing.Font("Tahoma", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.btnWorkUserRightsSV_ADD.ForeColor = System.Drawing.Color.DarkRed
Me.btnWorkUserRightsSV_ADD.Location = New System.Drawing.Point(12, 114)
Me.btnWorkUserRightsSV_ADD.Name = "btnWorkUserRightsSV_ADD"
Me.btnWorkUserRightsSV_ADD.Size = New System.Drawing.Size(312, 45)
Me.btnWorkUserRightsSV_ADD.TabIndex = 3
Me.btnWorkUserRightsSV_ADD.Text = "Work User"
Me.btnWorkUserRightsSV_ADD.UseVisualStyleBackColor = True
'
'Button2
'
Me.Button2.Image = Global.RecordOrganizer_RightManager.My.Resources.Resources.folder_Closed_16xSM
@@ -65,7 +77,8 @@ Partial Class frmStart
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(829, 402)
Me.ClientSize = New System.Drawing.Size(829, 173)
Me.Controls.Add(Me.btnWorkUserRightsSV_ADD)
Me.Controls.Add(Me.btnWorkUserRights)
Me.Controls.Add(Me.Button2)
Me.Controls.Add(Me.Button1)
@@ -80,5 +93,6 @@ Partial Class frmStart
Friend WithEvents Button1 As System.Windows.Forms.Button
Friend WithEvents Button2 As System.Windows.Forms.Button
Friend WithEvents btnWorkUserRights As System.Windows.Forms.Button
Friend WithEvents btnWorkUserRightsSV_ADD As System.Windows.Forms.Button
End Class

View File

@@ -82,6 +82,13 @@ Public Class frmStart
Else
btnWorkUserRights.Visible = False
End If
DT_WORK_USER_CONTROL_SUPERVISOR = ClassDatabase.Return_Datatable(SQL_USER_RIGHTS_SUPERVISOR_ADDED)
If DT_WORK_USER_CONTROL_SUPERVISOR.Rows.Count > 0 Then
btnWorkUserRightsSV_ADD.Text = "New Supervisor for Record/Entity added." & vbNewLine & "Amount: " & DT_WORK_USER_CONTROL_SUPERVISOR.Rows.Count.ToString
btnWorkUserRightsSV_ADD.Visible = True
Else
btnWorkUserRightsSV_ADD.Visible = False
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' Me.Visible = False
@@ -97,4 +104,9 @@ Public Class frmStart
frmReworkUsers.ShowDialog()
Check_USER_REWORK()
End Sub
Private Sub btnWorkUserRightsSV_ADD_Click(sender As Object, e As EventArgs) Handles btnWorkUserRightsSV_ADD.Click
frmSupervisorEntity.ShowDialog()
Check_USER_REWORK()
End Sub
End Class

View File

@@ -0,0 +1,144 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class frmSupervisorEntity
Inherits System.Windows.Forms.Form
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Wird vom Windows Form-Designer benötigt.
Private components As System.ComponentModel.IContainer
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.Label1 = New System.Windows.Forms.Label()
Me.cmbUser = New System.Windows.Forms.ComboBox()
Me.BW_RightsEntity = New System.ComponentModel.BackgroundWorker()
Me.ProgressBar1 = New System.Windows.Forms.ProgressBar()
Me.chklogging = New System.Windows.Forms.CheckBox()
Me.btncancel = New System.Windows.Forms.Button()
Me.btnCheckRights = New System.Windows.Forms.Button()
Me.lblstate = New System.Windows.Forms.Label()
Me.SuspendLayout()
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(25, 9)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(124, 16)
Me.Label1.TabIndex = 0
Me.Label1.Text = "Please choose User:"
'
'cmbUser
'
Me.cmbUser.FormattingEnabled = True
Me.cmbUser.Location = New System.Drawing.Point(28, 29)
Me.cmbUser.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
Me.cmbUser.Name = "cmbUser"
Me.cmbUser.Size = New System.Drawing.Size(335, 24)
Me.cmbUser.TabIndex = 1
'
'BW_RightsEntity
'
'
'ProgressBar1
'
Me.ProgressBar1.Location = New System.Drawing.Point(28, 128)
Me.ProgressBar1.Name = "ProgressBar1"
Me.ProgressBar1.Size = New System.Drawing.Size(335, 31)
Me.ProgressBar1.TabIndex = 3
Me.ProgressBar1.Visible = False
'
'chklogging
'
Me.chklogging.AutoSize = True
Me.chklogging.Checked = True
Me.chklogging.CheckState = System.Windows.Forms.CheckState.Checked
Me.chklogging.Location = New System.Drawing.Point(379, 31)
Me.chklogging.Name = "chklogging"
Me.chklogging.Size = New System.Drawing.Size(113, 20)
Me.chklogging.TabIndex = 5
Me.chklogging.Text = "Log errors only"
Me.chklogging.UseVisualStyleBackColor = True
'
'btncancel
'
Me.btncancel.Image = Global.RecordOrganizer_RightManager.My.Resources.Resources.cancel1
Me.btncancel.ImageAlign = System.Drawing.ContentAlignment.MiddleRight
Me.btncancel.Location = New System.Drawing.Point(369, 128)
Me.btncancel.Name = "btncancel"
Me.btncancel.Size = New System.Drawing.Size(75, 31)
Me.btncancel.TabIndex = 4
Me.btncancel.Text = "Cancel"
Me.btncancel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
Me.btncancel.UseVisualStyleBackColor = True
Me.btncancel.Visible = False
'
'btnCheckRights
'
Me.btnCheckRights.Image = Global.RecordOrganizer_RightManager.My.Resources.Resources._112_RightArrowShort_Blue_24x24_72
Me.btnCheckRights.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
Me.btnCheckRights.Location = New System.Drawing.Point(28, 60)
Me.btnCheckRights.Name = "btnCheckRights"
Me.btnCheckRights.Size = New System.Drawing.Size(335, 39)
Me.btnCheckRights.TabIndex = 2
Me.btnCheckRights.Text = "Check rights for all documents related to this user"
Me.btnCheckRights.TextAlign = System.Drawing.ContentAlignment.MiddleRight
Me.btnCheckRights.UseVisualStyleBackColor = True
'
'lblstate
'
Me.lblstate.AutoSize = True
Me.lblstate.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.lblstate.Location = New System.Drawing.Point(25, 112)
Me.lblstate.Name = "lblstate"
Me.lblstate.Size = New System.Drawing.Size(38, 13)
Me.lblstate.TabIndex = 7
Me.lblstate.Text = "Label2"
'
'frmSupervisorEntity
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 16.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(503, 169)
Me.Controls.Add(Me.lblstate)
Me.Controls.Add(Me.chklogging)
Me.Controls.Add(Me.btncancel)
Me.Controls.Add(Me.ProgressBar1)
Me.Controls.Add(Me.btnCheckRights)
Me.Controls.Add(Me.cmbUser)
Me.Controls.Add(Me.Label1)
Me.Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
Me.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.Name = "frmSupervisorEntity"
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Changing Rights for Entity-Supervisor"
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents cmbUser As System.Windows.Forms.ComboBox
Friend WithEvents btnCheckRights As System.Windows.Forms.Button
Friend WithEvents BW_RightsEntity As System.ComponentModel.BackgroundWorker
Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar
Friend WithEvents btncancel As System.Windows.Forms.Button
Friend WithEvents chklogging As System.Windows.Forms.CheckBox
Friend WithEvents lblstate As System.Windows.Forms.Label
End Class

View File

@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="BW_RightsEntity.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@@ -0,0 +1,193 @@
Imports DD_Rights
Imports System.ComponentModel
Public Class frmSupervisorEntity
Private DT_FILES As DataTable
Private _error As Boolean = False
Private GUID_WORKING As Integer = 0
Private CURR_ENTITY As Integer = 0
Private countfiles As Integer = 0
Private WorkingFiles As Integer = 0
Private TYPE As String
Private USER_ID As Integer
Private Sub frmCheckRightsEntity_Load(sender As Object, e As EventArgs) Handles Me.Load
lblstate.Visible = False
Refresh_Combo()
End Sub
Sub Refresh_Combo()
Try
cmbUser.DataSource = Nothing
cmbUser.DataSource = DT_WORK_USER_CONTROL_SUPERVISOR
cmbUser.ValueMember = DT_WORK_USER_CONTROL_SUPERVISOR.Columns(0).ColumnName
cmbUser.DisplayMember = DT_WORK_USER_CONTROL_SUPERVISOR.Columns(2).ColumnName
If DT_WORK_USER_CONTROL_SUPERVISOR.Rows.Count = 0 Then
MsgBox("No more Users to rework. Form will be closed!", MsgBoxStyle.Information)
Me.Close()
End If
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 ECM_USER_ID As Integer
If cmbUser.SelectedIndex <> -1 Then
GUID_WORKING = 0
Try
If cmbUser.Text.Contains("SUPERVISOR DELETED") Then
TYPE = "SUPERVISOR DELETED"
ElseIf cmbUser.Text.Contains("SUPERVISOR DELETED") Then
TYPE = "SUPERVISOR ADDED"
Else
TYPE = ""
End If
USER_ID = 0
Dim expression As String
expression = "GUID = " & cmbUser.SelectedValue
Dim foundRowsLevel0() As DataRow
' Use the Select method to find all rows matching the filter.
foundRowsLevel0 = DT_WORK_USER_CONTROL_SUPERVISOR.Select(expression)
Dim i As Integer
Dim NODE_CONFIG_ID
' For each row
For i = 0 To foundRowsLevel0.GetUpperBound(0)
USER_ID = foundRowsLevel0(i)("USER_ID")
CURR_ENTITY = foundRowsLevel0(i)("ENTITY_ID")
Next
Try
ECM_USER_ID = ClassDatabase.Execute_Scalar(String.Format("SELECT USERID_FK_INT_ECM FROM TBDD_USER WHERE GUID = (SELECT USER_ID FROM TBPMO_USER_RIGHTS_JOBS WHERE GUID = {0} )", cmbUser.SelectedValue))
Catch ex As Exception
MsgBox("No User ECM-ID found for selected User. Please inform Digital Data.", MsgBoxStyle.Exclamation)
Exit Sub
End Try
'Dim sql = String.Format("SELECT ENTITY_ID FROM VWPMO_WD_DOC_SEARCH where DocID in (SELECT [dwObjectID] FROM VWPMO_WD_OBJECT_RIGHTS WHERE dwUserOrGroupID = {0}) GROUP BY ENTITY_ID", ECM_USER_ID)
'Dim DT_ENTITY As DataTable = ClassDatabase.Return_Datatable(sql)
'If DT_ENTITY.Rows.Count = 0 Then
' MsgBox("No files found for User. Job will be terminated!")
' Finish_Job()
' Exit Sub
'End If
Dim sql = String.Format("SELECT * FROM VWPMO_WD_DOC_SEARCH where DocID in (SELECT [dwObjectID] FROM VWPMO_WD_OBJECT_RIGHTS WHERE dwUserOrGroupID = {0}) AND ENTITY_ID = {1}", ECM_USER_ID, CURR_ENTITY)
DT_FILES = ClassDatabase.Return_Datatable(sql)
If DT_FILES.Rows.Count = 0 Then
MsgBox("No files found for User. Job will be terminated!")
Finish_Job()
Exit Sub
End If
If DD_Rights.ClassRights.Init(CURR_ENTITY, chklogging.Checked, DT_FILES.Rows.Count) = False Then
MsgBox("Could not init rights management. " & vbNewLine & "Check logfile", MsgBoxStyle.Critical)
Exit Sub
End If
'BackgroundWorker erstellen ...
BW_RightsEntity = New BackgroundWorker
BW_RightsEntity.WorkerReportsProgress = True
ProgressBar1.Maximum = DT_FILES.Rows.Count
countfiles = DT_FILES.Rows.Count
WorkingFiles = 0
lblstate.Visible = True
lblstate.Text = "Starting Background Worker...."
Me.ProgressBar1.Visible = True
GUID_WORKING = cmbUser.SelectedValue
AddHandler BW_RightsEntity.DoWork, AddressOf bw_DoWork
'.. 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
End Sub
Private Sub BW_RightsEntity_ProgressChanged(sender As Object, e As ProgressChangedEventArgs) Handles BW_RightsEntity.ProgressChanged
Dim state = "Working on file '" & WorkingFiles.ToString & "' of '" & countfiles.ToString & "'"
lblstate.Text = state
Me.ProgressBar1.Value = e.ProgressPercentage
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
'Jede Datei einzeln verarbeiten
For Each row As DataRow In DT_FILES.Rows
If BW_RightsEntity.CancellationPending = True Then
e.Cancel = True
Exit For
Else
WorkingFiles += 1
Select Case TYPE
Case "SUPERVISOR DELETED"
Dim AD_DOMAIN_USER = CStr(DD_Rights.ClassRights.AD_DOMAIN & "\" & Environment.UserName.ToUpper).ToUpper
If DD_Rights.ClassRights.File_DeleteRemoveRight(row.Item("DocID"), row.Item("FULL_FILENAME"), AD_DOMAIN_USER) Then
If DD_Rights.ClassRights.MSG_RESULT <> "" Then
MsgBox("Unexpected Errors in setting rights: " & vbNewLine & DD_Rights.ClassRights.MSG_RESULT, MsgBoxStyle.Exclamation)
_error = True
Else
If DD_Rights.ClassRights.Collect_MainUsers(row.Item("ENTITY_ID"), USER_ID, row.Item("RECORD_ID")) Then
If ClassRights.DT_USER_RIGHTS.Rows.Count > 0 Then
ClassLogger.Add(">> User owns rights for File/Record - right will be set!", False)
If ClassRights.File_DeleteAndSetRight(row.Item("DocID"), row.Item("FULL_FILENAME"), False) Then
End If
End If
End If
End If
Else
ClassLogger.Add(">> Unexpected Error in ClassRights.File_DeleteRemoveRight. Check Log.")
_error = True
End If
Case "SUPERVISOR ADDED"
MsgBox("Function actually not added!", MsgBoxStyle.Information)
End Select
If BW_RightsEntity.CancellationPending = False And BW_RightsEntity.IsBusy Then
BW_RightsEntity.ReportProgress(i)
End If
i += 1
End If
Next
DD_Rights.ClassRights.Finalize_SettingRights()
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
If _error = False Then
Finish_Job()
MsgBox("All rights of files belonging to entity/User were checked and refreshed successfully!", MsgBoxStyle.Information)
Else
MsgBox("Some errors occured while checking and setting the rights...please check the log!" & vbNewLine & "Current Entity: " & CURR_ENTITY.ToString, MsgBoxStyle.Exclamation)
End If
Catch ex As Exception
End Try
End Sub
Sub Finish_Job()
Dim upd = String.Format("UPDATE TBPMO_USER_RIGHTS_JOBS SET WORKED = 1, CHANGED_WHO = 'JOB-RIGHTS FINISHER' WHERE GUID = {0}", GUID_WORKING)
If ClassDatabase.Execute_non_Query(upd) = True Then
'Überprüfen ob es User gibt die aktualisiert werden müssen
Dim Sql = SQL_USER_RIGHTS_CHANGED
DT_WORK_USER_RIGHTS = ClassDatabase.Return_Datatable(Sql)
Refresh_Combo()
End If
End Sub
End Class