public async Task <ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var tenant = new Tenant { Name = model.Tenant }; var tenantManager = new Managers.TenantManager(); var roleName = IsSystemTenant(tenant.Name) ? "Administrator" : "Manager"; var exstingTenant = tenantManager.GetTenantByName(model.Tenant); if (exstingTenant != null) { tenant = exstingTenant; } else { tenant = await tenantManager.SaveTenantAsync(tenant); } var user = new ApplicationUser { UserName = model.Email, Email = model.Email, Tenant_Id = tenant.Id }; var result = await UserManager.CreateAsync(user, model.Password); //This line below will hard code users who register to a role of Manager and can be changed by altering the role below await UserManager.AddToRoleAsync(user.Id, roleName); if (result.Succeeded) { //izenda //determine tenant Tenants izendaTenant = null; if (!IsSystemTenant(tenant.Name)) { izendaTenant = new Tenants(); izendaTenant.Active = true; izendaTenant.Deleted = false; izendaTenant.Name = tenant.Name; izendaTenant.TenantID = tenant.Name; TenantIntegrationConfig.AddOrUpdateTenant(izendaTenant); } //determine roles var roleDetail = new RoleDetail() { Name = roleName, TenantUniqueName = tenant.Name, Active = true, Permission = new Izenda.BI.Framework.Models.Permissions.Permission(), }; var izendaUser = new UserDetail() { UserName = model.Email, EmailAddress = model.Email, FirstName = "John", //todo fix this LastName = "Doe", TenantDisplayId = izendaTenant?.Name, SystemAdmin = IsSystemTenant(tenant.Name), Deleted = false, Active = true, Roles = new List <Role>() }; izendaUser.Roles.Add(new Role() { Name = roleDetail.Name }); RoleIntegrationConfig.AddOrUpdateRole(roleDetail); UserIntegrationConfig.AddOrUpdateUser(izendaUser); user.Tenant = tenant; await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); return(RedirectToAction("Index", "Home")); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
public async Task <ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var tenant = !string.IsNullOrWhiteSpace(model.Tenant) ? new Tenant { Name = model.Tenant } : null; var tenantManager = new Managers.TenantManager(); var exstingTenant = tenantManager.GetTenantByName(model.Tenant); if (exstingTenant != null) { tenant = exstingTenant; } else { tenant = tenant != null ? await tenantManager.SaveTenantAsync(tenant) : null; } var user = new ApplicationUser { UserName = model.Email, Email = model.Email, Tenant_Id = tenant != null ? (int?)tenant.Id : null }; var result = await UserManager.CreateAsync(user, model.Password); //If role = "Employee" => add user to this role string assignedRole = "Employee"; string assignedRoleId = ""; if (RoleManager.RoleExists(assignedRole)) { result = await UserManager.AddToRoleAsync(user.Id, assignedRole); assignedRoleId = (RoleManager.FindByNameAsync(assignedRole)).Result.Id; } else { assignedRole = null; } if (result.Succeeded) { user.Tenant = tenant; ////izenda var izendaAdminAuthToken = IzendaBoundary.IzendaTokenAuthorization.GetIzendaAdminToken(); if (tenant != null) { await IzendaBoundary.IzendaUtilities.CreateTenant(tenant.Name, izendaAdminAuthToken); } //CreateUser is Deprecated in favor of CreateIzendaUser //await IzendaBoundary.IzendaUtilities.CreateUser(user, assignedRole, izendaAdminAuthToken); await IzendaBoundary.IzendaUtilities.CreateIzendaUser(user, assignedRoleId, izendaAdminAuthToken); /// end izenda await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); return(RedirectToAction("Index", "Home")); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
/// <summary> /// event handler for click to register /// </summary> protected async void CreateUser_Click(object sender, EventArgs e) { var manager = Context.GetOwinContext().GetUserManager <ApplicationUserManager>(); var signInManager = Context.GetOwinContext().Get <ApplicationSignInManager>(); var tenant = new Tenant() { Name = Tenant.Text }; var tenantManager = new Managers.TenantManager(); var exstingTenant = tenantManager.GetTenantByName(tenant.Name); tenant = exstingTenant ?? await tenantManager.SaveTenantAsync(tenant); var user = new ApplicationUser() { UserName = Email.Text, Email = Email.Text, Tenant_Id = tenant.Id }; IdentityResult result = await manager.CreateAsync(user, Password.Text); string assignedRole = "Employee"; string assignedRoleName = ""; if (RoleManager.RoleExists(assignedRole)) { result = await UserManager.AddToRoleAsync(user.Id, assignedRole); assignedRoleName = (RoleManager.FindByNameAsync(assignedRole)).Result.Name; } else { assignedRole = null; } if (result.Succeeded) { user.Tenant = tenant; ////izenda var izendaAdminAuthToken = IzendaBoundary.IzendaTokenAuthorization.GetIzendaAdminToken(); if (tenant != null) { await IzendaBoundary.IzendaUtility.CreateTenant(tenant.Name, izendaAdminAuthToken); } //CreateUser is Deprecated in favor of CreateIzendaUser //await IzendaBoundary.IzendaUtilities.CreateUser(user, assignedRole, izendaAdminAuthToken); await IzendaBoundary.IzendaUtility.CreateIzendaUser(user, assignedRoleName, izendaAdminAuthToken); // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771 //string code = manager.GenerateEmailConfirmationToken(user.Id); //string callbackUrl = IdentityHelper.GetUserConfirmationRedirectUrl(code, user.Id, Request); //manager.SendEmail(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>."); signInManager.SignIn(user, isPersistent: false, rememberBrowser: false); IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response); } else { ErrorMessage.Text = result.Errors.FirstOrDefault(); } }
protected void CreateUser_Click(object sender, EventArgs e) { var manager = Context.GetOwinContext().GetUserManager <ApplicationUserManager>(); var signInManager = Context.GetOwinContext().Get <ApplicationSignInManager>(); var tenant = new Tenant() { Name = Tenant.Text }; var tenantManager = new Managers.TenantManager(); var exstingTenant = tenantManager.GetTenantByName(tenant.Name); if (exstingTenant != null) { tenant = exstingTenant; } else { tenant = tenantManager.SaveTenant(tenant); } var user = new ApplicationUser() { UserName = Email.Text, Email = Email.Text, Tenant_Id = tenant.Id }; IdentityResult result = manager.Create(user, Password.Text); //This line below will hard code users who register to a role of Manager and can be changed by altering the role below manager.AddToRole(user.Id, "Manager"); if (result.Succeeded) { //izenda //determine tenant var izendaTenant = new Tenants(); izendaTenant.Active = true; izendaTenant.Deleted = false; //var currentUserTenant = ParseTenantFromEmail(izendaTenant.Name); izendaTenant.Name = tenant.Name; izendaTenant.TenantID = tenant.Name; //determine roles var roleDetail = new RoleDetail() { Name = "Administrator", TenantUniqueName = tenant.Name, Active = true, Permission = new Permission(), }; var izendaUser = new UserDetail() { UserName = user.Email, EmailAddress = user.Email, FirstName = "John", //todo fix this LastName = "Doe", TenantDisplayId = tenant.Name, Deleted = false, Active = true, SystemAdmin = false, Roles = new List <Role>() }; izendaUser.Roles.Add(new Role() { Name = roleDetail.Name }); TenantIntegrationConfig.AddOrUpdateTenant(izendaTenant); RoleIntegrationConfig.AddOrUpdateRole(roleDetail); UserIntegrationConfig.AddOrUpdateUser(izendaUser); // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771 //string code = manager.GenerateEmailConfirmationToken(user.Id); //string callbackUrl = IdentityHelper.GetUserConfirmationRedirectUrl(code, user.Id, Request); //manager.SendEmail(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>."); signInManager.SignIn(user, isPersistent: false, rememberBrowser: false); IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response); } else { ErrorMessage.Text = result.Errors.FirstOrDefault(); } }
public async Task <ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var tenant = new Tenant { Name = model.Tenant }; var tenantManager = new Managers.TenantManager(); var roleName = IsSystemTenant(tenant.Name) ? "Administrator" : "Manager"; var exstingTenant = tenantManager.GetTenantByName(model.Tenant); if (exstingTenant != null) { tenant = exstingTenant; } else { tenant = await tenantManager.SaveTenantAsync(tenant); } var user = new ApplicationUser { UserName = model.Email, Email = model.Email, Tenant_Id = tenant.Id }; var result = await UserManager.CreateAsync(user, model.Password); //This line below will hard code users who register to a role of Manager and can be changed by altering the role below await UserManager.AddToRoleAsync(user.Id, roleName); if (result.Succeeded) { //izenda //determine tenant Tenants izendaTenant = null; if (!IsSystemTenant(tenant.Name)) { izendaTenant = new Tenants(); izendaTenant.Active = true; izendaTenant.Deleted = false; izendaTenant.Name = tenant.Name; izendaTenant.TenantID = tenant.Name; TenantIntegrationConfig.AddOrUpdateTenant(izendaTenant); } //determine roles var roleDetail = new RoleDetail() { Name = roleName, TenantUniqueName = tenant.Name, Active = true, Permission = new Izenda.BI.Framework.Models.Permissions.Permission(), }; var izendaUser = new UserDetail() { UserName = model.Email, EmailAddress = model.Email, FirstName = "John", //todo fix this LastName = "Doe", TenantDisplayId = izendaTenant?.Name, SystemAdmin = IsSystemTenant(tenant.Name), Deleted = false, Active = true, Roles = new List <Role>() }; izendaUser.Roles.Add(new Role() { Name = roleDetail.Name }); RoleIntegrationConfig.AddOrUpdateRole(roleDetail); UserIntegrationConfig.AddOrUpdateUser(izendaUser); user.Tenant = tenant; await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); return(RedirectToAction("Index", "Home")); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }