public ActionResult AddRepresentative(int id, string oib) { if (!User.IsInRole("buildingmanager")) { return new HttpUnauthorizedResult(); } var building = buildingsRepository.GetById(id); // provjeri da li je trenutna osoba upravitelj zgrade var buildingManager = building.BuildingManager; var currentPerson = personsRepository.GetLegalPersonByUsername(User.Identity.Name); if (currentPerson == null || !buildingManager.LegalPerson.Equals(currentPerson)) { return new HttpUnauthorizedResult(); } var newRepresentative = personsRepository.GetByOib(oib); var newRepresentativeUser = housingMgmtUsersRepository.GetUserByPerson(newRepresentative); // novi predstavnik mora imati otvoren racun (biti korisnik) if (newRepresentativeUser != null) { var role = rolesRepository.GetRole("representative"); // makni ulogu postojecem predstavniku var currentRepresentative = building.RepresentativeOfPartOwners; if (currentRepresentative != null) { var currentRepresentativeUser = housingMgmtUsersRepository.GetUserByPerson(currentRepresentative); currentRepresentativeUser.RemoveRole(role); } // postavi ulogu novom predstavniku newRepresentativeUser.AddRole(role); building.RepresentativeOfPartOwners = newRepresentative; return RedirectToAction("building", new { id = id }); } else { ModelState.AddModelError("", string.Format("Osoba {0} ne može biti postavljena za predstavnika suvlasnika jer nema kreiran korisnički račun.", newRepresentative.FullName)); var owners = building.GetOwners() .Except(new List<Person> { building.RepresentativeOfPartOwners }).ToList(); var model = new AddRepresentativeModel() { Owners = Mapper.Map<IList<Person>, IList<PersonModel>>(owners), Roles = Roles.GetRolesForUser(), Building = building.Address.StreetAddress + " " + building.Address.StreetAddressNumber, BuildingId = building.Id, CurrentRole = "buildingmanager", Links = new LinksModel() {Id = building.Id, Links = NavLinksGenerator.GetManagerLinks(building, string.Empty)} }; return View(model); } }
public ActionResult AddRepresentative(int id) { if (!User.IsInRole("buildingmanager")) { return new HttpUnauthorizedResult(); } var building = buildingsRepository.GetById(id); // provjeri da li je trenutna osoba upravitelj zgrade var buildingManager = building.BuildingManager; var currentUser = housingMgmtUsersRepository.GetUserByPerson(buildingManager.LegalPerson); if(currentUser == null) { return new HttpUnauthorizedResult(); } var owners = building.GetOwners() .Except(new List<Person> { building.RepresentativeOfPartOwners}).ToList(); var model = new AddRepresentativeModel() { Owners = Mapper.Map<IList<Person>, IList<PersonModel>>(owners), Roles = Roles.GetRolesForUser(), Building = building.Address.StreetAddress + " " + building.Address.StreetAddressNumber, BuildingId = building.Id, CurrentRole = "buildingmanager", Links = new LinksModel() { Id = building.Id, Links = NavLinksGenerator.GetManagerLinks(building, string.Empty)} }; return View(model); }