bool IsGranted() { if (((ISecurityComplex)SecuritySystem.Instance).IsNewSecuritySystem()) { return(SecuritySystem.IsGranted(new ModelCombinePermissionRequest(ApplicationModelCombineModifier.Allow))); } return(SecuritySystemExtensions.IsGranted(new ModelCombinePermission(ApplicationModelCombineModifier.Allow), false)); }
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); }