diff options
| author | Danail Dimitrov <danaildimitrov321@gmail.com> | 2021-01-28 21:26:22 +0200 |
|---|---|---|
| committer | Danail Dimitrov <danaildimitrov321@gmail.com> | 2021-01-28 21:26:22 +0200 |
| commit | c450d08b0bb15bd050695ee599e286815958def0 (patch) | |
| tree | 11beb839b2bb8716423dc7f1f6a3541430a6f86c | |
| parent | 6b11b2001a227a09387548853071c63b6fe5c991 (diff) | |
| parent | 3c7da624040169b7597ebc2691cf51943106a2a4 (diff) | |
| download | DevHive-c450d08b0bb15bd050695ee599e286815958def0.tar DevHive-c450d08b0bb15bd050695ee599e286815958def0.tar.gz DevHive-c450d08b0bb15bd050695ee599e286815958def0.zip | |
Merge branch 'dev' of https://github.com/Team-Kaleidoscope/DevHive into dev
| -rw-r--r-- | src/DevHive.Data/Repositories/RoleRepository.cs | 12 | ||||
| -rw-r--r-- | src/DevHive.Data/Repositories/UserRepository.cs | 5 | ||||
| -rw-r--r-- | src/DevHive.Services/Interfaces/IPostService.cs | 1 | ||||
| -rw-r--r-- | src/DevHive.Services/Services/PostService.cs | 7 | ||||
| -rw-r--r-- | src/DevHive.Web/Controllers/PostController.cs | 11 |
5 files changed, 33 insertions, 3 deletions
diff --git a/src/DevHive.Data/Repositories/RoleRepository.cs b/src/DevHive.Data/Repositories/RoleRepository.cs index e5cb959..2eeb382 100644 --- a/src/DevHive.Data/Repositories/RoleRepository.cs +++ b/src/DevHive.Data/Repositories/RoleRepository.cs @@ -24,6 +24,18 @@ namespace DevHive.Data.Repositories } #endregion + public override async Task<bool> EditAsync(Guid id, Role newEntity) + { + Role role = await this.GetByIdAsync(id); + + this._context + .Entry(role) + .CurrentValues + .SetValues(newEntity); + + return await this.SaveChangesAsync(this._context); + } + #region Validations public async Task<bool> DoesNameExist(string name) { diff --git a/src/DevHive.Data/Repositories/UserRepository.cs b/src/DevHive.Data/Repositories/UserRepository.cs index 630ad38..6512c42 100644 --- a/src/DevHive.Data/Repositories/UserRepository.cs +++ b/src/DevHive.Data/Repositories/UserRepository.cs @@ -55,6 +55,11 @@ namespace DevHive.Data.Repositories { User user = await this.GetByIdAsync(id); + this._context + .Entry(user) + .CurrentValues + .SetValues(newEntity); + user.Languages.Clear(); foreach (var lang in newEntity.Languages) user.Languages.Add(lang); diff --git a/src/DevHive.Services/Interfaces/IPostService.cs b/src/DevHive.Services/Interfaces/IPostService.cs index 37c3354..71b558c 100644 --- a/src/DevHive.Services/Interfaces/IPostService.cs +++ b/src/DevHive.Services/Interfaces/IPostService.cs @@ -19,6 +19,7 @@ namespace DevHive.Services.Interfaces Task<bool> DeletePost(Guid id); Task<bool> DeleteComment(Guid id); + Task<bool> ValidateJwtForCreating(Guid userId, string rawTokenData); Task<bool> ValidateJwtForPost(Guid postId, string rawTokenData); Task<bool> ValidateJwtForComment(Guid commentId, string rawTokenData); } diff --git a/src/DevHive.Services/Services/PostService.cs b/src/DevHive.Services/Services/PostService.cs index c3dc82f..d80d815 100644 --- a/src/DevHive.Services/Services/PostService.cs +++ b/src/DevHive.Services/Services/PostService.cs @@ -169,6 +169,13 @@ namespace DevHive.Services.Services #endregion #region Validations + public async Task<bool> ValidateJwtForCreating(Guid userId, string rawTokenData) + { + User user = await this.GetUserForValidation(rawTokenData); + + return user.Id == userId; + } + public async Task<bool> ValidateJwtForPost(Guid postId, string rawTokenData) { Post post = await this._postRepository.GetByIdAsync(postId) ?? diff --git a/src/DevHive.Web/Controllers/PostController.cs b/src/DevHive.Web/Controllers/PostController.cs index 8bb1d66..0ca041f 100644 --- a/src/DevHive.Web/Controllers/PostController.cs +++ b/src/DevHive.Web/Controllers/PostController.cs @@ -27,9 +27,11 @@ namespace DevHive.Web.Controllers #region Create [HttpPost] - [Authorize(Roles = "Admin")] - public async Task<IActionResult> Create(Guid userId, [FromBody] CreatePostWebModel createPostWebModel) + public async Task<IActionResult> Create(Guid userId, [FromBody] CreatePostWebModel createPostWebModel, [FromHeader] string authorization) { + if (await this._postService.ValidateJwtForCreating(userId, authorization)) + return new UnauthorizedResult(); + CreatePostServiceModel createPostServiceModel = this._postMapper.Map<CreatePostServiceModel>(createPostWebModel); createPostServiceModel.CreatorId = userId; @@ -43,8 +45,11 @@ namespace DevHive.Web.Controllers [HttpPost] [Route("Comment")] - public async Task<IActionResult> AddComment(Guid userId, [FromBody] CreateCommentWebModel createCommentWebModel) + public async Task<IActionResult> AddComment(Guid userId, [FromBody] CreateCommentWebModel createCommentWebModel, [FromHeader] string authorization) { + if (await this._postService.ValidateJwtForCreating(userId, authorization)) + return new UnauthorizedResult(); + CreateCommentServiceModel createCommentServiceModel = this._postMapper.Map<CreateCommentServiceModel>(createCommentWebModel); createCommentServiceModel.CreatorId = userId; |
