Esempio n. 1
0
 bool IsGranted()
 {
     if (((ISecurityComplex)SecuritySystem.Instance).IsNewSecuritySystem())
     {
         return(SecuritySystem.IsGranted(new ModelCombinePermissionRequest(ApplicationModelCombineModifier.Allow)));
     }
     return(SecuritySystemExtensions.IsGranted(new ModelCombinePermission(ApplicationModelCombineModifier.Allow), false));
 }
Esempio n. 2
0
 protected internal virtual void ControllerOnCustomShowNavigationItem(object sender, CustomShowNavigationItemEventArgs args)
 {
     if (args.FitToObjectType(Application, typeof(ModelDifferenceObject)) && SecuritySystem.Instance is ISecurityComplex)
     {
         SecuritySystem.ReloadPermissions();
         if (!SecuritySystemExtensions.IsGranted(new EditModelPermission(ModelAccessModifier.Allow), false))
         {
             args.Handled = true;
             throw new SecurityException(ExceptionLocalizerTemplate <SystemExceptionResourceLocalizer, ExceptionId> .GetExceptionMessage(ExceptionId.PermissionIsDenied));
         }
     }
 }
        public override bool IsMemberReadGranted(Type requestedType, string propertyName,
                                                 SecurityContextList securityContexts)
        {
            ITypeInfo   typeInfo   = XafTypesInfo.Instance.FindTypeInfo(requestedType);
            IMemberInfo memberInfo = typeInfo.FindMember(propertyName);

            if (memberInfo.GetPath().Any(currentMemberInfo
                                         => !SecuritySystemExtensions.IsGranted(new MemberAccessPermission(currentMemberInfo.Owner.Type,
                                                                                                           currentMemberInfo.Name, MemberOperation.Read), true)))
            {
                return(false);
            }
            var  securityComplex = ((SecurityBase)SecuritySystem.Instance);
            bool isGrantedForNonExistentPermission = securityComplex.IsGrantedForNonExistentPermission;

            securityComplex.IsGrantedForNonExistentPermission = true;
            bool isMemberReadGranted = base.IsMemberReadGranted(requestedType, propertyName, securityContexts);

            securityComplex.IsGrantedForNonExistentPermission = isGrantedForNonExistentPermission;
            return(isMemberReadGranted);
        }
        public override bool IsMemberModificationDenied(object targetObject, IMemberInfo memberInfo)
        {
            var         objectType     = targetObject == null ? memberInfo.Owner.Type : targetObject.GetType();
            IMemberInfo firstOrDefault = memberInfo.GetPath().FirstOrDefault(info => !SecuritySystemExtensions.IsGranted(
                                                                                 new MemberAccessPermission(objectType, info.Name, MemberOperation.Write), true));

            if (firstOrDefault != null)
            {
                return(Fit(targetObject, memberInfo, MemberOperation.Write));
            }
            var  securityComplex = ((SecurityBase)SecuritySystem.Instance);
            bool isGrantedForNonExistentPermission = securityComplex.IsGrantedForNonExistentPermission;

            securityComplex.IsGrantedForNonExistentPermission = true;
            bool isMemberModificationDenied = base.IsMemberModificationDenied(targetObject, memberInfo);

            securityComplex.IsGrantedForNonExistentPermission = isGrantedForNonExistentPermission;
            return(isMemberModificationDenied);
        }