public async Task <IActionResult> Logout() { var user = await _userManager.FindByNameAsync(User.Identity.Name); await _signInManager.SignOutAsync(); _logger.LogInformation("User logged out."); GlobalContext.GlobalCache.RemoveNccUserFromCache(user.Id); var roles = await _userManager.GetRolesAsync(user); var returnUrl = NccUrlHelper.AddLanguageToUrl(CurrentLanguage, "/CmsHome"); var rsp = FireEvent(UserActivity.Type.Logedout, user.Email, user, roles, NccUrlHelper.AddLanguageToUrl(CurrentLanguage, "/CmsHome")); if (rsp != null) { returnUrl = rsp.ReturnUrl; } return(Redirect(returnUrl)); }
private static string ListItemHtml(NccMenuItem item, string currentLanguage) { var url = "/"; var urlPrefix = ""; var data = ""; if (item.MenuActionType == NccMenuItem.ActionType.BlogCategory) { //urlPrefix = "/Category/"; url = item.Url; url = NccUrlHelper.AddLanguageToUrl(currentLanguage, url); return("<li><a href=\"" + url + "\" target=\"" + item.Target + "\">" + item.Name + "</a></li>"); } else if (item.MenuActionType == NccMenuItem.ActionType.BlogPost) { url = item.Url; url = NccUrlHelper.AddLanguageToUrl(currentLanguage, url); return("<li><a href=\"" + url + "\" target=\"" + item.Target + "\">" + item.Name + "</a></li>"); } else if (item.MenuActionType == NccMenuItem.ActionType.Module) { //urlPrefix = "/" + item.Controller + "/" + item.Action + "/"; url = item.Url; url = NccUrlHelper.AddLanguageToUrl(currentLanguage, url); return("<li><a href=\"" + url + "\" target=\"" + item.Target + "\">" + item.Name + "</a></li>"); } else if (item.MenuActionType == NccMenuItem.ActionType.Page) { //urlPrefix = "";/*/CmsHome/CmsPage/View/*/ //item.Url = item.Url.StartsWith("/") == true ? item.Url : "/" + item.Url; //item.Url = NccUrlHelper.AddLanguageToUrl(currentLanguage, item.Url); //return "<li><a href=\"" + item.Url + "\" target=\"" + item.Target + "\">" + item.Name + " </a></li>"; url = item.Url; url = NccUrlHelper.AddLanguageToUrl(currentLanguage, url); return("<li><a href=\"" + url + "\" target=\"" + item.Target + "\">" + item.Name + "</a></li>"); } else if (item.MenuActionType == NccMenuItem.ActionType.Tag) { url = item.Url; url = NccUrlHelper.AddLanguageToUrl(currentLanguage, url); return("<li><a href=\"" + url + "\" target=\"" + item.Target + "\">" + item.Name + "</a></li>"); } else if (item.MenuActionType == NccMenuItem.ActionType.Url) { urlPrefix = ""; } if (!string.IsNullOrEmpty(item.Data)) { data = "?slug=" + item.Data; } url = urlPrefix + item.Url + data; if (!string.IsNullOrEmpty(currentLanguage) && GlobalContext.WebSite.IsMultiLangual && !IsExternalUrl(url)) { url = "/" + currentLanguage + url; } var li = "<li><a href=\"" + url + "\" target=\"" + item.Target + "\">" + item.Name + " </a></li>"; return(li); }
public async Task <IActionResult> Login(LoginViewModel model, string returnUrl = null) { var languageEnabledReturnUrl = NccUrlHelper.AddLanguageToUrl(CurrentLanguage, "/CmsHome"); if (string.IsNullOrEmpty(returnUrl)) { returnUrl = languageEnabledReturnUrl; } ViewData["ReturnUrl"] = returnUrl; if (ModelState.IsValid) { // This doesn't count login failures towards account lockout // To enable password failures to trigger account lockout, set lockoutOnFailure: true var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure : false); if (result.Succeeded) { _logger.LogInformation("User logged in."); var user = UserService.GetByUserName(model.Email); if (user.IsRequireLogin) { user.IsRequireLogin = false; UserService.Update(user); } GlobalContext.GlobalCache.SetNccUser(user); //var roles = _nccPermissionService.LoadAll(); var rsp = FireEvent(UserActivity.Type.Logedin, model.Email, user, user.Permissions.Select(x => x.Permission.Name).ToList(), returnUrl); if (rsp != null) { returnUrl = rsp.ReturnUrl; } if (returnUrl == languageEnabledReturnUrl) { foreach (var item in user.Roles) { if (item.Role.Name == NccCmsRoles.SuperAdmin) { return(RedirectToLocal("/Admin")); } } var startups = _startupService.LoadAll(); foreach (var item in startups) { if (user.Permissions.Where(x => x.Permission.Name == item.Permission.Name).Count() > 0) { return(Redirect(item.StartupUrl)); } } } return(RedirectToLocal(returnUrl)); } if (result.RequiresTwoFactor) { return(RedirectToAction(nameof(LoginWith2fa), new { returnUrl, model.RememberMe })); } if (result.IsLockedOut) { _logger.LogWarning("User account locked out."); return(RedirectToAction(nameof(Lockout))); } else { ModelState.AddModelError(string.Empty, "Invalid login attempt."); return(View(model)); } } return(View(model)); }
private List <MenuItemViewModel> GetMenuItems(List <MenuItem> menuItems, IModule module) { var list = new List <MenuItemViewModel>(); foreach (var item in menuItems) { string controller = "", action = ""; //if (string.IsNullOrEmpty(item.Url) == false) //{ // var parts = item.Url.Split("/".ToArray(), StringSplitOptions.RemoveEmptyEntries); // if (parts.Length > 1) // { // controller = parts[0]; // action = parts[1]; // } // else if (parts.Length == 1) { // controller = parts[0]; // action = "Index"; // } //} if (string.IsNullOrEmpty(item.Url) == false) { (controller, action) = NccUrlHelper.GetControllerActionFromUrl(item.Url); } else { controller = item.Controller; action = item.Action; } var mip = _permission?.PermissionDetails?.Where(x => x.ModuleName == module.ModuleName && x.Action == action && x.Controller == controller).FirstOrDefault(); if (mip != null) { var mi = new MenuItemViewModel() { Id = mip.Id, Area = module.Area, Action = action, Controller = controller, Name = mip.Name, Order = mip.Order, IsChecked = true, }; list.Add(mi); } else { var mi = new MenuItemViewModel() { Id = 0, Action = action, Controller = controller, Name = item.Name, Order = item.Order }; list.Add(mi); } } return(list); }