예제 #1
0
        public void AfterInit()
        {
            foreach (var restPath in restPaths)
            {
                Operation operation;
                if (!OperationsMap.TryGetValue(restPath.RequestType, out operation))
                {
                    continue;
                }

                operation.Routes.Add(restPath);
            }
        }
예제 #2
0
        public List <string> GetAllPermissions()
        {
            var to = new List <string>();
            var requiredPermissions = OperationsMap
                                      .SelectMany(x => x.Key.AllAttributes <RequiredPermissionAttribute>()
                                                  .Concat(x.Value.ServiceType.AllAttributes <RequiredPermissionAttribute>()))
                                      .SelectMany(x => x.RequiredPermissions);

            requiredPermissions.Each(x => to.AddIfNotExists(x));

            var requireAnyPermissions = OperationsMap
                                        .SelectMany(x => x.Key.AllAttributes <RequiresAnyPermissionAttribute>()
                                                    .Concat(x.Value.ServiceType.AllAttributes <RequiresAnyPermissionAttribute>()))
                                        .SelectMany(x => x.RequiredPermissions);

            requireAnyPermissions.Each(x => to.AddIfNotExists(x));
            return(to);
        }
예제 #3
0
        public List <string> GetAllRoles()
        {
            var to = new List <string> {
                RoleNames.Admin
            };
            var requiredRoles = OperationsMap
                                .SelectMany(x => x.Key.AllAttributes <RequiredRoleAttribute>()
                                            .Concat(x.Value.ServiceType.AllAttributes <RequiredRoleAttribute>()))
                                .SelectMany(x => x.RequiredRoles);

            requiredRoles.Each(x => to.AddIfNotExists(x));

            var requireAnyRoles = OperationsMap
                                  .SelectMany(x => x.Key.AllAttributes <RequiresAnyRoleAttribute>()
                                              .Concat(x.Value.ServiceType.AllAttributes <RequiresAnyRoleAttribute>()))
                                  .SelectMany(x => x.RequiredRoles);

            requireAnyRoles.Each(x => to.AddIfNotExists(x));
            return(to);
        }
예제 #4
0
 public Type GetResponseTypeByRequest(Type requestType)
 {
     OperationsMap.TryGetValue(requestType, out var operation);
     return(operation?.ResponseType);
 }