public ProcessedRequest Process(ProcessedRequest request)
        {
            var me = UserRepository.Find(request.UserId);

            var entityGuid = _forcedGuid ?? request.GetRequestStr(_entityGuidParam);

            if (!EntityUtils.IsEntityExists(entityGuid, _entityType))
            {
                request.AddError(new HttpError(HttpStatusCode.NotFound, $"Target {_entityType} doesn't exist"));
            }

            if (!PermissionUtils.HasEntityPermission(me, entityGuid, _entityType))
            {
                request.AddError(
                    new HttpError(HttpStatusCode.Forbidden, "You don't have write permissions for this " + _entityType)
                    );
            }

            return(request);
        }
Esempio n. 2
0
        public ProcessedRequest Process(ProcessedRequest request)
        {
            var scheduleToken = AppConfig.GetConfiguration("auth:schedule:token");

            if (
                string.IsNullOrEmpty(scheduleToken) || scheduleToken != request.GetRequestStr("schedule_token")
                )
            {
                request.AddError(new HttpError(HttpStatusCode.Unauthorized, "Schedule token is invalid"));
            }

            return(request);
        }
Esempio n. 3
0
        public ProcessedRequest Process(ProcessedRequest request)
        {
            var userId = Jwt.GetUserIdFromToken((string)request.Request.Query["api_token"] ?? "");

            if (userId == 0)
            {
                request.AddError(
                    new HttpError(HttpStatusCode.Unauthorized, "Invalid api_token")
                    );
            }

            request.UserId = userId;

            return(request);
        }
Esempio n. 4
0
        public static ProcessedRequest ProcessAll(Request request, IMiddleware[] middleware, IValidatorRule[] rules)
        {
            var processed = new ProcessedRequest(request);

            foreach (var mid in middleware)
            {
                mid.Process(processed);
                if (processed.HasErrors())
                {
                    return(processed);
                }
            }

            foreach (var rule in rules)
            {
                var result = rule.Process(processed.Request);
                if (result != null)
                {
                    processed.AddError(result);
                }
            }

            return(processed);
        }