コード例 #1
0
        public string Post(string token, string newToken, string comment)
        {
            if (string.IsNullOrWhiteSpace(token))
            {
                return(ReturnMessage.ErrorMessage("token not supplied"));
            }

            if (!_appSettings.Value.AdminKey.Equals(token))
            {
                return(ReturnMessage.ErrorMessage("unauthorised access, only admin token can be used to create tokens"));
            }

            if (TokenManager.Tokens.Any(t => t.Key == newToken))
            {
                return(ReturnMessage.ErrorMessage("token alreay exists"));
            }

            if (string.IsNullOrWhiteSpace(newToken))
            {
                Token t = TokenManager.CreateToken();
                return(ReturnMessage.OkTokenMessage("new token generated", t.Key));
            }
            else
            {
                TokenManager.CreateToken(newToken, comment);
                return(ReturnMessage.OkTokenMessage("new token generated", newToken));
            }
        }
コード例 #2
0
 public string Delete(string token)
 {
     if (_appSettings.Value.AdminKey.Equals(token))
     {
         return(ReturnMessage.ErrorMessage("you can't delete the admin token!"));
     }
     else
     {
         TokenManager.DeleteToken(token);
         return(ReturnMessage.OkTokenMessage("token deleted", token));
     }
 }
コード例 #3
0
        public async Task <string> Post(string token)
        {
            if (string.IsNullOrWhiteSpace(token))
            {
                return(ReturnMessage.ErrorMessage("token not supplied"));
            }

            if (Request.HasFormContentType)
            {
                if (_appSettings.Value.AdminKey.Equals(token) || TokenManager.HasToken(token))
                {
                    try
                    {
                        List <string> fileUrls = new List <string>();
                        foreach (var file in Request.Form.Files)
                        {
                            string fileExtension = file.FileName.Split('.').Last();

                            if (_appSettings.Value.ExtensionBlacklist.Contains(fileExtension))
                            {
                                return(ReturnMessage.ErrorMessage($"upload rejected because of blacklisted file extension on {file.FileName}"));
                            }

                            string fileName = await FileManager.WriteFile(fileExtension, file, _appSettings.Value.PhysicalUploadPath);

                            fileUrls.Add($"{_appSettings.Value.HostUrl}{_appSettings.Value.FileRequestPath}/{fileName}");
                        }

                        return(ReturnMessage.OkFileUploaded("file uploaded", fileUrls.ToArray()));
                    }
                    catch (Exception e)
                    {
                        return(ReturnMessage.ErrorMessage(e.Message));
                    }
                }
                else
                {
                    return(ReturnMessage.ErrorMessage("unauthorised: invalid token"));
                }
            }

            return(ReturnMessage.ErrorMessage("no files or incorrect http post format encountered"));
        }
コード例 #4
0
        public async Task <string> Delete(string fileName, string token)
        {
            if (string.IsNullOrWhiteSpace(token))
            {
                return(ReturnMessage.ErrorMessage("token not supplied"));
            }

            if (_appSettings.Value.AdminKey.Equals(token) || TokenManager.HasToken(token))
            {
                bool?result = FileManager.DeleteFile(fileName, _appSettings.Value.PhysicalUploadPath);
                if (result.HasValue)
                {
                    if (result.Value)
                    {
                        await CloudFlareManager.PurgeCache(
                            _appSettings.Value.CloudFlareZone,
                            _appSettings.Value.CloudFlareEmail,
                            _appSettings.Value.CloudFlareKey,
                            $"{_appSettings.Value.HostUrl}{_appSettings.Value.FileRequestPath}/{fileName}");

                        return(ReturnMessage.OkFileDeleted($"file '{fileName}' successfuly deleted"));
                    }
                    else
                    {
                        return(ReturnMessage.ErrorMessage($"file '{fileName}' doesn't exist"));
                    }
                }
                else
                {
                    return(ReturnMessage.ErrorMessage("could not delete file"));
                }
            }
            else
            {
                return(ReturnMessage.ErrorMessage("unauthorised: invalid token"));
            }
        }