First create solution

This commit is contained in:
2017-03-08 11:21:27 +01:00
commit a2fb86bacf
5508 changed files with 1082238 additions and 0 deletions
@@ -0,0 +1,126 @@
Imports System
Imports System.ComponentModel
Imports System.Collections.Generic
Imports System.Diagnostics
Imports System.Text
Imports DevExpress.ExpressApp
Imports DevExpress.ExpressApp.Actions
Imports DevExpress.Persistent.Base
Imports DevExpress.ExpressApp.SystemModule
Imports DevExpress.Xpo
Imports DevExpress.Data.Filtering
Public Class NavigationItemPermission
Inherits DevExpress.ExpressApp.WindowController
Private _navigationController As ShowNavigationItemController
Private _ID As Long = 1
Public Sub New()
MyBase.New()
'This call is required by the Component Designer.
InitializeComponent()
RegisterActions(components)
End Sub
Protected Overrides Sub OnFrameAssigned()
MyBase.OnFrameAssigned()
'_navigationController = Frame.GetController(Of ShowNavigationItemController)()
'If _navigationController IsNot Nothing Then
' AddHandler _navigationController.ItemsInitialized, AddressOf ItemsInitialized
'End If
End Sub
Protected Overrides Sub OnActivated()
MyBase.OnActivated()
End Sub
Private Sub ItemsInitialized(sender As Object, e As EventArgs)
Dim _ChoiceActionItem As ChoiceActionItem
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _uow As New UnitOfWork(_onew.Session.DataLayer)
Dim _NavigationItemRole_Collection As XPCollection(Of NavigationItemRole) = New XPCollection(Of NavigationItemRole)(_onew.Session, CriteriaOperator.Parse("1=1"))
_uow.Delete(New XPCollection(Of ModelNavigation)(_uow))
_uow.CommitChanges()
For Each _ChoiceActionItem In _navigationController.ShowNavigationItemAction.Items
RecursiveSetPermission(_ChoiceActionItem, _NavigationItemRole_Collection)
If SecuritySystem.CurrentUserName = "SysAdmin" Then
RecursiveAddModelNavigation(_uow, Nothing, _ChoiceActionItem)
End If
Next
_uow.CommitChanges()
End Sub
Sub RecursiveSetPermission(_ChoiceActionItem As ChoiceActionItem, _NavigationItemRole_Collection As XPCollection(Of NavigationItemRole))
Dim _NavigationItemRole As NavigationItemRole
Dim _ChoiceActionItem_Child As ChoiceActionItem
If _ChoiceActionItem.Items.Count > 0 Then
For Each _ChoiceActionItem_Child In _ChoiceActionItem.Items
RecursiveSetPermission(_ChoiceActionItem_Child, _NavigationItemRole_Collection)
Next
End If
If _ChoiceActionItem.Id = "@NavigationItemPermission" Then
If SecuritySystem.CurrentUserName <> "SysAdmin" Then
_ChoiceActionItem.Active.SetItemValue("", False)
End If
End If
For Each _NavigationItemRole In _NavigationItemRole_Collection
If _NavigationItemRole.ChoiceActionItemId = _ChoiceActionItem.Id Then
If _NavigationItemRole.Role IsNot Nothing Then
If SecuritySystemHelper.IsUserInRoleCurrentUser(_NavigationItemRole.Role.Name) Then
_ChoiceActionItem.Active.SetItemValue("", False)
End If
End If
If _NavigationItemRole.SubcontractorRoles IsNot Nothing Then
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _SubcontractorUserRoles_Collection As New XPCollection(Of SubcontractorUserRoles)(_onew.Session, CriteriaOperator.Parse("User.Oid=?", TryCast(SecuritySystem.CurrentUser, DevExpress.Persistent.BaseImpl.User).Oid))
For Each _SubcontractorUserRoles As SubcontractorUserRoles In _SubcontractorUserRoles_Collection
If _NavigationItemRole.SubcontractorRoles.Oid = _SubcontractorUserRoles.SubcontractorRoles.Oid Then
_ChoiceActionItem.Active.SetItemValue("", False)
End If
Next
End If
If _NavigationItemRole.SupportRoles IsNot Nothing Then
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _SupportUserRoles_Collection As New XPCollection(Of SupportUserRoles)(_onew.Session, CriteriaOperator.Parse("User.Oid=?", TryCast(SecuritySystem.CurrentUser, DevExpress.Persistent.BaseImpl.User).Oid))
For Each _SupportUserRoles As SupportUserRoles In _SupportUserRoles_Collection
If _NavigationItemRole.SupportRoles.Oid = _SupportUserRoles.SupportRoles.Oid Then
_ChoiceActionItem.Active.SetItemValue("", False)
End If
Next
End If
End If
Next
End Sub
Sub RecursiveAddModelNavigation(_uow As UnitOfWork, _ModelNavigationParent As ModelNavigation, _ChoiceActionItem As ChoiceActionItem)
Dim _ModelNavigation As ModelNavigation
Dim _ChoiceActionItem_Child As ChoiceActionItem
_ID += 1
_ModelNavigation = New ModelNavigation(_uow)
_ModelNavigation.Parent = _ModelNavigationParent
_ModelNavigation.Name = _ChoiceActionItem.Id
_ModelNavigation.Navigation_Caption = _ChoiceActionItem.Caption
_ModelNavigation.Navigation_ImageName = _ChoiceActionItem.ImageName
If _ChoiceActionItem.Items.Count > 0 Then
For Each _ChoiceActionItem_Child In _ChoiceActionItem.Items
RecursiveAddModelNavigation(_uow, _ModelNavigation, _ChoiceActionItem_Child)
Next
End If
End Sub
End Class