public static SecurityMemberPermission CreateRolePermission(this ISecurityMemberPermission permission) { SecurityMemberPermission securityOperationPermission = new SecurityMemberPermission(); securityOperationPermission.SetValue(permission); return(securityOperationPermission); }
public static void SetValue(this SecurityMemberPermission operationPermission, IMemberPermission permission) { operationPermission.Operations = permission.Operations; operationPermission.OperationState = permission.OperationState; operationPermission.Type = permission.Type; operationPermission.Criteria = permission.Criteria; operationPermission.MemberName = permission.MemberName; }
public static void SetValue(this SecurityMemberPermission operationPermission, ISecurityMemberPermission permission) { operationPermission.Operations = permission.Operations; operationPermission.OperationState = permission.OperationState; CriteriaSerializer criteriaSerializer = new CriteriaSerializer(); // TODO: more checks are needed... operationPermission.Type = ((ParameterExpression)criteriaSerializer.Deserialize(permission.StringType)).Type; operationPermission.Criteria = (LambdaExpression)criteriaSerializer.Deserialize(permission.StringCriteria); operationPermission.MemberName = permission.MemberName; }
public virtual IMemberPermission AddMemberPermission <TSource, TargetType>(SecurityOperation operation, OperationState state, string memberName, Expression <Func <TSource, TargetType, bool> > criteria) where TSource : BaseSecurityDbContext { if (operation.HasFlag(SecurityOperation.Create)) { throw new ArgumentException("The create value of the 'operations' parameter is incorrect in this context. Only the Read and Write operations can be granted by a member permission."); } if (operation.HasFlag(SecurityOperation.Delete)) { throw new ArgumentException("The delete value of the 'operations' parameter is incorrect in this context. Only the Read and Write operations can be granted by a member permission."); } SecurityMemberPermission memberPermission = new SecurityMemberPermission(); memberPermission.Type = typeof(TargetType); memberPermission.Criteria = criteria; memberPermission.Operations = operation; memberPermission.OperationState = state; memberPermission.MemberName = memberName; this.MemberPermissions.Add(memberPermission); return(memberPermission); }