//// GET: Tenant/Create //public ActionResult Create() //{ // return View(); //} //// POST: Tenant/Create //[HttpPost] //public ActionResult Create(FormCollection collection) //{ // try // { // // TODO: Add insert logic here // return RedirectToAction("Index"); // } // catch // { // return View(); // } //} // GET: Tenant/Edit/5 public ActionResult Edit(string id) { string myTenant = GetUserTenant(User.Identity.GetUserId()); if (User.IsInRole(AppRoles.Owner.ToString()) || myTenant == id) { TenantEditViewModel model = new TenantEditViewModel(); Guid idGuid = Guid.Parse(id); using (var db = new ApplicationDbContext()) { var tenant = db.Tenants.FirstOrDefault(item => item.Id == idGuid); // build ViewModel model.Id = tenant.Id.ToString(); model.Name = tenant.Name; model.CallbackPath = Request.Url.GetLeftPart(UriPartial.Authority) + "/signin-" + tenant.Name; model.Caption = tenant.Caption; model.MetadataAddress = tenant.MetadataAddress; model.Realm = tenant.Realm; } return(View(model)); } else { return(View("Error")); } }
public async Task <IActionResult> Register(TenantEditViewModel tenant) { tenant.PropertyList = GetPropertyList(); tenant.UnitList = GetUnitListItems(tenant.SelectedPropertyCode); if (!ModelState.IsValid) { // re-render the view when validation failed. return(View("Register", tenant)); } var propCode = tenant.SelectedPropertyCode == _selectPropertyTip ? "" : tenant.SelectedPropertyCode; var unitNumber = (tenant.SelectedUnitNumber == null || tenant.SelectedUnitNumber.StartsWith("--")) ? "" : tenant.SelectedUnitNumber; try { await _propertyService.RegisterTenantAsync(propCode, tenant.ContactInfo, unitNumber); } catch (DomainValidationException vex) { MapValidationErrorsToModel(vex); return(View(tenant)); } catch (DomainException dex) { ModelState.AddModelError("", dex.Message); return(View("Register", tenant)); } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return(View("Register", tenant)); } return(RedirectToAction("Index")); }
public async Task <IActionResult> Register(TenantEditViewModel tenantVm) { var loggedUser = await _authService.GetUserClaims(User); if (!ModelState.IsValid) { // re-render the view when validation failed. return(View("Register", tenantVm)); } try { tenantVm.PropertyList = GetPropertyList(); tenantVm.UnitList = GetUnitListItems(tenantVm.SelectedPropertyCode); var propCode = tenantVm.SelectedPropertyCode == _selectPropertyTip ? "" : tenantVm.SelectedPropertyCode; var unitNumber = (tenantVm.SelectedUnitNumber == null || tenantVm.SelectedUnitNumber.StartsWith("--")) ? "" : tenantVm.SelectedUnitNumber; await _propertyService.RegisterTenantAsync(propCode, tenantVm.ContactInfo, unitNumber); //return RedirectToAction("Requests", "Tenant"); //TempData["JustEnrolled"] = "yes"; //return base.RedirectToAction("SignOut", "Account", new { area = "AzureADB2C" }); return(_redirectionService.RedirectAfterEnrollment(TempData, this)); } catch (CoreAuthorizationException) { return(base.RedirectToAction(actionName: "AccessDenied", controllerName: "Home")); } catch (DomainEntityDuplicateException) { ModelState.AddModelError("SelectedUnitNumber", "The Unit is already taken"); return(View("Register", tenantVm)); } catch (DomainValidationException vex) { MapValidationErrorsToModel(vex); return(View(tenantVm)); } catch (DomainException dex) { ModelState.AddModelError("", dex.Message); return(View("Register", tenantVm)); } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return(View("Register", tenantVm)); } }
public ActionResult EditPost(TenantEditViewModel viewModel) { if (!Services.Authorizer.Authorize(StandardPermissions.SiteOwner, T("You don't have permission to edit tenants."))) { return(new HttpUnauthorizedResult()); } if (!IsExecutingInDefaultTenant()) { return(new HttpUnauthorizedResult()); } var tenant = _tenantService.GetTenants().FirstOrDefault(ss => ss.Name == viewModel.Name); if (tenant == null) { return(HttpNotFound()); } if (!string.Equals(viewModel.Name, "default", StringComparison.OrdinalIgnoreCase) && string.IsNullOrWhiteSpace(viewModel.RequestUrlHost) && string.IsNullOrWhiteSpace(viewModel.RequestUrlPrefix)) { ModelState.AddModelError("RequestUrlHostRequestUrlPrefix", T("RequestUrlHost and RequestUrlPrefix can not be empty at the same time.").Text); } if (!ModelState.IsValid) { return(View(viewModel)); } try { _tenantService.UpdateTenant( new ShellSettings(tenant) { Name = tenant.Name, RequestUrlHost = viewModel.RequestUrlHost, RequestUrlPrefix = viewModel.RequestUrlPrefix, DataProvider = viewModel.DataProvider, DataConnectionString = viewModel.DatabaseConnectionString, DataTablePrefix = viewModel.DatabaseTablePrefix, State = tenant.State, EncryptionAlgorithm = tenant.EncryptionAlgorithm, EncryptionKey = tenant.EncryptionKey, HashAlgorithm = tenant.HashAlgorithm, HashKey = tenant.HashKey, Themes = viewModel.Themes.Where(x => x.Checked).Select(x => x.ThemeId).ToArray(), Modules = viewModel.Modules.Where(x => x.Checked).Select(x => x.ModuleId).ToArray() }); return(RedirectToAction("Index")); } catch (Exception ex) { Logger.Error(ex, "Error while editing tenant."); Services.Notifier.Error(T("Failed to edit tenant: {0} ", ex.Message)); return(View(viewModel)); } }
// GET: Tenants/Register public IActionResult Register() { var list = GetPropertyList(); var viewModel = new TenantEditViewModel() { PropertyList = list }; return(View(viewModel)); }
public ActionResult EditPost(TenantEditViewModel viewModel) { if (!Services.Authorizer.Authorize(StandardPermissions.SiteOwner, T("Couldn't edit tenant"))) { return(new HttpUnauthorizedResult()); } if (!EnsureDefaultTenant()) { return(new HttpUnauthorizedResult()); } var tenant = _tenantService.GetTenants().FirstOrDefault(ss => ss.Name == viewModel.Name); if (tenant == null) { return(HttpNotFound()); } if (!ModelState.IsValid) { return(View(viewModel)); } try { _tenantService.UpdateTenant( new ShellSettings(tenant) { Name = tenant.Name, RequestUrlHost = viewModel.RequestUrlHost, RequestUrlPrefix = viewModel.RequestUrlPrefix, DataProvider = viewModel.DataProvider, DataConnectionString = viewModel.DatabaseConnectionString, DataTablePrefix = viewModel.DatabaseTablePrefix, State = tenant.State, EncryptionAlgorithm = tenant.EncryptionAlgorithm, EncryptionKey = tenant.EncryptionKey, HashAlgorithm = tenant.HashAlgorithm, HashKey = tenant.HashKey, Themes = viewModel.Themes.Where(x => x.Checked).Select(x => x.ThemeId).ToArray(), Modules = viewModel.Modules.Where(x => x.Checked).Select(x => x.ModuleId).ToArray() }); return(RedirectToAction("Index")); } catch (Exception exception) { Services.Notifier.Error(T("Failed to edit tenant: {0} ", exception.Message)); return(View(viewModel)); } }
public async Task <IActionResult> Register() { var loggedUser = await _authService.GetUserClaims(User); try { var list = GetPropertyList(); var viewModel = new TenantEditViewModel() { PropertyList = list, }; viewModel.ContactInfo.EmailAddress = loggedUser.Login; return(View(viewModel)); } catch (CoreAuthorizationException) { return(base.RedirectToAction(actionName: "AccessDenied", controllerName: "Home")); } }
public ActionResult Edit(string id, TenantEditViewModel model) { try { // TODO: Add update logic here string myTenant = GetUserTenant(User.Identity.GetUserId()); if (User.IsInRole(AppRoles.Owner.ToString()) || myTenant == id) { using (var db = new ApplicationDbContext()) { Guid idGuid = Guid.Parse(id); var result = db.Tenants.SingleOrDefault(item => item.Id == idGuid); if (result != null) { // validate if IDP configuration changed bool idpUpdate = (model.Realm != result.Realm | model.MetadataAddress != result.MetadataAddress); result.Caption = model.Caption; result.Realm = model.Realm; result.MetadataAddress = model.MetadataAddress; db.SaveChanges(); // restart app if IDP configuration was changed if (idpUpdate) { HttpRuntime.UnloadAppDomain(); } } } } return(RedirectToAction("Index")); } catch (Exception ex) { AddErrors(ex.Message); } return(View(model)); }