ms
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user