예제 #1
0
 public IHtmlString With(AclEditModel model, string fieldName)
 {
     return(Html.Partial <Views.AccessControlList.Acl>().WithModel(
                new AccessControlListModel
     {
         Parameters = new AccessControlListParameters {
             Html = Html, FieldName = fieldName, SubjectSelector = model.SubjectSelector(Html)
         },
         InitialEntries = (from t in model.Entries
                           let target = t.Key
                                        from e in t.Where(FilterNullSubjects)
                                        group new { target, e } by e.Entry.Subject into subj
                           let es = subj.Select(e => new { tp = TargetPrivilege.Pair(e.target, e.e.Entry.Privilege.SID, null), e = e.e })
                                    select new PrivilegesListModel
         {
             Subject = subj.Key,
             OwnEntries = es.Where(e => e.e.InheritedFrom == null).Select(e => Pair.Create(e.tp, e.e.Entry.Kind)),
             InheritedEntries = es.Where(e => e.e.InheritedFrom != null).Select(e =>
                                                                                Pair.Create(e.tp, new InheritedPrivilegeModel {
                 Kind = e.e.Entry.Kind, InheritedFrom = e.e.InheritedFrom
             }))
         }
                           ).ToList(),
         PrivilegeEditors = model.PrivilegeEditors
     }));
 }