public static async Task <NccUser> CreateSuperAdminUser( NccDbContext nccDbContext, UserManager <NccUser> userManager, RoleManager <NccRole> roleManager, SignInManager <NccUser> signInManager, WebSiteInfo setupInfo ) { CreateCmsDefaultRoles(nccDbContext, roleManager); NccRole superAdmin = await roleManager.FindByNameAsync(NccCmsRoles.SuperAdmin); if (superAdmin != null) { var adminUser = new NccUser() { Email = setupInfo.Email, FullName = "Site Super Admin", Name = "Super Admin", UserName = setupInfo.AdminUserName, }; await userManager.CreateAsync(adminUser, setupInfo.AdminPassword); NccUser user = await userManager.FindByNameAsync(setupInfo.AdminUserName); await userManager.AddToRoleAsync(user, NccCmsRoles.SuperAdmin); return(user); } return(null); }
private bool CreateUser(int totalCount) { int currentUserCount = _userManager.Users.Count(); for (int i = 1; i <= totalCount; i++) { string userName = "******" + (currentUserCount + i).ToString(); string password = "******"; var user = new NccUser { UserName = userName, Email = userName + "@site.com" }; var result = _userManager.CreateAsync(user, password).Result; if (result.Succeeded) { //result = _userManager.AddToRoleAsync(user, GlobalContext.WebSite.NewUserRole).Result; user.Permissions.Add(new NccUserPermission() { User = user, Permission = GetRandomPermission() }); //_logger.LogInformation("User created a new account with password."); if (result.Succeeded) { TempData[""] = "Success"; } } } return(true); }
public static async Task <NccUser> CreateSuperAdminUser( UserManager <NccUser> userManager, RoleManager <NccRole> roleManager, SignInManager <NccUser> signInManager, WebSiteInfo setupInfo ) { CreateCmsDefaultRoles(roleManager); NccRole admin = await roleManager.FindByNameAsync(NccCmsRoles.Administrator); var adminUser = new NccUser() { Email = setupInfo.Email, FullName = "Site Admin", Name = "Administrator", UserName = setupInfo.AdminUserName, }; await userManager.CreateAsync(adminUser, setupInfo.AdminPassword); NccUser user = await userManager.FindByNameAsync(setupInfo.AdminUserName); await userManager.AddToRoleAsync(user, NccCmsRoles.SuperAdmin); return(user); }
public ActionResult CreateEditPost(UserViewModel user, string SendEmail) { if (ModelState.IsValid) { if (user.Password == user.ConfirmPassword) { var nccUser = new NccUser() { Email = user.Email, FullName = user.FullName, UserName = user.UserName, Mobile = user.Mobile, Status = EntityStatus.Active }; var result = _userManager.CreateAsync(nccUser, user.Password).Result; var roleResult = _userManager.AddToRoleAsync(nccUser, user.Role).Result; if (result.Succeeded && roleResult.Succeeded) { TempData["SuccessMessage"] = "User crate successful."; RedirectToAction("Index"); } else { TempData["ErrorMessage"] = "User create failed."; } } else { TempData["ErrorMessage"] = "Password does not match."; } } return(View("CreateEdit", user)); }
private string GetUserStatus(NccUser user) { if (user.LockoutEnabled) { if (user.LockoutEnd != null) { if (user.LockoutEnd > DateTime.Now) { return("Blocked"); } } } if (user.IsRequireLogin) { return("RequireLogin"); } if (GlobalContext.GlobalCache.GetNccUser(user.Id) != null) { return("Online"); } return("Offline"); }
public async Task <IActionResult> Register(RegisterViewModel model, string returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; if (ModelState.IsValid) { var user = new NccUser { UserName = model.Email, Email = model.Email }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=532713 // Send an email with this link //var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); //var callbackUrl = Url.Action(nameof(ConfirmEmail), "Account", new { userId = user.Id, code = code }, protocol: HttpContext.Request.Scheme); //await _emailSender.SendEmailAsync(model.Email, "Confirm your account", // $"Please confirm your account by clicking this link: <a href='{callbackUrl}'>link</a>"); await _userManager.AddToRoleAsync(user, NccCmsRoles.Subscriber); await _signInManager.SignInAsync(user, isPersistent : false); _logger.LogInformation(3, "User created a new account with password."); return(RedirectToLocal(returnUrl)); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
private bool IsUserMenuChecked(MenuItemViewModel menuItem, NccUser user, string moduleName, bool isExtraAllow) { if (isExtraAllow) { return(user.ExtraPermissions.Where( x => x.Permission.PermissionDetails.Where( y => y.Action == menuItem.Action && y.Controller == menuItem.Controller && y.ModuleName == moduleName && (y.ExtraAllowUserId == user.Id) ).Count() > 0 ).Count() > 0); } else { return(user.ExtraDenies.Where( x => x.Permission.PermissionDetails.Where( y => y.Action == menuItem.Action && y.Controller == menuItem.Controller && y.ModuleName == moduleName && (y.ExtraDenyUserId == user.Id) ).Count() > 0 ).Count() > 0); } }
public async Task <IActionResult> Register(RegisterViewModel model, string returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; if (ModelState.IsValid) { var user = new NccUser { UserName = model.Email, Email = model.Email }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { _logger.LogInformation("User created a new account with password."); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Url.EmailConfirmationLink(user.Id.ToString(), code, Request.Scheme); await _emailSender.SendEmailConfirmationAsync(model.Email, callbackUrl); await _signInManager.SignInAsync(user, isPersistent : false); _logger.LogInformation("User created a new account with password."); return(RedirectToLocal(returnUrl)); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
private (bool NotFound, bool Redirect, bool isAuthorized) IsAuthorized(NccUser nccUser, string moduleName, string controllerName, string actionName) { bool isAuthorized = false; string menuName = ""; (menuName, controllerName, actionName) = GetControllerActionForThisRequest(controllerName, actionName); if (string.IsNullOrEmpty(menuName) == true || string.IsNullOrEmpty(controllerName) == true || string.IsNullOrEmpty(actionName) == true) { return(true, true, false); } if (nccUser.ExtraDenies.Where(x => x.ModuleName == moduleName && x.Action == actionName && x.Controller == controllerName).Count() > 0) { return(false, true, false); } else { if (nccUser.Permissions.Where(x => x.Permission.PermissionDetails.Where(y => y.ModuleName == moduleName && y.Action == actionName && y.Controller == controllerName).Count() > 0).Count() > 0) { isAuthorized = true; } else { isAuthorized = nccUser.ExtraPermissions.Where(x => x.ModuleName == moduleName && x.Action == actionName && x.Controller == controllerName).Count() > 0; } } return(false, false, isAuthorized); }
public async Task <IActionResult> ExternalLoginConfirmation(ExternalLoginViewModel model, string returnUrl = null) { if (ModelState.IsValid) { // Get the information about the user from the external login provider var info = await _signInManager.GetExternalLoginInfoAsync(); if (info == null) { throw new ApplicationException("Error loading external login information during confirmation."); } var user = new NccUser { UserName = model.Email, Email = model.Email }; var result = await _userManager.CreateAsync(user); if (result.Succeeded) { result = await _userManager.AddLoginAsync(user, info); if (result.Succeeded) { await _signInManager.SignInAsync(user, isPersistent : false); _logger.LogInformation("User created an account using {Name} provider.", info.LoginProvider); return(RedirectToLocal(returnUrl)); } } AddErrors(result); } ViewData["ReturnUrl"] = returnUrl; return(View(nameof(ExternalLogin), model)); }
protected override NccUserRole CreateUserRole(NccUser user, NccRole role) { return(new NccUserRole() { UserId = user.Id, RoleId = role.Id }); }
public async Task <IActionResult> Register(RegisterViewModel model, string returnUrl = null) { if (GlobalContext.WebSite.AllowRegistration == false) { TempData["ErrorMessage"] = "Registration is not allowed."; return(Redirect("Home/Error")); } ViewData["ReturnUrl"] = returnUrl; if (ModelState.IsValid) { var user = new NccUser { UserName = model.Email, Email = model.Email }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { var subscriber = _nccPermissionService.Get(GlobalContext.WebSite.NewUserRole); user.Permissions.Add(new NccUserPermission() { Permission = subscriber, User = user }); _nccUserService.Update(user); _logger.LogInformation("User created a new account with password."); var rsp = FireEvent(UserActivity.Type.Registered, model.Email, user, new List <string>() { GlobalContext.WebSite.NewUserRole }, ""); if (rsp != null) { returnUrl = rsp.ReturnUrl; } var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Url.EmailConfirmationLink(user.Id.ToString(), code, Request.Scheme); await _emailSender.SendEmailConfirmationAsync(model.Email, callbackUrl); await _signInManager.SignInAsync(user, isPersistent : false); _logger.LogInformation("User created a new account with password."); if (string.IsNullOrEmpty(returnUrl)) { return(Redirect(NccUrlHelper.AddLanguageToUrl(CurrentLanguage, "/CmsHome"))); } return(Redirect(returnUrl)); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
protected override IdentityUserClaim <long> CreateUserClaim(NccUser user, Claim claim) { var userClaim = new IdentityUserClaim <long> { UserId = user.Id }; userClaim.InitializeFromClaim(claim); return(userClaim); }
private (bool NotFound, bool Redirect, bool isAuthorized) IsAuthorized(NccUser nccUser, string moduleName, string controllerName, string actionName) { bool isAuthorized = false; string menuName = ""; (List <ControllerAction> caList, bool isMainAction) = GetControllerActionForThisRequest(controllerName, actionName); if (isMainAction) { foreach (var item in caList) { if (string.IsNullOrEmpty(item.MainMenuName) == true || string.IsNullOrEmpty(item.MainController) == true || string.IsNullOrEmpty(item.MainAction) == true) { return(true, true, false); } if (nccUser.ExtraDenies.Where(x => x.ModuleName == item.ModuleName && x.Action == item.MainAction && x.Controller == item.MainController).Count() > 0) { return(false, true, false); } else { if (nccUser.Permissions.Where(x => x.Permission.PermissionDetails.Where(y => y.ModuleName == item.ModuleName && y.Action == item.MainAction && y.Controller == item.MainController).Count() > 0).Count() > 0) { isAuthorized = true; } else { isAuthorized = nccUser.ExtraPermissions.Where(x => x.ModuleName == item.ModuleName && x.Action == item.MainAction && x.Controller == item.MainController).Count() > 0; } } } } else { foreach (var item in caList) { if (nccUser.Permissions.Where(x => x.Permission.PermissionDetails.Where(y => y.ModuleName == item.ModuleName && y.Action == item.MainAction && y.Controller == item.MainController).Count() > 0).Count() > 0) { isAuthorized = true; } if (isAuthorized == false) { isAuthorized = nccUser.ExtraPermissions.Where(x => x.ModuleName == item.ModuleName && x.Action == item.MainAction && x.Controller == item.MainController).Count() > 0; } if (isAuthorized) { break; } } } return(false, false, isAuthorized); }
public ActionResult CreateEdit(string userName = "") { var user = new UserViewModel(); if (!string.IsNullOrEmpty(userName)) { NccUser nccUser = _userManager.FindByNameAsync(user.UserName).Result; } return(View(user)); }
private List <ModuleViewModel> GetAllowModules(NccUser user) { var activeModules = GlobalContext.GetActiveModules(); var modules = new List <ModuleViewModel>(); foreach (var module in modules) { } return(modules); }
protected override IdentityUserLogin <long> CreateUserLogin(NccUser user, UserLoginInfo login) { return(new IdentityUserLogin <long> { UserId = user.Id, ProviderKey = login.ProviderKey, LoginProvider = login.LoginProvider, ProviderDisplayName = login.ProviderDisplayName }); }
protected override IdentityUserToken <long> CreateUserToken(NccUser user, string loginProvider, string name, string value) { return(new IdentityUserToken <long> { UserId = user.Id, LoginProvider = loginProvider, Name = name, Value = value }); }
private UserViewModel ToUserViewModel(NccUser user) { var uvm = new UserViewModel(); uvm.Email = user.Email; uvm.FullName = user.FullName; uvm.Id = user.Id; uvm.Mobile = user.Mobile; uvm.Role = string.Join(",", user.Roles.Select(x => x.Role.Name).ToList()); uvm.UserName = user.UserName; return(uvm); }
private List <ModuleViewModel> GetModules(NccUser user, bool isAllowModule) { var activeModules = GlobalContext.GetActiveModules(); var modules = new List <ModuleViewModel>(); foreach (var module in modules) { var mvm = new ModuleViewModel(); mvm.ModuleName = module.ModuleName; mvm.Name = module.Name; mvm.AdminMenus = GetMenus(module.ModuleName, module.AdminMenus, user, isAllowModule, "Admin"); mvm.SiteMenus = GetMenus(module.ModuleName, module.SiteMenus, user, isAllowModule, "WebSite"); } return(modules); }
private UserViewModel GetUserViewModel(NccUser user) { var uvm = new UserViewModel(); uvm.Email = user.Email; uvm.FullName = user.FullName; uvm.Id = user.Id; uvm.Mobile = user.Mobile; uvm.RoleNames = string.Join(",", user.Permissions.Select(x => x.Permission.Name).ToList()); uvm.UserName = user.UserName; uvm.AllowModules = GetModules(user, true); uvm.DenyModules = GetModules(user, false); uvm.Roles = user.Permissions.Select(x => x.PermissionId).ToArray(); return(uvm); }
public async Task <IActionResult> ExternalLoginConfirmation(ExternalLoginViewModel model, string returnUrl = null) { if (returnUrl == null) { returnUrl = "/"; } if (ModelState.IsValid) { // Get the information about the user from the external login provider var info = await _signInManager.GetExternalLoginInfoAsync(); if (info == null) { throw new ApplicationException("Error loading external login information during confirmation."); } var user = new NccUser { UserName = model.Email, Email = model.Email }; var result = await _userManager.CreateAsync(user); if (result.Succeeded) { result = await _userManager.AddLoginAsync(user, info); if (result.Succeeded) { var defaultSignupRole = _nccPermissionService.Get(GlobalContext.WebSite.NewUserRole); user.Permissions.Add(new NccUserPermission() { Permission = defaultSignupRole, User = user }); UserService.Update(user); await _signInManager.SignInAsync(user, isPersistent : false); _logger.LogInformation("User created an account using {Name} provider.", info.LoginProvider); GlobalContext.GlobalCache.SetNccUser(user); return(Register(returnUrl)); } } AddErrors(result); } ViewData["ReturnUrl"] = returnUrl; return(View(nameof(ExternalLogin), model)); }
internal static void SetNccUser(this IMemoryCache cache, NccUser nccUser) { Hashtable cacheEntry; cache.TryGetValue(NccCacheKeys.UsersCache, out cacheEntry); if (cacheEntry != null) { cacheEntry[nccUser.Id] = nccUser; } else { cacheEntry = new Hashtable(); cacheEntry[nccUser.Id] = nccUser; var cacheEntryOptions = new MemoryCacheEntryOptions().SetSlidingExpiration(TimeSpan.FromMinutes(20)); cache.Set(NccCacheKeys.UsersCache, cacheEntry, cacheEntryOptions); } }
public ActionResult CreateEdit(string userName = "") { var activeModules = GlobalContext.GetActiveModules(); ViewBag.Modules = activeModules; var permissions = _nccPermissionService.LoadAll(); ViewBag.Roles = new SelectList(permissions, "Id", "Name"); var user = new UserViewModel(); if (!string.IsNullOrEmpty(userName)) { NccUser nccUser = _nccUserService.GetByUserName(userName); user = new UserViewModel(nccUser); ViewBag.Roles = new SelectList(permissions, "Id", "Name", nccUser.Permissions.Select(x => x.PermissionId).ToArray()); } return(View(user)); }
private UserActivity FireEvent(UserActivity.Type type, string email, NccUser user, IList <string> roles, string returnUrl) { try { var rsp = _mediator.SendAll(new OnUserActivity(new UserActivity() { ActivityType = type, Email = email, Ip = NetworkUtility.GetUserIp(HttpContext), NewRoles = roles, User = user, ReturnUrl = returnUrl })).Result; return(rsp.LastOrDefault()); } catch (Exception ex) { _logger.LogError(ex.ToString()); } return(null); }
private static bool HasUserPermission(NccUser user, AdminMenuItem subItem) { if (user.Roles.Where(x => x.Role.Name == NccCmsRoles.SuperAdmin).Count() > 0) { return(true); } var controller = ""; var action = ""; if (string.IsNullOrEmpty(subItem.Url) == false) { (controller, action) = NccUrlHelper.GetControllerActionFromUrl(subItem.Url); } else { controller = subItem.Controller; action = subItem.Action; } if (user.ExtraDenies.Where(x => x.Action == action && x.Controller == controller).Count() > 0) { return(false); } else if (user.Permissions.Where(x => x.Permission.PermissionDetails.Where(y => y.Action == action && y.Controller == controller).Count() > 0).Count() > 0) { return(true); } else if (user.ExtraPermissions.Where(x => x.Action == action && x.Controller == controller).Count() > 0) { return(true); } else { return(false); } }
//private List<MenuViewModel> GetAdminMenus(ModuleViewModel module, NccUser user, bool isExtraAllow) //{ // var menuList = new List<MenuViewModel>(); // foreach (var adminMenu in module.AdminMenus) // { // var amvm = new MenuViewModel(); // amvm.Name = adminMenu.Name; // amvm.Order = adminMenu.Order; // amvm.Type = "Admin"; // amvm.Url = adminMenu.Url; // foreach (var menuItem in adminMenu.MenuItems) // { // amvm.MenuItems.Add(new MenuItemViewModel() { // Action = menuItem.Action, // Controller = menuItem.Controller, // Name = menuItem.Name, // Order = menuItem.Order, // IsChecked = IsUserMenuChecked(menuItem, user, module.ModuleId, isExtraAllow) // }); // } // menuList.Add(amvm); // } // return menuList; //} private List <MenuViewModel> GetMenus(string moduleName, List <MenuViewModel> menus, NccUser user, bool isExtraAllow, string type) { var menuList = new List <MenuViewModel>(); foreach (var siteMenu in menus) { var amvm = new MenuViewModel(); amvm.Name = siteMenu.Name; amvm.Order = siteMenu.Order; amvm.Type = type; amvm.Url = siteMenu.Url; foreach (var menuItem in siteMenu.MenuItems) { amvm.MenuItems.Add(new MenuItemViewModel() { Action = menuItem.Action, Controller = menuItem.Controller, Name = menuItem.Name, Order = menuItem.Order, IsChecked = IsUserMenuChecked(menuItem, user, moduleName, isExtraAllow) }); } menuList.Add(amvm); } return(menuList); }
private List <NccPermissionDetails> GetSelectedPermissionDetails(List <ModuleViewModel> modules, NccUser user, bool isExtraAllowPermission) { var permissionDetailsList = new List <NccPermissionDetails>(); foreach (var module in modules) { foreach (var adminMenu in module.AdminMenus) { foreach (var item in adminMenu.MenuItems) { if (item.IsChecked) { var pd = new NccPermissionDetails() { Action = item.Action, Controller = item.Controller, ModuleName = module.ModuleName, Name = adminMenu.Name, Order = item.Order, }; if (isExtraAllowPermission) { pd.AllowUser = user; } else { pd.DenyUser = user; } permissionDetailsList.Add(pd); } } } foreach (var webSiteMenu in module.SiteMenus) { foreach (var item in webSiteMenu.MenuItems) { if (item.IsChecked) { var pd = new NccPermissionDetails() { Action = item.Action, Controller = item.Controller, ModuleName = module.ModuleName, Name = webSiteMenu.Name, Order = item.Order }; if (isExtraAllowPermission) { pd.AllowUser = user; } else { pd.DenyUser = user; } permissionDetailsList.Add(pd); } } } } return(permissionDetailsList); }
public ActionResult CreateEdit(UserViewModel user, string SendEmail) { bool isSuccess = false; string returnMessage = "User Creation failed"; if (user.Id > 0 && !string.IsNullOrEmpty(user.Email) && !string.IsNullOrEmpty(user.FullName) && !string.IsNullOrEmpty(user.Mobile)) { var oldUser = _nccUserService.GetNccUser(user.Id); oldUser.FullName = user.FullName; oldUser.Email = user.Email; oldUser.Mobile = user.Mobile; oldUser.ExtraDenies.RemoveAll(x => x.ExtraDenyUserId == user.Id); oldUser.ExtraPermissions.RemoveAll(x => x.ExtraAllowUserId == user.Id); var allowedAdminMenuItems = user.AllowModules.Select(x => new { ModuleId = x.ModuleName, Items = x.AdminMenus.SelectMany(y => y.MenuItems.Where(z => z.IsChecked == true)) }); var allowedWebSiteMenuItems = user.AllowModules.Select(x => new { ModuleId = x.ModuleName, Items = x.SiteMenus.SelectMany(y => y.MenuItems.Where(z => z.IsChecked == true)) }).ToList(); foreach (var moduleMenu in allowedAdminMenuItems) { foreach (var menuItem in moduleMenu.Items) { oldUser.ExtraPermissions.Add(new NccPermissionDetails() { Action = menuItem.Action, AllowUser = oldUser, Controller = menuItem.Controller, ExtraAllowUserId = oldUser.Id, ModuleName = moduleMenu.ModuleId }); } } foreach (var moduleMenu in allowedWebSiteMenuItems) { foreach (var menuItem in moduleMenu.Items) { oldUser.ExtraPermissions.Add(new NccPermissionDetails() { Action = menuItem.Action, AllowUser = oldUser, Controller = menuItem.Controller, ExtraAllowUserId = oldUser.Id, ModuleName = moduleMenu.ModuleId }); } } var deniedAdminMenuItems = user.DenyModules.Select(x => new { ModuleId = x.ModuleName, Items = x.AdminMenus.SelectMany(y => y.MenuItems.Where(z => z.IsChecked == true)) }); var deniedWebSiteMenuItems = user.DenyModules.Select(x => new { ModuleId = x.ModuleName, Items = x.SiteMenus.SelectMany(y => y.MenuItems.Where(z => z.IsChecked == true)) }).ToList(); foreach (var moduleMenu in deniedAdminMenuItems) { foreach (var menuItem in moduleMenu.Items) { oldUser.ExtraDenies.Add(new NccPermissionDetails() { Action = menuItem.Action, DenyUser = oldUser, Controller = menuItem.Controller, ExtraDenyUserId = oldUser.Id, ModuleName = moduleMenu.ModuleId }); } } foreach (var moduleMenu in deniedWebSiteMenuItems) { foreach (var menuItem in moduleMenu.Items) { oldUser.ExtraDenies.Add(new NccPermissionDetails() { Action = menuItem.Action, DenyUser = oldUser, Controller = menuItem.Controller, ExtraDenyUserId = oldUser.Id, ModuleName = moduleMenu.ModuleId }); } } _nccUserService.Update(oldUser); if (user.IsSuperAdmin) { NccUser userTemp = _userManager.FindByNameAsync(oldUser.UserName).Result; var result = _userManager.AddToRoleAsync(userTemp, NccCmsRoles.SuperAdmin).Result; if (result.Succeeded) { isSuccess = true; returnMessage = " User SuperAdmin Role update successful."; } else { isSuccess = false; returnMessage = result.Errors?.FirstOrDefault()?.Description; } } else { NccUser userTemp = _userManager.FindByNameAsync(oldUser.UserName).Result; var result = _userManager.RemoveFromRoleAsync(userTemp, NccCmsRoles.SuperAdmin).Result; if (result.Succeeded) { isSuccess = true; returnMessage = " User SuperAdmin Role remove successful."; } else { isSuccess = false; returnMessage = result.Errors?.FirstOrDefault()?.Description; } } isSuccess = true; GlobalContext.GlobalCache.SetNccUser(oldUser); //return RedirectToAction("Index"); } else if (ModelState.IsValid) { if (user.Password == user.ConfirmPassword) { var nccUser = new NccUser() { Email = user.Email, FullName = user.FullName, UserName = user.UserName, Mobile = user.Mobile, Status = EntityStatus.Active }; var result = _userManager.CreateAsync(nccUser, user.Password).Result; var createdUser = _userManager.FindByNameAsync(user.UserName).Result; if (createdUser != null) { if (user.IsSuperAdmin) { NccUser userTemp = _userManager.FindByNameAsync(createdUser.UserName).Result; var temp = _userManager.AddToRoleAsync(userTemp, NccCmsRoles.SuperAdmin).Result; isSuccess = true; returnMessage = "User created successfully."; } else { foreach (var item in user.Roles) { var permission = _nccPermissionService.Get(item); createdUser.Permissions.Add(new NccUserPermission() { Permission = permission, User = createdUser }); } createdUser.ExtraPermissions = GetSelectedPermissionDetails(user.AllowModules, createdUser, true); createdUser.ExtraDenies = GetSelectedPermissionDetails(user.DenyModules, createdUser, false); var upResult = _userManager.UpdateAsync(createdUser).Result; if (upResult.Succeeded == false) { returnMessage = "User role assign failed."; } else { GlobalContext.GlobalCache.SetNccUser(createdUser); isSuccess = true; returnMessage = "User created successfully."; } } } } else { returnMessage = "Password does not match."; } } else { returnMessage = "Please enter all required fields."; ModelState.AddModelError("", "Please enter all required fields."); } if (isSuccess) { ShowMessage(returnMessage, MessageType.Success, false, true); return(RedirectToAction("CreateEdit")); } var activeModules = GlobalContext.GetActiveModules(); ViewBag.Modules = activeModules; var permissions = _nccPermissionService.LoadAll(); ViewBag.Roles = new SelectList(permissions, "Id", "Name"); ShowMessage(returnMessage, MessageType.Error); return(View("CreateEdit", user)); }
public static async Task SaveBasicData(NccUser nccUser, NccDbContext nccDbConetxt, UserManager <NccUser> userManager, RoleManager <NccRole> roleManager, NccSignInManager <NccUser> signInManager, WebSiteInfo setupInfo) { string enDemoTitle = ""; string enDemoSlug = ""; string enDemoContent = ""; string bnDemoTitle = ""; string bnDemoSlug = ""; string bnDemoContent = ""; //var webSiteRepository = new NccWebSiteRepository(nccDbConetxt); //var webSiteInfoRepository = new NccWebSiteInfoRepository(nccDbConetxt); //var webSiteService = new NccWebSiteService(webSiteRepository, webSiteInfoRepository); #region Create a sample page var nccPageRepository = new NccPageRepository(nccDbConetxt); var nccPageDetailsRepository = new NccPageDetailsRepository(nccDbConetxt); var nccPageService = new NccPageService(nccPageRepository, nccPageDetailsRepository); try { enDemoTitle = "Sample Page "; enDemoSlug = "Sample-Page"; enDemoContent = "This is a sample page."; bnDemoTitle = "নমুনা পৃষ্ঠা "; bnDemoSlug = "নমুনা-পৃষ্ঠা"; bnDemoContent = "এটি একটি নমুনা পাতা।"; NccPage page = new NccPage(); page.Metadata = "DEMODATA"; page.PublishDate = DateTime.Now; page.PageStatus = NccPageStatus.Published; page.PageType = NccPageType.Public; page.Layout = "SiteLayout"; page.CreateBy = page.ModifyBy = 1; page.Name = enDemoTitle; foreach (var item in SupportedCultures.Cultures) { NccPageDetails _nccPageDetails = new NccPageDetails(); _nccPageDetails.Language = item.TwoLetterISOLanguageName; if (item.TwoLetterISOLanguageName == "en") { _nccPageDetails.Title = enDemoTitle; _nccPageDetails.Slug = enDemoSlug; _nccPageDetails.Name = enDemoSlug; _nccPageDetails.Content = "<h1 style=\"text-align:center\">" + enDemoTitle + "</h1><p>" + enDemoContent + "</p>"; _nccPageDetails.MetaDescription = enDemoTitle + " " + enDemoContent; } else if (item.TwoLetterISOLanguageName == "bn") { _nccPageDetails.Title = bnDemoTitle; _nccPageDetails.Slug = bnDemoSlug; _nccPageDetails.Name = bnDemoSlug; _nccPageDetails.Content = "<h1 style=\"text-align:center\">" + bnDemoTitle + "</h1><p>" + bnDemoContent + "</p>"; _nccPageDetails.MetaDescription = bnDemoTitle + " " + bnDemoContent; } page.PageDetails.Add(_nccPageDetails); } nccPageService.Save(page); } catch (Exception ex) { } #endregion #region Create a sample category var categoryRepository = new NccCategoryRepository(nccDbConetxt); var categoryService = new NccCategoryService(categoryRepository); try { enDemoTitle = "Sample Category "; enDemoSlug = "Sample-Category"; bnDemoTitle = "নমুনা ক্যাটাগরি "; bnDemoSlug = "নমুনা-ক্যাটাগরি"; NccCategory item = new NccCategory(); item.Metadata = "DEMODATA"; item.Name = enDemoTitle; item.CategoryImage = "/media/Images/2017/06/image-slider-0.jpg"; foreach (var lang in SupportedCultures.Cultures) { NccCategoryDetails _nccDetails = new NccCategoryDetails(); _nccDetails.Language = lang.TwoLetterISOLanguageName; if (lang.TwoLetterISOLanguageName == "en") { _nccDetails.Title = enDemoTitle; _nccDetails.Slug = enDemoSlug; _nccDetails.Name = enDemoSlug; } else if (lang.TwoLetterISOLanguageName == "bn") { _nccDetails.Title = bnDemoTitle; _nccDetails.Slug = bnDemoSlug; _nccDetails.Name = bnDemoSlug; } item.CategoryDetails.Add(_nccDetails); } categoryService.Save(item); } catch (Exception ex) { } #endregion //var tagRepository = new NccTagRepository(nccDbConetxt); //var tagService = new NccTagService(tagRepository); #region Create a sample post var postRepository = new NccPostRepository(nccDbConetxt); var postDetailsRepository = new NccPostDetailsRepository(nccDbConetxt); var postService = new NccPostService(postRepository, postDetailsRepository); try { enDemoTitle = "Sample Post "; enDemoSlug = "Sample-Post"; enDemoContent = "This is a sample post."; bnDemoTitle = "নমুনা পোস্ট "; bnDemoSlug = "নমুনা-পোস্ট"; bnDemoContent = "এটি একটি নমুনা পোস্ট।"; var categoryList = categoryService.LoadAll(); NccPost post = new NccPost(); post.Metadata = "DEMODATA"; post.PublishDate = DateTime.Now; post.PostStatus = NccPostStatus.Published; post.PostType = NccPostType.Public; post.Layout = "SiteLayout"; post.CreateBy = post.ModifyBy = 1; post.Name = enDemoTitle; post.AllowComment = true; post.ThumImage = "/media/Images/2017/06/image-slider-2.jpg"; foreach (var postItem in SupportedCultures.Cultures) { NccPostDetails _nccPostDetails = new NccPostDetails(); _nccPostDetails.Language = postItem.TwoLetterISOLanguageName; if (postItem.TwoLetterISOLanguageName == "en") { _nccPostDetails.Title = enDemoTitle; _nccPostDetails.Slug = enDemoSlug; _nccPostDetails.Name = enDemoSlug; _nccPostDetails.Content = "<h1 style=\"text-align:center\">" + enDemoTitle + "</h1><hr />" + enDemoContent; _nccPostDetails.MetaDescription = enDemoTitle + " " + enDemoContent; } else if (postItem.TwoLetterISOLanguageName == "bn") { _nccPostDetails.Title = bnDemoTitle; _nccPostDetails.Slug = bnDemoSlug; _nccPostDetails.Name = bnDemoSlug; _nccPostDetails.Content = "<h1 style=\"text-align:center\">" + bnDemoTitle + "</h1><hr />" + bnDemoContent; _nccPostDetails.MetaDescription = bnDemoTitle + " " + bnDemoContent; } post.PostDetails.Add(_nccPostDetails); } postService.Save(post); try { post = postService.Get(post.Id, true); post.Categories = new List <NccPostCategory>(); var temp = categoryList.FirstOrDefault(); if (temp != null) { if (post.Categories.Where(x => x.CategoryId == temp.Id).Count() <= 0) { post.Categories.Add(new NccPostCategory() { Post = post, CategoryId = temp.Id }); } } postService.Update(post); } catch (Exception ex) { } } catch (Exception ex) { } #endregion #region Create a sample comment var commentsRepository = new NccCommentsRepository(nccDbConetxt); var commentsService = new NccCommentsService(commentsRepository); try { enDemoContent = "This is a sample comment."; bnDemoContent = "এটি একটি নমুনা মন্তব্য।"; NccComment commentItem = new NccComment(); commentItem.Metadata = "DEMODATA"; commentItem.Name = "Sample Comments"; commentItem.Content = enDemoContent; if (Language == "bn") { commentItem.Content = bnDemoContent; } commentItem.CommentStatus = NccComment.NccCommentStatus.Approved; commentItem.Post = postService.LoadAll().FirstOrDefault(); commentsService.Save(commentItem); } catch (Exception ex) { } #endregion #region Create sample menu var menuRepository = new NccMenuRepository(nccDbConetxt); var menuItemRepository = new NccMenuItemRepository(nccDbConetxt); var menuService = new NccMenuService(menuRepository, menuItemRepository); try { NccMenu nccMenu = new NccMenu() { Name = "Main Menu", Position = "Navigation", MenuOrder = 1, MenuLanguage = "" }; if (Language == "bn") { nccMenu.MenuItems.Add(new NccMenuItem() { Action = "", Controller = "", Data = "", //Id = item.Id, MenuActionType = NccMenuItem.ActionType.Url, MenuOrder = 1, Module = "", Name = "হোম", Target = "_self", Url = "/" }); nccMenu.MenuItems.Add(new NccMenuItem() { Action = "", Controller = "", Data = "", //Id = item.Id, MenuActionType = NccMenuItem.ActionType.Url, MenuOrder = 2, Module = "", Name = "নমুনা পৃষ্ঠা", Target = "_self", Url = "/নমুনা-পৃষ্ঠা" }); nccMenu.MenuItems.Add(new NccMenuItem() { Action = "", Controller = "", Data = "", //Id = item.Id, MenuActionType = NccMenuItem.ActionType.Url, MenuOrder = 3, Module = "", Name = "ব্লগ পোস্ট", Target = "_self", Url = "/Post" }); nccMenu.MenuItems.Add(new NccMenuItem() { Action = "", Controller = "", Data = "", //Id = item.Id, MenuActionType = NccMenuItem.ActionType.Url, MenuOrder = 4, Module = "", Name = "ব্লগ বিভাগ", Target = "_self", Url = "/Category" }); } else { nccMenu.MenuItems.Add(new NccMenuItem() { Action = "", Controller = "", Data = "", //Id = item.Id, MenuActionType = NccMenuItem.ActionType.Url, MenuOrder = 1, Module = "", Name = "Home", Target = "_self", Url = "/" }); nccMenu.MenuItems.Add(new NccMenuItem() { Action = "", Controller = "", Data = "", //Id = item.Id, MenuActionType = NccMenuItem.ActionType.Url, MenuOrder = 2, Module = "", Name = "Sample Page", Target = "_self", Url = "/Sample-Page" }); nccMenu.MenuItems.Add(new NccMenuItem() { Action = "", Controller = "", Data = "", //Id = item.Id, MenuActionType = NccMenuItem.ActionType.Url, MenuOrder = 3, Module = "", Name = "Blog Posts", Target = "_self", Url = "/Post" }); nccMenu.MenuItems.Add(new NccMenuItem() { Action = "", Controller = "", Data = "", //Id = item.Id, MenuActionType = NccMenuItem.ActionType.Url, MenuOrder = 4, Module = "", Name = "Blog Categories", Target = "_self", Url = "/Category" }); } menuService.Save(nccMenu); } catch (Exception ex) { } #endregion #region Create sample widget //var currentWebsite = nccWebSiteService.LoadAll().FirstOrDefault(); //var nccWebSiteWidget = new NccWebSiteWidget() //{ // WebSite = currentWebsite, // WidgetConfigJson = "", // ModuleId = "NetCoreCMS.Core.Modules.Cms", // WidgetId = "NetCoreCms.Modules.Cms.CmsSearch", // ThemeId = "com.NetCoreCMS.themes.NccSeventeen", // LayoutName = "SiteLayout", // Zone = "RightSidebar", // WidgetOrder = 1, // WidgetData = "", //}; //nccWebSiteWidgetService.Save(nccWebSiteWidget); #endregion }