protected override void OnActivated()
 {
     base.OnActivated();
     saImportData.Active.SetItemValue("Security",
                                      SecuritySystem.IsGranted(View.ObjectSpace, typeof(InternalInvoice), SecurityOperations.Create, null,
                                                               null));
 }
예제 #2
0
        protected override void OnActivated()
        {
            base.OnActivated();
            if (!SecuritySystem.IsGranted(new IsAdministratorPermissionRequest()))
            {
                var isGranted = SecuritySystem.IsGranted(new MyDetailsOperationRequest(new MyDetailsPermission(Modifier.Allow)));

                _myDetailsController = Frame.GetController <MyDetailsController>();
                if (_myDetailsController != null)
                {
                    _myDetailsController.Active.SetItemValue(KeyDisable, !isGranted);
                }
                _showNavigationItemController = Frame.GetController <ShowNavigationItemController>();
                if (_showNavigationItemController != null)
                {
                    _myDetailsItem = FindMyDetailsItem(_showNavigationItemController.ShowNavigationItemAction.Items);
                    if (_myDetailsItem != null)
                    {
                        _myDetailsItem.Active.SetItemValue(KeyDisable, !isGranted);
                    }
                }
            }
            else
            {
                Active["IsAdmin"] = false;
            }
        }
        static void ApplicationOnLoggedOn(object sender, LogonEventArgs logonEventArgs)
        {
            var xafApplication = ((XafApplication)sender);
            var modelWinLayoutManagerOptions = ((IModelWinLayoutManagerOptions)xafApplication.Model.Options.LayoutManagerOptions);

            modelWinLayoutManagerOptions.CustomizationEnabled = SecuritySystem.IsGranted(new OverallCustomizationAllowedPermissionRequest());
        }
예제 #4
0
 private void CreateButtons()
 {
     if (IsSelector)
     {
         DataSelector.Buttons.Buttons.Clear();
         if (PropertyValue == null)
         {
             if (ObjectSpace.CanInstantiate(MemberInfo.MemberType) && SecuritySystem.IsGranted(new ClientPermissionRequest(MemberInfo.MemberType, null, null, SecurityOperations.Create)))
             {
                 DataSelector.Buttons.AddButton("<span class='glyphicon glyphicon-plus text-info'></span>").OnExecution += XafBootstrapDropdownEdit_AddNew;
             }
         }
         else
         {
             DataSelector.Buttons.AddButton("<span class='glyphicon glyphicon-trash text-danger'></span>").OnExecution += XafBootstrapDropdownEdit_Remove;
         }
     }
     else
     {
         DropDown.Buttons.Buttons.Clear();
         if (PropertyValue == null)
         {
             if (ObjectSpace.CanInstantiate(MemberInfo.MemberType) && SecuritySystem.IsGranted(new ClientPermissionRequest(MemberInfo.MemberType, null, null, SecurityOperations.Create)))
             {
                 DropDown.Buttons.AddButton("<span class='glyphicon glyphicon-plus text-info'></span>").OnExecution += XafBootstrapDropdownEdit_AddNew;
             }
         }
         else
         {
             DropDown.Buttons.AddButton("<span class='glyphicon glyphicon-trash text-danger'></span>").OnExecution += XafBootstrapDropdownEdit_Remove;
         }
     }
 }
예제 #5
0
 bool IsGranted()
 {
     if (((ISecurityComplex)SecuritySystem.Instance).IsNewSecuritySystem())
     {
         return(SecuritySystem.IsGranted(new ModelCombinePermissionRequest(ApplicationModelCombineModifier.Allow)));
     }
     return(SecuritySystemExtensions.IsGranted(new ModelCombinePermission(ApplicationModelCombineModifier.Allow), false));
 }
예제 #6
0
        protected override void OnActivated()
        {
            base.OnActivated();
            // Perform various tasks depending on the target View.
            bool isPermitted = SecuritySystem.IsGranted(new PermissionRequest(ObjectSpace, typeof(News), "ShortDescription", null, SecurityOperations.Write));

            AddShortDescriptionAction.Active.SetItemValue("Security", isPermitted);
            //AddShortDescriptionAction.Active.SetItemValue("Security", SecuritySystem.IsGranted(new ClientPermissionRequest(typeof(News), "ShortDescription", ObjectSpace.GetObjectHandle(View.CurrentObject), SecurityOperations.Write)));
        }
예제 #7
0
        protected override void OnActivated()
        {
            base.OnActivated();
            // Perform various tasks depending on the target View.
            bool isPermitted = SecuritySystem.IsGranted(new PermissionRequest(ObjectSpace, typeof(News), "RelatedOrganizations", null, SecurityOperations.Write));

            ShowRelatedCustomerAction.Active.SetItemValue("Security", isPermitted);
            RemoveRelatedOrganizationAction.Active.SetItemValue("Security", isPermitted);
        }
        protected virtual bool IsGranted(ITransition iTransition, bool hide)
        {
            var permission = new StateMachineTransitionPermission {
                StateCaption     = iTransition.TargetState.Caption,
                StateMachineName = iTransition.TargetState.StateMachine.Name,
                Hide             = hide,
            };

            return(SecuritySystem.IsGranted(new NoCacheablePermissionRequest(new StateMachineTransitionOperationRequest(permission))));
        }
예제 #9
0
        static bool IsNotGranted(IPermission permission)
        {
            var  securityComplex = ((SecurityBase)SecuritySystem.Instance);
            bool isGrantedForNonExistentPermission = securityComplex.IsGrantedForNonExistentPermission;

            securityComplex.IsGrantedForNonExistentPermission = true;
            bool granted = SecuritySystem.IsGranted(permission);

            securityComplex.IsGrantedForNonExistentPermission = isGrantedForNonExistentPermission;
            return(granted);
        }
 protected override void SynchItemWithSecurity(DevExpress.ExpressApp.Actions.ChoiceActionItem item)
 {
     if (!SecuritySystem.IsGranted(new NavigationItemPermissionRequest(item.Id)))
     {
         item.Active[SecurityVisibleKey] = false;
     }
     else
     {
         base.SynchItemWithSecurity(item);
     }
 }
        bool IsActive(XpoTransition xpoTransition)
        {
            var permission = new StateMachineTransitionPermission {
                Modifier         = StateMachineTransitionModifier.Allow,
                StateCaption     = xpoTransition.TargetState.Caption,
                StateMachineName = xpoTransition.SourceState.StateMachine.Name,
                Hide             = false
            };

            return(SecuritySystem.IsGranted(new StateMachineTransitionOperationRequest(permission)));
        }
        protected override void InitializeItems()
        {
            base.InitializeItems();
            ChoiceActionItem newNavigationItem = FindNewNavigationItem();

            if (newNavigationItem != null)
            {
                newNavigationItem.Active[CreateNewObjectNavigationItemActiveKey] =
                    SecuritySystem.IsGranted(new ObjectAccessPermission(
                                                 typeof(Item), ObjectAccess.Create));
            }
        }
예제 #13
0
 public static bool IsGranted(IPermission permission, bool isGrantedForNonExistent)
 {
     if (SecuritySystem.Instance is SecurityBase securityComplex)
     {
         bool isGrantedForNonExistentPermission = securityComplex.IsGrantedForNonExistentPermission;
         securityComplex.IsGrantedForNonExistentPermission = isGrantedForNonExistent;
         bool granted = SecuritySystem.IsGranted(permission);
         securityComplex.IsGrantedForNonExistentPermission = isGrantedForNonExistentPermission;
         return(granted);
     }
     return(SecuritySystem.IsGranted(permission));
 }
 protected override void OnActivated()
 {
     base.OnActivated();
     if (Application.Security.IsRemoteClient())
     {
         return;
     }
     if (!SecuritySystem.IsGranted(new IsAdministratorPermissionRequest()))
     {
         Frame.GetController <StateMachineController>(controller => controller.TransitionExecuting     += OnTransitionExecuting);
         Frame.GetController <ChangeStateActionController>(controller => controller.RequestActiveState += RequestActiveState);
     }
 }
 private void View_SelectionChanged(object sender, EventArgs e)
 {
     if (Frame.GetController <ObjectMethodActionsViewController>().Actions["PatentBase.GetPatentInfo"] != null)
     {
         Frame.GetController <ObjectMethodActionsViewController>().Actions["PatentBase.GetPatentInfo"].Active
         .SetItemValue("Security",
                       View.SelectedObjects.Cast <PatentBase>()
                       .All(
                           p =>
                           SecuritySystem.IsGranted(View.ObjectSpace, typeof(PatentBase),
                                                    SecurityOperations.Write, p, "s_Name")));
     }
 }
예제 #16
0
        private void UpdateStatusPriorityActionState()
        {
            var isGranted         = true;
            var isPriorityGranted = SecuritySystem.IsGranted(new PermissionRequest(this.View.ObjectSpace, typeof(Priority), SecurityOperations.Write, "Priority"));
            var isStatusGranted   = SecuritySystem.IsGranted(new PermissionRequest(this.View.ObjectSpace, typeof(Status), SecurityOperations.Write, "Status"));

            if (!isPriorityGranted || !isStatusGranted)
            {
                isGranted = false;
            }

            this._setStatusPriority.Enabled.SetItemValue("SecurityAllowance", isGranted);
        }
예제 #17
0
 protected override void OnActivated()
 {
     base.OnActivated();
     if (!SecuritySystem.IsGranted(new IsAdministratorPermissionRequest()))
     {
         var isGranted = SecuritySystem.IsGranted(new AnonymousLoginOperationRequest(new AnonymousLoginPermission(Modifier.Allow)));
         Frame.GetController <LogoffController>().Active[typeof(AnonymousLoginPermission).Name] = !isGranted;
         Active[typeof(AnonymousLoginPermission).Name] = isGranted;
     }
     else
     {
         Active["IsAdmin"] = false;
     }
 }
예제 #18
0
        private void UpdateApprovalActionState()
        {
            bool   isGranted    = false;
            string objectHandle = ObjectSpace.GetObjectHandle(View.CurrentObject);
            bool   isDirector   = SecuritySystem.IsGranted(new PermissionRequest(ObjectSpace, typeof(OfficeLeave), "DirectorComment", null, SecurityOperations.Write)); //SecuritySystem.IsGranted(new ClientPermissionRequest(typeof(OfficeLeave), "DirectorComment", objectHandle, SecurityOperations.Write));
            bool   isHR         = SecuritySystem.IsGranted(new PermissionRequest(ObjectSpace, typeof(OfficeLeave), "HRComment", null, SecurityOperations.Write));       //SecuritySystem.IsGranted(new ClientPermissionRequest(typeof(OfficeLeave), "HRComment", objectHandle, SecurityOperations.Write));
            bool   isManager    = SecuritySystem.IsGranted(new PermissionRequest(ObjectSpace, typeof(OfficeLeave), "ManagerComment", null, SecurityOperations.Write));  //SecuritySystem.IsGranted(new ClientPermissionRequest(typeof(OfficeLeave), "ManagerComment", objectHandle, SecurityOperations.Write));

            if (isDirector || isHR || isManager)
            {
                isGranted = true;
            }
            ApproveOffiveLeaveAction.Enabled.SetItemValue("Security", isGranted);
        }
예제 #19
0
        bool IsNotGranted(XpoState state)
        {
            if (!((ISecurityComplex)SecuritySystem.Instance).IsNewSecuritySystem())
            {
                return(IsNotGranted(new StateMachineTransitionPermission(StateMachineTransitionModifier.Deny, state.Caption, state.StateMachine.Name)));
            }
            var stateMachineTransitionPermission = new Improved.StateMachineTransitionPermission {
                Modifier         = StateMachineTransitionModifier.Deny,
                StateCaption     = state.Caption,
                StateMachineName = state.StateMachine.Name
            };

            return(!SecuritySystem.IsGranted(new StateMachineTransitionOperationRequest(stateMachineTransitionPermission)));
        }
예제 #20
0
        bool IsGranted(IState state)
        {
            if (!((IRoleTypeProvider)SecuritySystem.Instance).IsNewSecuritySystem())
            {
                return(IsGranted(new StateMachineTransitionPermission(StateMachineTransitionModifier.Allow, state.Caption, state.StateMachine.Name)));
            }
            var stateMachineTransitionPermission = new Security.Improved.StateMachineTransitionPermission {
                Modifier         = StateMachineTransitionModifier.Allow,
                StateCaption     = state.Caption,
                StateMachineName = state.StateMachine.Name
            };

            return(SecuritySystem.IsGranted(new StateMachineTransitionOperationRequest(stateMachineTransitionPermission)));
        }
예제 #21
0
        protected override void OnActivated()
        {
            base.OnActivated();
            ExportController controller = Frame.GetController <ExportController>();

            if (controller != null)
            {
                controller.ExportAction.Executing += ExportAction_Executing;
                if (SecuritySystem.Instance is IRequestSecurity)
                {
                    controller.Active.SetItemValue("Security", SecuritySystem.IsGranted(new ExportPermissionRequest()));
                }
            }
        }
예제 #22
0
        private void UpdateSetTaskActionState()
        {
            bool isGranted = true;

            foreach (object selectedObject in View.SelectedObjects)
            {
                bool isPriorityGranted = SecuritySystem.IsGranted(new PermissionRequest(ObjectSpace, typeof(DemoTask), SecurityOperations.Write, selectedObject, "Priority"));
                bool isStatusGranted   = SecuritySystem.IsGranted(new PermissionRequest(ObjectSpace, typeof(DemoTask), SecurityOperations.Write, selectedObject, "Status"));
                if (!isPriorityGranted || !isStatusGranted)
                {
                    isGranted = false;
                }
            }
            SetTaskAction.Enabled.SetItemValue("SecurityAllowance", isGranted);
        }
 public override bool IsMemberModificationDenied(object targetObject, IMemberInfo memberInfo)
 {
     try {
         foreach (IMemberInfo currentMemberInfo in memberInfo.GetPath())
         {
             if (!SecuritySystem.IsGranted(new MemberAccessPermission(currentMemberInfo.Owner.Type, currentMemberInfo.Name, MemberOperation.Write)))
             {
                 return(true);
             }
         }
         return(base.IsMemberModificationDenied(targetObject, memberInfo));
     } catch (Exception ex) {
         throw new Exception(ex.ToString());
     }
 }
예제 #24
0
 void UpdateActionState()
 {
     if (SecuritySystem.Instance is ISecurityComplex)
     {
         bool isGranted = true;
         foreach (object selectedObject in View.SelectedObjects)
         {
             var clientPermissionRequest = new ClientPermissionRequest(typeof(IDashboardDefinition), "Xml", ObjectSpace.GetObjectHandle(selectedObject), SecurityOperations.Write);
             isGranted = SecuritySystem.IsGranted(clientPermissionRequest);
         }
         _dashboardEdit.Active["SecurityIsGranted"]      = isGranted;
         _dashboardExportXml.Active["SecurityIsGranted"] = isGranted;
         _dashboardImportXml.Active["SecurityIsGranted"] = isGranted;
     }
 }
        protected override void OnActivated()
        {
            base.OnActivated();
            var authentication = ((IModelOptionsAuthentication)Application.Model.Options).Athentication.AnonymousAuthentication;

            if (authentication.Enabled)
            {
                var isGranted = SecuritySystem.IsGranted(new AnonymousLoginOperationRequest(new AnonymousLoginPermission(Modifier.Allow))) &&
                                !SecuritySystem.IsGranted(new AdministrativePermissionRequest());
                var logoffAction = Frame.GetController <LogoffController>().LogoffAction;

                logoffAction.Caption = isGranted? authentication.LoginActionCaption : logoffAction.Model.Caption;
                logoffAction.ToolTip = isGranted ? authentication.LoginActionTooltip : logoffAction.Model.ToolTip;
            }
        }
예제 #26
0
 public static void UpdatePermissionVisibility(ChoiceActionItem choiceActionItem, IObjectSpace objectSpace)
 {
     if (choiceActionItem.Data != null)
     {
         string      typeName = choiceActionItem.Data.AsString();
         System.Type type     = Type.GetType(typeName + ",MyWorkbench.BusinessObjects");
         if (SecuritySystem.IsGranted(new PermissionRequest(objectSpace, type, SecurityOperations.Create)))
         {
             choiceActionItem.Active["Convert"] = true;
         }
         else
         {
             choiceActionItem.Active["Convert"] = false;
         }
     }
 }
예제 #27
0
        private void UpdateSetTaskActionState()
        {
            bool isGranted = true;

            foreach (object selectedObject in View.SelectedObjects)
            {
                string objectHandle      = ObjectSpace.GetObjectHandle(selectedObject);
                bool   isPriorityGranted = SecuritySystem.IsGranted(new ClientPermissionRequest(typeof(DemoTask), "Priority", objectHandle, SecurityOperations.Write));
                bool   isStatusGranted   = SecuritySystem.IsGranted(new ClientPermissionRequest(typeof(DemoTask), "Status", objectHandle, SecurityOperations.Write));
                if (!isPriorityGranted || !isStatusGranted)
                {
                    isGranted = false;
                }
            }
            SetTaskAction.Enabled.SetItemValue("SecurityAllowance", isGranted);
        }
 // Фрагмент для MemberAccessPermissionItem
 public override bool IsMemberReadGranted(Type requestedType, string propertyName, SecurityContextList securityContexts)
 {
     try {
         ITypeInfo   typeInfo   = XafTypesInfo.Instance.FindTypeInfo(requestedType);
         IMemberInfo memberInfo = typeInfo.FindMember(propertyName);
         foreach (IMemberInfo currentMemberInfo in memberInfo.GetPath())
         {
             if (!SecuritySystem.IsGranted(new MemberAccessPermission(currentMemberInfo.Owner.Type, currentMemberInfo.Name, MemberOperation.Read)))
             {
                 return(false);
             }
         }
         return(base.IsMemberReadGranted(requestedType, propertyName, securityContexts));
     } catch (Exception ex) {
         throw new Exception(ex.ToString());
     }
 }
 protected override void OnViewControlsCreated()
 {
     base.OnViewControlsCreated();
     scaFilter.SelectedIndex = 0;
     Frame.GetController <FilterController>().FullTextFilterAction.Execute += FullTextFilterAction_Execute;
     ((ListView)View).CollectionSource.List.Cast <PatentBase>()
     .Where(
         p => p.LastPatentProgress == null || p.LastPatentProgress.n_Item != EnumsAll.PatentProgressItem.已递交)
     .ToList()
     .ForEach(p =>
     {
         if (SecuritySystem.IsGranted(ObjectSpace, p.GetType(), SecurityOperations.Write, p, "s_Name"))
         {
             p.GetDeadline();
         }
     });
     Frame.GetController <FilterController>().FullTextFilterAction.DoExecute("");
 }
예제 #30
0
        protected override bool SyncItemsWithRequestSecurity(ChoiceActionItemCollection items)
        {
            var syncItemsWithRequestSecurity = base.SyncItemsWithRequestSecurity(items);

            if (Application.Security.IsRemoteClient())
            {
                return(syncItemsWithRequestSecurity);
            }
            foreach (var item in items.Where(item => item.Active[SecurityVisibleKey] && item.Enabled[SecurityVisibleKey]))
            {
                if (SecuritySystem.Instance is IRequestSecurity && !SecuritySystem.IsGranted(new NavigationItemPermissionRequest(item.Id)))
                {
                    item.Active[SecurityVisibleKey]  = false;
                    item.Enabled[SecurityVisibleKey] = false;
                }
            }
            return(syncItemsWithRequestSecurity);
        }