Exemplo n.º 1
0
        public string GetFile(string docId, string area, string file)
        {
            var key = docId + "/" + area + "/" + file;
            var url = s3.GeneratePresignedURLForGet(key);

            return(Jsoner.Convert(new { url }));
        }
Exemplo n.º 2
0
        public async Task <string> GetLogout()
        {
            var user = securityContext.GetUser();
            await userLogic.Logout(user.UserName);

            return(Jsoner.Ok());
        }
Exemplo n.º 3
0
        public string GetPermissions()
        {
            var user        = securityContext.GetUser();
            var permissions = mapper.Map <PermissionsDTO>(user);

            return(Jsoner.Convert(permissions));
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
        public async Task <string> DeleteDocument(string docId, string area, string file)
        {
            var key = docId + "/" + area + "/" + file;
            await s3.DeleteFileAsync(key);

            return(Jsoner.Ok());
        }
Exemplo n.º 6
0
        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);
            }
        }
Exemplo n.º 7
0
        public string GetDecodedJwt()
        {
            var obj = new
            {
                user        = securityContext.GetUser(),
                docId       = securityContext.GetDocId(),
                permissions = securityContext.GetPermissions()
            };

            return(Jsoner.Convert(obj));
        }
Exemplo n.º 8
0
        public string GetPermissionsJwtForDoc(string id)
        {
            var user = securityContext.GetUser();

            return(Jsoner.Convert(
                       new PermissionJwtDTO
            {
                Jwt = userLogic.GetPermissionJwt(user, id)
            }
                       ));
        }
Exemplo n.º 9
0
        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));
        }
Exemplo n.º 10
0
        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))));
        }
Exemplo n.º 11
0
        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());
        }
Exemplo n.º 12
0
        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)));
        }
Exemplo n.º 13
0
        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 }));
        }
Exemplo n.º 14
0
        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));
        }
Exemplo n.º 15
0
        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());
            }
        }
Exemplo n.º 16
0
        public async Task <string> GetInitTables()
        {
            await initData.InitTables();

            return(Jsoner.Ok());
        }
Exemplo n.º 17
0
        public void SaveDefault()
        {
            var jsonConfig = Jsoner.ToJson(new PluginConfig());

            File.WriteAllText(ConfigPath, jsonConfig);
        }
Exemplo n.º 18
0
        public string GetMe()
        {
            var user = securityContext.GetUser();

            return(Jsoner.Convert(mapper.Map <UserDTO>(user)));
        }
Exemplo n.º 19
0
        public async Task <string> GetAll(string id)
        {
            var list = await documentRepository.GetAll();

            return(Jsoner.Convert(list.Select(i => mapper.Map <DocumentDTO>(i))));
        }
Exemplo n.º 20
0
        public void Save(PluginConfig config)
        {
            var jsonConfig = Jsoner.ToJson(config);

            File.WriteAllText(ConfigPath, jsonConfig);
        }
Exemplo n.º 21
0
        public async Task <string> GetById(string id)
        {
            var document = await documentRepository.GetById(id);

            return(Jsoner.Convert(mapper.Map <DocumentDTO>(document)));
        }
Exemplo n.º 22
0
        public async Task <string> PostCreateDocument([FromBody] NewDocumentDTO newDocument)
        {
            var document = await documentRepository.Create(newDocument.Name);

            return(Jsoner.Convert(mapper.Map <DocumentDTO>(document)));
        }
Exemplo n.º 23
0
        public async Task <string> RemoveById(string id)
        {
            await documentLogic.RemoveById(id);

            return(Jsoner.Ok());
        }