public string GetFile(string docId, string area, string file) { var key = docId + "/" + area + "/" + file; var url = s3.GeneratePresignedURLForGet(key); return(Jsoner.Convert(new { url })); }
public async Task <string> GetLogout() { var user = securityContext.GetUser(); await userLogic.Logout(user.UserName); return(Jsoner.Ok()); }
public string GetPermissions() { var user = securityContext.GetUser(); var permissions = mapper.Map <PermissionsDTO>(user); return(Jsoner.Convert(permissions)); }
private PluginConfig Load() { var text = File.ReadAllText(ConfigPath); // This will use defaults for missing values, as they are pre-filled by the PluginConfig constructor. return(Jsoner.ToObject <PluginConfig>(text)); }
public async Task <string> DeleteDocument(string docId, string area, string file) { var key = docId + "/" + area + "/" + file; await s3.DeleteFileAsync(key); return(Jsoner.Ok()); }
public void InitFromJwt(string jwt) { var json = Jsoner.Convert(new { jwt }); var httpWebRequest = (HttpWebRequest)WebRequest.Create(Url_); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "POST"; using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { streamWriter.Write(json); } var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var result = streamReader.ReadToEnd(); var data = JsonConvert.DeserializeObject <DecodedJwt>(result); SetData(data.Meta, data.Permissions, data.DocId); } }
public string GetDecodedJwt() { var obj = new { user = securityContext.GetUser(), docId = securityContext.GetDocId(), permissions = securityContext.GetPermissions() }; return(Jsoner.Convert(obj)); }
public string GetPermissionsJwtForDoc(string id) { var user = securityContext.GetUser(); return(Jsoner.Convert( new PermissionJwtDTO { Jwt = userLogic.GetPermissionJwt(user, id) } )); }
public void ConvertsCorrectlyFromVector3D() { var vector3D = new Vector3D(1, 2, 3); var plainVec = new PlainVec3D(1, 2, 3); var convertedPlainVec = vector3D.ToPlain(); var jsoner = new Jsoner(); Assert.Equal(jsoner.ToJson(plainVec), jsoner.ToJson(convertedPlainVec)); }
public async Task <string> GetInitUsers() { await initData.InitUsers(); var users = new List <UserModel> { await userRepository.GetUserByUsername("admin"), await userRepository.GetUserByUsername("user") }; return(Jsoner.Convert(users.Select(i => mapper.Map <UserDTO>(i)))); }
public async Task <string> DeleteDocumentThatIAdded(string docId, string area, string file) { var key = docId + "/" + area + "/" + file; var metadata = await s3.GetObjectMetadata(key); var userId = securityContext.GetUser().Id; if (userId != metadata["userid"]) { Response.StatusCode = 403; return(""); } await s3.DeleteFileAsync(key); return(Jsoner.Ok()); }
public async Task <string> PostLogin([FromBody] LoginDTO credentials) { var user = await userLogic.Login(credentials.Username, credentials.Password); if (user == null) { Response.StatusCode = 400; var response = new Dictionary <string, string> { { "message", "Authentication failed" } }; return(Jsoner.Convert(response)); } return(Jsoner.Convert(mapper.Map <UserDTO>(user))); }
public string GetPresignedUrl(string docId, string area, [FromBody] GetPresignedUrlDTO dto) { // Could come from request as well var key = docId + "/" + area + "/" + dto.FileName; var user = securityContext.GetUser(); Console.WriteLine("Fetched user's data"); Console.WriteLine(user.GivenName); Console.WriteLine(user.Id); var metadata = new Dictionary <string, string> { { "userId", user.Id } }; var url = s3.GeneratePreSignedURLForPut(key, dto, metadata); return(Jsoner.Convert(new { url, key })); }
public async Task <string> GetFiles(string docId) { var request = new ListObjectsV2Request { BucketName = s3.GetBucketName(), MaxKeys = 20, Prefix = docId }; var readAreas = securityContext.GetReadAreas().Select(i => i.ToLower()); var files = new List <S3FileDTO>(); var client = s3.GetClient(); ListObjectsV2Response response; do { response = await client.ListObjectsV2Async(request); foreach (var i in response.S3Objects) { foreach (var j in readAreas) { if (i.Key.ToLower().StartsWith(docId + "/" + j)) { var metadataRequest = new GetObjectMetadataRequest { BucketName = s3.GetBucketName(), Key = i.Key }; files.Add(new S3FileDTO { Path = i.Key, LastModified = i.LastModified.ToTimestamp(), Size = i.Size, // Now saved to metadata, would be better to save these to database, but so it is UserId = (await client.GetObjectMetadataAsync(metadataRequest)).Metadata["x-amz-meta-userid"] }); break; } } } request.ContinuationToken = response.NextContinuationToken; } while (response.IsTruncated); return(Jsoner.Convert(files)); }
public PluginConfig LoadOrSaveDefault() { try { if (!File.Exists(ConfigPath)) { SaveDefault(); } var config = Load(); (new ConfigValidator(Log)).EnforceValidConfig(config); Log?.WriteLine($"Using configuration:\n{Jsoner.ToJson(config)}"); return(config); } catch (Exception e) { Log?.Exception(e, "Failed to load config."); return(new PluginConfig()); } }
public async Task <string> GetInitTables() { await initData.InitTables(); return(Jsoner.Ok()); }
public void SaveDefault() { var jsonConfig = Jsoner.ToJson(new PluginConfig()); File.WriteAllText(ConfigPath, jsonConfig); }
public string GetMe() { var user = securityContext.GetUser(); return(Jsoner.Convert(mapper.Map <UserDTO>(user))); }
public async Task <string> GetAll(string id) { var list = await documentRepository.GetAll(); return(Jsoner.Convert(list.Select(i => mapper.Map <DocumentDTO>(i)))); }
public void Save(PluginConfig config) { var jsonConfig = Jsoner.ToJson(config); File.WriteAllText(ConfigPath, jsonConfig); }
public async Task <string> GetById(string id) { var document = await documentRepository.GetById(id); return(Jsoner.Convert(mapper.Map <DocumentDTO>(document))); }
public async Task <string> PostCreateDocument([FromBody] NewDocumentDTO newDocument) { var document = await documentRepository.Create(newDocument.Name); return(Jsoner.Convert(mapper.Map <DocumentDTO>(document))); }
public async Task <string> RemoveById(string id) { await documentLogic.RemoveById(id); return(Jsoner.Ok()); }