From 6d93e88dcf96690f7f896ec381d45720b0ce23b0 Mon Sep 17 00:00:00 2001 From: Ruidy Nemausat Date: Sat, 29 Feb 2020 11:38:25 +0100 Subject: [PATCH] Authorized the backend --- Controllers/AppUsersController.cs | 2 +- Controllers/ProjectsController.cs | 5 ++++- Controllers/TicketsController.cs | 2 +- Models/Activity.cs | 4 ++-- Models/Interfaces/ITask.cs | 16 ++-------------- Models/Project.cs | 12 ++++++++++++ client/src/components/UsersModal.tsx | 14 +++++--------- client/src/components/UsersModalEntry.tsx | 3 +-- client/src/controllers/ErrorController.tsx | 5 ++++- client/src/controllers/ProjectController.tsx | 5 +++-- client/src/utils/http.ts | 4 +++- client/src/utils/router.tsx | 2 +- 12 files changed, 39 insertions(+), 35 deletions(-) diff --git a/Controllers/AppUsersController.cs b/Controllers/AppUsersController.cs index b12ad0e..940e98d 100644 --- a/Controllers/AppUsersController.cs +++ b/Controllers/AppUsersController.cs @@ -13,7 +13,7 @@ using TicketManager.DTO; namespace TicketManager.Controllers { - // [Authorize] + [Authorize] [Produces("application/json")] [Route("api/v1/users")] [ApiController] diff --git a/Controllers/ProjectsController.cs b/Controllers/ProjectsController.cs index 083eae4..61a5a6d 100644 --- a/Controllers/ProjectsController.cs +++ b/Controllers/ProjectsController.cs @@ -13,7 +13,7 @@ using System; namespace TicketManager.Controllers { // [Authorize(Roles = "Admin")] - // [Authorize] + [Authorize] [Produces("application/json")] [Route("api/v1/[controller]")] [ApiController] @@ -180,6 +180,9 @@ namespace TicketManager.Controllers EndingDate = projectDto.EndingDate, Manager = await _context.AppUsers.FindAsync(projectDto.ManagerId) }; + // project.LogAction( + // $"{project.Title} has been created by {project.Manager.FullName}.", + // ActivityType.StartTask); _context.Projects.Add(project); await _context.SaveChangesAsync(); diff --git a/Controllers/TicketsController.cs b/Controllers/TicketsController.cs index e298a37..6db1f84 100644 --- a/Controllers/TicketsController.cs +++ b/Controllers/TicketsController.cs @@ -10,7 +10,7 @@ using TicketManager.Models; namespace TicketManager.Controllers { - // [Authorize] + [Authorize] [Route("api/v1/[controller]")] [ApiController] public class TicketsController : ControllerBase diff --git a/Models/Activity.cs b/Models/Activity.cs index 549adf2..60a98a9 100644 --- a/Models/Activity.cs +++ b/Models/Activity.cs @@ -8,7 +8,7 @@ namespace TicketManager.Models public string Description { get; set; } public DateTime UpdateDate { get; private set; } = DateTime.Now; public ActivityType ActivityType { get; set; } = ActivityType.Undefined; - public AppUser User { get; set; } - public int UserId { get; set; } + // public Guid UserId { get; set; } + public int TaskId { get; set; } } } \ No newline at end of file diff --git a/Models/Interfaces/ITask.cs b/Models/Interfaces/ITask.cs index eba4cf7..fd86e71 100644 --- a/Models/Interfaces/ITask.cs +++ b/Models/Interfaces/ITask.cs @@ -3,25 +3,13 @@ using System.Collections.Generic; namespace TicketManager.Models { - // public interface ITask - public abstract class ITask + public interface ITask { int Id { get; set; } string Title { get; set; } string Description { get; set; } DateTime CreationDate { get; } - DateTime PlannedEnding { get; set; } + DateTime EndingDate { get; set; } List Activities { get; set; } - - public virtual void AddLogEntry(string description)//, User user) - { - Activity Activity = new Activity() - { - Description = description, - ActivityType = ActivityType.Undefined, - // User = user, - }; - Activities.Add(Activity); - } } } diff --git a/Models/Project.cs b/Models/Project.cs index 8236c98..e8b3ec3 100644 --- a/Models/Project.cs +++ b/Models/Project.cs @@ -112,5 +112,17 @@ namespace TicketManager.Models { this.Status = Status.Done; } + + public void LogAction(string description, ActivityType type = ActivityType.Undefined)//, Guid userId) + { + Activity Activity = new Activity() + { + Description = description, + ActivityType = type, + TaskId = this.Id, + // UserId = userId + }; + Activities.Add(Activity); + } } } \ No newline at end of file diff --git a/client/src/components/UsersModal.tsx b/client/src/components/UsersModal.tsx index 99e8c53..03aaa33 100644 --- a/client/src/components/UsersModal.tsx +++ b/client/src/components/UsersModal.tsx @@ -1,20 +1,18 @@ -import React, { FC, useState, ChangeEvent, useEffect, FormEvent } from "react"; +import React, { FC, useState, ChangeEvent, FormEvent } from "react"; import { Modal } from "./Modal"; import { AvatarList } from "./AvatarList"; import { User } from "../types/User"; import { FilterBar } from "./FilterBar"; -import { HttpResponse } from "../types/HttpResponse"; -import { get, put, patch } from "../utils/http"; +import { patch } from "../utils/http"; import { Constants } from "../utils/Constants"; import { UsersModalEntry } from "./UsersModalEntry"; import { useParams } from "react-router-dom"; -import _ from "underscore"; interface IProps { show: boolean; - handleClose: () => void; users: User[]; allUsers: User[]; + handleClose(): void; } export const UsersModal: FC = ({ @@ -38,13 +36,11 @@ export const UsersModal: FC = ({ ) => { e.preventDefault(); - const response: HttpResponse = await patch( + await patch( `${Constants.projectsURI}/${id}/members`, - members + members.map(m => m.id) ); - console.log(response); }; - console.log(allUsers); return ( diff --git a/client/src/components/UsersModalEntry.tsx b/client/src/components/UsersModalEntry.tsx index f571285..9dc0b12 100644 --- a/client/src/components/UsersModalEntry.tsx +++ b/client/src/components/UsersModalEntry.tsx @@ -1,6 +1,5 @@ import React, { FC } from "react"; import { User } from "../types/User"; -import _ from "underscore"; interface IProps { setMembers: React.Dispatch>; @@ -9,7 +8,7 @@ interface IProps { } export const UsersModalEntry: FC = ({ user, setMembers, members }) => { - console.log(members); + // console.log(members); const match: (id: string) => boolean = (id: string) => { return Boolean(members.find(m => m.id === id)); }; diff --git a/client/src/controllers/ErrorController.tsx b/client/src/controllers/ErrorController.tsx index 4376691..0f00683 100644 --- a/client/src/controllers/ErrorController.tsx +++ b/client/src/controllers/ErrorController.tsx @@ -2,7 +2,7 @@ import React, { FC } from "react"; import { Redirect } from "react-router-dom"; interface IProps { - error: any; + error: string; } export const ErrorController: FC = ({ error }) => { @@ -10,6 +10,9 @@ export const ErrorController: FC = ({ error }) => { case "Bad Request": return ; + case "Unauthorized": + return ; + case "Not Found": return ; diff --git a/client/src/controllers/ProjectController.tsx b/client/src/controllers/ProjectController.tsx index 6db808b..0252cd5 100644 --- a/client/src/controllers/ProjectController.tsx +++ b/client/src/controllers/ProjectController.tsx @@ -28,6 +28,7 @@ export const ProjectController: FC = () => { setIsLoading(false); } } catch (ex) { + console.error(ex); setHasError(true); setError(ex); } @@ -42,8 +43,8 @@ export const ProjectController: FC = () => { setAllUsers((response.parsedBody as unknown) as User[]); } } catch (ex) { - // setHasError(true); - // setError(ex); + setHasError(true); + setError(ex); } } diff --git a/client/src/utils/http.ts b/client/src/utils/http.ts index a600ab9..e3bc88e 100644 --- a/client/src/utils/http.ts +++ b/client/src/utils/http.ts @@ -56,5 +56,7 @@ export async function patch( const headers: Headers = new Headers({ Accept: "application/json", - "Content-Type": "application/json" + "Content-Type": "application/json", + Authorization: + "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik1UWkNSRFEzUkRnd1FUQXlNRFExTmtOQ09UQXlSamhGTURaRU1Ea3pNRGxHUkRrelFqZENSZyJ9.eyJpc3MiOiJodHRwczovL2Rldi1meWpydm9oeC5hdXRoMC5jb20vIiwic3ViIjoiR3dlZTlGUnN3ejNWNE5vZFVRTjJIcjJyQjJTMDI1UmZAY2xpZW50cyIsImF1ZCI6Imh0dHBzOi8vbG9jYWxob3N0OjUwMDEvYXBpL1YxLyIsImlhdCI6MTU4Mjk3MTQyMSwiZXhwIjoxNTgzMDU3ODIxLCJhenAiOiJHd2VlOUZSc3d6M1Y0Tm9kVVFOMkhyMnJCMlMwMjVSZiIsImd0eSI6ImNsaWVudC1jcmVkZW50aWFscyJ9.mH_ejE0gpMXrMIVUV7afuagTopCxm2x7F7Ash9L7zfOCQnw71E7NPsEh8w2_nFFz3lwm988vGbJhB_1G0oetK3VnqgahHn-ZJfk8RhQeKZQtCddbFCXSZzbsvi8XekpN2qLSZswrfxM4hiNfedQW1sM6wSbVbv4q6MrpPrtnepOo5lu67b9eHQZA5MQGqCLqqAZtEAa4Z8bVUCUcf3wU4e9W38LngrMSEMN62_ZZ8AVnjFVQ97zWEadJhYT54S9tVioY8jNR-38qjuYH_ZP3mVQg8INza9YFiYzIsIgdYufhorb_cSXc1qK1ZhHf4kRHaiHCYan-c9nN9SM9MCYA9A" }); diff --git a/client/src/utils/router.tsx b/client/src/utils/router.tsx index 2d37f3e..d9f7347 100644 --- a/client/src/utils/router.tsx +++ b/client/src/utils/router.tsx @@ -39,7 +39,7 @@ export const AppRouter = () => { */} - +