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)); } }
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)); } }
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")); }
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")); } }