예제 #1
0
 public IDictionary <string, IEnumerable <Permission> > Resolve(IUserGroup source)
 {
     return(_actions
            .Where(x => x.CanBePermissionAssigned)
            .Select(x => GetPermission(x, source))
            .GroupBy(x => x.Category)
            .ToDictionary(x => x.Key, x => (IEnumerable <Permission>)x.ToArray()));
 }
예제 #2
0
        private IDictionary <string, IEnumerable <Permission> > MapUserGroupDefaultPermissions(IUserGroup source)
        {
            Permission GetPermission(IAction action)
            => new Permission
            {
                Category = action.Category.IsNullOrWhiteSpace()
                        ? _textService.Localize($"actionCategories/{Constants.Conventions.PermissionCategories.OtherCategory}")
                        : _textService.Localize($"actionCategories/{action.Category}"),
                Name           = _textService.Localize($"actions/{action.Alias}"),
                Description    = _textService.Localize($"actionDescriptions/{action.Alias}"),
                Icon           = action.Icon,
                Checked        = source.Permissions != null && source.Permissions.Contains(action.Letter.ToString(CultureInfo.InvariantCulture)),
                PermissionCode = action.Letter.ToString(CultureInfo.InvariantCulture)
            };

            return(_actions
                   .Where(x => x.CanBePermissionAssigned)
                   .Select(GetPermission)
                   .GroupBy(x => x.Category)
                   .ToDictionary(x => x.Key, x => (IEnumerable <Permission>)x.ToArray()));
        }