Custom logging
[wsti_pai.git] / Projects / Controllers / ProjectTasksController.cs
index 456bac8d0e694f51e1a34fff11d356890446ddcd..e28a4e57f4dbc92691a15f4b8be5bc63c87c213c 100644 (file)
@@ -17,7 +17,7 @@ namespace Projects.Controllers
         // GET: ProjectTasks
         public ActionResult Index()
         {
-            var projectTasks = db.ProjectTasks.Include(p => p.Project).Include(p => p.TaskStatus).Include(p => p.ProjectUser);
+            var projectTasks = db.ProjectTasks.Include(p => p.Project).Include(p => p.TaskStatus).Include(p => p.User);
             return View(projectTasks.ToList());
         }
 
@@ -37,35 +37,40 @@ namespace Projects.Controllers
         }
 
         // GET: ProjectTasks/Create
+        [Authorize]
         public ActionResult Create()
         {
             ViewBag.project_id = new SelectList(db.Projects, "id", "name");
-            ViewBag.task_status_id = new SelectList(db.TaskStatuses, "int", "status");
-            ViewBag.user_id = new SelectList(db.ProjectUsers, "id", "login");
+            ViewBag.task_status_id = new SelectList(db.TaskStatuses, "id", "status");
+            ViewBag.user_id = new SelectList(db.Users, "id", "login");
             return View();
         }
 
         // POST: ProjectTasks/Create
         // To protect from overposting attacks, please enable the specific properties you want to bind to, for 
         // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
+        [Authorize]
         [HttpPost]
         [ValidateAntiForgeryToken]
         public ActionResult Create([Bind(Include = "id,project_id,name,description,created_at,updated_at,task_status_id,user_id")] ProjectTask projectTask)
         {
             if (ModelState.IsValid)
             {
+                projectTask.created_at = DateTime.Now;
+                projectTask.updated_at = DateTime.Now;
                 db.ProjectTasks.Add(projectTask);
                 db.SaveChanges();
                 return RedirectToAction("Index");
             }
 
             ViewBag.project_id = new SelectList(db.Projects, "id", "name", projectTask.project_id);
-            ViewBag.task_status_id = new SelectList(db.TaskStatuses, "int", "status", projectTask.task_status_id);
-            ViewBag.user_id = new SelectList(db.ProjectUsers, "id", "login", projectTask.user_id);
+            ViewBag.task_status_id = new SelectList(db.TaskStatuses, "id", "status", projectTask.task_status_id);
+            ViewBag.user_id = new SelectList(db.Users, "id", "login", projectTask.user_id);
             return View(projectTask);
         }
 
         // GET: ProjectTasks/Edit/5
+        [Authorize]
         public ActionResult Edit(int? id)
         {
             if (id == null)
@@ -78,31 +83,34 @@ namespace Projects.Controllers
                 return HttpNotFound();
             }
             ViewBag.project_id = new SelectList(db.Projects, "id", "name", projectTask.project_id);
-            ViewBag.task_status_id = new SelectList(db.TaskStatuses, "int", "status", projectTask.task_status_id);
-            ViewBag.user_id = new SelectList(db.ProjectUsers, "id", "login", projectTask.user_id);
+            ViewBag.task_status_id = new SelectList(db.TaskStatuses, "id", "status", projectTask.task_status_id);
+            ViewBag.user_id = new SelectList(db.Users, "id", "login", projectTask.user_id);
             return View(projectTask);
         }
 
         // POST: ProjectTasks/Edit/5
         // To protect from overposting attacks, please enable the specific properties you want to bind to, for 
         // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
+        [Authorize]
         [HttpPost]
         [ValidateAntiForgeryToken]
-        public ActionResult Edit([Bind(Include = "id,project_id,name,description,created_at,updated_at,task_status_id,user_id")] ProjectTask projectTask)
+        public ActionResult Edit([Bind(Include = "id,project_id,name,description,task_status_id,user_id,created_at")] ProjectTask projectTask)
         {
             if (ModelState.IsValid)
             {
+                projectTask.updated_at = DateTime.Now;
                 db.Entry(projectTask).State = EntityState.Modified;
                 db.SaveChanges();
                 return RedirectToAction("Index");
             }
             ViewBag.project_id = new SelectList(db.Projects, "id", "name", projectTask.project_id);
-            ViewBag.task_status_id = new SelectList(db.TaskStatuses, "int", "status", projectTask.task_status_id);
-            ViewBag.user_id = new SelectList(db.ProjectUsers, "id", "login", projectTask.user_id);
+            ViewBag.task_status_id = new SelectList(db.TaskStatuses, "id", "status", projectTask.task_status_id);
+            ViewBag.user_id = new SelectList(db.Users, "id", "login", projectTask.user_id);
             return View(projectTask);
         }
 
         // GET: ProjectTasks/Delete/5
+        [Authorize(Roles = "admin")]
         public ActionResult Delete(int? id)
         {
             if (id == null)
@@ -118,6 +126,7 @@ namespace Projects.Controllers
         }
 
         // POST: ProjectTasks/Delete/5
+        [Authorize(Roles = "admin")]
         [HttpPost, ActionName("Delete")]
         [ValidateAntiForgeryToken]
         public ActionResult DeleteConfirmed(int id)