Exemplo n.º 1
0
 /// <summary>
 /// A security filter for a single user entity
 /// </summary>
 /// <param name="user"> The user attempting to perform the operation </param>
 /// <param name="groups"> The groups the user belongs to </param>
 /// <param name="discriminator"> The user model discriminator </param>
 /// <param name="operation"> The database operation the user is trying to perform  </param>
 /// <param name="serviceProvider">Service provider to pass to the ACLs</param>
 /// <typeparam name="TModel"> The user model trying to be accessed </typeparam>
 /// <returns> An expression that can be used for the where condition of a linq query </returns>
 private static Expression <Func <User, bool> > UserFilter <TModel>(
     User user,
     IList <string> groups,
     string discriminator,
     DATABASE_OPERATION operation,
     IServiceProvider serviceProvider)
     where TModel : class, IOwnerAbstractModel, new()
 {
     return(ExpressionHelper.AndExpressions(
                new List <Expression <Func <User, bool> > >
     {
         SecurityService.GetAggregatedUserModelAcls <TModel>(user, groups, operation, serviceProvider),
         u => u.Discriminator == discriminator
     }
                ));
 }