This commit is contained in:
Digital Data - Marlon Schreiber
2018-02-06 10:28:02 +01:00
parent ef06120f13
commit 17946f1a19
68 changed files with 4065 additions and 3630 deletions

View File

@@ -75,6 +75,7 @@ Public Class ClassWDRights
Try
If LogErrorsOnly = False Then ClassLogger.Add(String.Format(" >> Working on rights for file: {0}", docpath), False)
Dim DT_USER_RIGHT As DataTable
Dim DT_GROUP_RIGHT As DataTable
Dim oSession
Dim oWMObject As WINDREAMLib.WMObject
Dim UserGroupRelation
@@ -91,13 +92,18 @@ Public Class ClassWDRights
If Not IsNothing(oSession) Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Session created.", False)
Dim sql = String.Format("SELECT * FROM [dbo].[FNPMO_GET_RIGHTS_FOR_DOC] ({0})", doc_id)
DT_USER_RIGHT = ClassDatabase.Return_Datatable(sql)
Dim sql = String.Format("SELECT * FROM [dbo].[FNPMO_GET_RIGHTS_FOR_DOC] ({0}) where USER_OR_GROUP = 'USER'", doc_id)
DT_USER_RIGHT = clsDatabase.Return_Datatable(sql)
sql = String.Format("SELECT * FROM [dbo].[FNPMO_GET_RIGHTS_FOR_DOC] ({0}) where USER_OR_GROUP = 'GROUP'", doc_id)
DT_GROUP_RIGHT = clsDatabase.Return_Datatable(sql)
If IsNothing(DT_USER_RIGHT) Then
Dim msg = "Error while receiving rights for DocID"
ClassLogger.Add(msg, True)
clsLogger.Add(msg, True)
Return False
Else
If LogErrorsOnly = False Then clsLogger.Add(String.Format(" >> Amount of Userrights: {0}", DT_USER_RIGHT.Rows.Count), False)
End If
If LogErrorsOnly = False Then clsLogger.Add(String.Format(" >> Amount of Grouprights: {0}", DT_GROUP_RIGHT.Rows.Count), False)
Try
'Object definieren
oWMObject = oSession.GetWMObjectByPath(0, docpath.Substring(2))
@@ -234,6 +240,58 @@ Public Class ClassWDRights
ClassLogger.Add(ex.Message)
End Try
Next
'Für jede Gruppe das Recht einzeln hinzufügen
For Each Group_Row As DataRow In DT_GROUP_RIGHT.Rows
Dim fileright 'Recht als Integer
Dim StringGroupRight
Dim _oGroup
Try
StringGroupRight = AD_DOMAIN & "\" & Group_Row.Item("USR_NAME")
fileright = Group_Row.Item("USR_RIGHT")
If LogErrorsOnly = False Then clsLogger.Add(String.Format(" >> Working on right for group-right: {0}-{1}", StringGroupRight, fileright), False)
Try
' User holen
_oGroup = oSession.GetWMObjectByName(WMEntityGroups, StringGroupRight)
If LogErrorsOnly = False Then clsLogger.Add(" >> got Group...", False)
Catch ex As Exception
Dim msg = String.Format(">> Could not create windream-Usersession for group '{0}' - check whether group exists in windream!", StringGroupRight)
clsLogger.Add(msg, False)
MSG_RESULT &= msg & vbNewLine
Continue For
End Try
If Not IsNothing(_oGroup) Then
Try
AccessRights.Insert2(_oGroup, fileright) 'WMAccessRightAllRights)
If LogErrorsOnly = False Then clsLogger.Add(" >> Right was set...", False)
Catch ex As Exception
Dim msg = String.Format(">> Could not set right for docID: {0} group {1} - AccessRights.Insert2: {2}", doc_id, StringGroupRight, ex.Message)
clsLogger.Add(msg, True)
Continue For
End Try
End If
Catch ex As Exception
Dim _right
Select Case fileright
Case WMAccessRightRead
_right = "READ"
Case WMAccessRightWrite
_right = "WRITE"
Case WMAccessRightAdmin
_right = "ADMIN"
Case WMAccessRightAllRights
_right = "ALL RIGHTS"
Case WMAccessRightReadWrite
_right = "READ WRITE"
End Select
MSG_RESULT &= String.Format("Error while working on RightChange2:" & vbNewLine & "Fileright: {0}" & vbNewLine & "Group: {1} " & vbNewLine & "File: {2}", _right, StringGroupRight, docpath) & vbNewLine
clsLogger.Add(ex.Message)
End Try
Next
Try
'Speichern nicht vergessen
oWMObject.Save()