| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
- using GreenTree.Strohrmann.ERP.Core.Domain.Rights;
- using GreenTree.Strohrmann.ERP.Core.Helper;
- using GreenTree.Strohrmann.ERP.Domain.Model;
- using GreenTree.Strohrmann.ERP.Web.Models.Rights.User;
- using Microsoft.AspNetCore.Http;
- using Microsoft.AspNetCore.Mvc;
- namespace GreenTree.Strohrmann.ERP.Web.Controllers
- {
- public class RightsController : Controller
- {
- #region DI fields
- // The global DbContext
- private readonly ERPDbContext _eRPDbContext;
- // The global user helper
- private readonly IUserHelper _userHelper;
- #endregion
- #region Ctor
- /// <summary>
- /// Initializes a new instance of the RightsController class
- /// </summary>
- /// <param name="eRPDbContext">Global DbContext.</param>
- /// <param name="userHelper">Global user helper.</param>
- public RightsController(
- ERPDbContext eRPDbContext,
- IUserHelper userHelper)
- {
- _eRPDbContext = eRPDbContext;
- _userHelper = userHelper;
- }
- #endregion
- #region Actions
- // GET: Rights
- public ActionResult Index()
- {
- var users = _eRPDbContext.Users
- .ToList()
- .Select(u => new UserModel(u));
- return View("~/Views/Rights/User/Index.cshtml", users);
- }
- // GET: Rights/Details/5
- public ActionResult Details(int id)
- {
- var user = _eRPDbContext.Users
- .FirstOrDefault(u => u.Id == id);
- var userModel = new UserModel(user);
- return View("~/Views/Rights/User/Details.cshtml", userModel);
- }
- // GET: Rights/Create
- public ActionResult Create()
- {
- ViewData.Add("AvailablePolicies", Startup._availablePolicies);
- return View("~/Views/Rights/User/Create.cshtml");
- }
- // POST: Rights/Create
- [HttpPost]
- [ValidateAntiForgeryToken]
- public ActionResult Create(UserModel userModel)
- {
- if (!ModelState.IsValid)
- return View("~/Views/Rights/User/Create.cshtml", userModel);
- var user = new User
- {
- Accountname = userModel.Accountname,
- Password = _userHelper.HashString(userModel.Password, true),
- Forename = userModel.Forename,
- Lastname = userModel.Lastname,
- MailAddress = userModel.MailAddress,
- Birthdate = userModel.Birthdate,
- Activated = true
- };
- if (userModel.Policies != null)
- {
- user.Policies = new List<UserPolicy>(
- userModel.Policies
- .Select(p => new UserPolicy
- {
- PolicyName = p,
- User = user
- }));
- }
- _eRPDbContext.Users.Add(user);
- _eRPDbContext.SaveChanges();
- return RedirectToAction(nameof(Index));
- }
- // GET: Rights/Edit/5
- public ActionResult Edit(int id)
- {
- ViewData.Add("AvailablePolicies", Startup._availablePolicies);
- var user = _eRPDbContext.Users
- .FirstOrDefault(u => u.Id == id);
- var userModel = new UserModel(user);
- return View("~/Views/Rights/User/Edit.cshtml", userModel);
- }
- // POST: Rights/Edit/5
- [HttpPost]
- [ValidateAntiForgeryToken]
- public ActionResult Edit(int id, UserModel userModel)
- {
- if (!ModelState.IsValid)
- return View("~/Views/Rights/User/Edit.cshtml", userModel);
- var user = _eRPDbContext.Users
- .FirstOrDefault(u => u.Id == id);
- user.Accountname = userModel.Accountname;
- user.Forename = userModel.Forename;
- user.Lastname = userModel.Lastname;
- user.MailAddress = userModel.MailAddress;
- user.Birthdate = userModel.Birthdate;
- user.Activated = userModel.Activated;
- user.Policies.Clear();
- _eRPDbContext.SaveChanges();
- if (userModel.Policies != null)
- {
- user.Policies = new List<UserPolicy>(
- userModel.Policies
- .Select(p => new UserPolicy
- {
- PolicyName = p,
- User = user
- }));
- }
- _eRPDbContext.SaveChanges();
- return RedirectToAction(nameof(Index));
- }
- // POST: Rights/Delete/5
- [HttpPost]
- [ValidateAntiForgeryToken]
- public ActionResult Delete(int id, IFormCollection collection)
- {
- var user = _eRPDbContext.Users
- .FirstOrDefault(u => u.Id == id);
- _eRPDbContext.Users.Remove(user);
- _eRPDbContext.SaveChanges();
- return RedirectToAction(nameof(Index));
- }
- #endregion
- }
- }
|