public async Task <IActionResult> Login(AuthModelDto model, string from) { var authModel = new AuthModel(model.Name, model.Password); var context = _model.ReadUserContext(authModel, _authStorageModel); OperationResult result = await Factory.RunOperationAsync(context); if (result.IsSuccess) { string[] ab = from.Split('/'); return(RedirectToAction ( actionName: ab.Last(), controllerName: ab.First(), new { model.Name, model.Password } )); } else { return(RedirectToAction(nameof(Index))); } }
private AuthModelDto CreateToken(List <Groupes> groupes, List <Menus> menus, Users user, Applications application) { AffRolesUsersMenus role11 = Work.AffRoleUsersMenus.Get(x => x.UsersId == user.UsersId).Result; var token = new JwtTokenBuilder() .AddSecurityKey(JwtSecurityKey.Create("Poulina-Auth-Service")) .AddSubject(user.UsersName + " " + user.UsersLastName) .AddIssuer("Poulina.Security.Bearer") .AddAudience("Poulina.Security.Bearer") .AddClaim("MembershipId", user.UsersCode) .AddClaim(ClaimTypes.Role, Work.Role.Get(x => x.RoleId == role11.RoleId).Result.RoleName) //.AddExpiry(1) .AddExpiry(1200000) .Build(); AuthModelDto model = new AuthModelDto { Token = token, Application = application.AppDisplayName, AppCode = application.AppCode, UserName = user.UsersLastName + " " + user.UsersName, UserFiliale = user.FilialeID.ToString(), UserMail = user.UsersMailIntern, PhoneInterne = user.UsersPhoneNumber, PhoneExterne = user.UsersPersonalNumber, ApplicationId = application.AppId, RoleUser = Work.Role.Get(x => x.RoleId == role11.RoleId).Result.RoleDisplayName, UserLogin = user.UsersCode }; List <MenuPermission> menuList = new List <MenuPermission>(); foreach (var entity in groupes) { var roleGroupMenus = entity.AffRoleGroupMenus.Where(x => x.GrpId == entity.GrpId).ToList(); foreach (var item in roleGroupMenus) { MenuPermission menu = new MenuPermission { MenuId = item.MenuId, MenuName = item.Menu.MenuName, MenuUrl = item.Menu.MenuUrl, MenuParentId = item.Menu.FkMenuId, PermissionDetails = new List <PermissionDetail>() }; List <Permissions> lipermissionList = item.Role.AffRolePermissions .Select(a => a.Permission).ToList(); foreach (var perm in lipermissionList) { PermissionDetail permission = new PermissionDetail { PermissionId = perm.PermId, PermissionName = perm.PermName, GroupeId = entity.GrpId, GroupeName = entity.GrpName, }; if (menuList.Any(z => z.MenuId == menu.MenuId)) { var x = menuList.FindIndex(a => a.MenuId == item.MenuId); menuList[x].PermissionDetails.Add(permission); } else { menu.PermissionDetails.Add(permission); } } if (menu.PermissionDetails.Any()) { menuList.Add(menu); } } } try { foreach (var item in menus) { MenuPermission menu = new MenuPermission { MenuId = item.MenuId, MenuName = item.MenuName, MenuUrl = item.MenuUrl, MenuParentId = item.FkMenuId, PermissionDetails = new List <PermissionDetail>() }; List <AffRolesUsersMenus> rolenames = item.AffRolesUsersMenus.ToList(); foreach (var rolesUsersMenu in rolenames) { List <Permissions> lipermissionList = rolesUsersMenu.Role.AffRolePermissions.Select(a => a.Permission).ToList(); foreach (var perm in lipermissionList) { PermissionDetail permission = new PermissionDetail { PermissionId = perm.PermId, PermissionName = perm.PermName, GroupeName = "Permission Unique" }; if (menuList.Any(a => a.MenuId == item.MenuId)) { var x = menuList.FindIndex(a => a.MenuId == item.MenuId); menuList[x].PermissionDetails.Add(permission); } else { menu.PermissionDetails.Add(permission); } } } if (menu.PermissionDetails.Any()) { menuList.Add(menu); } } } catch (Exception e) { Console.WriteLine(e); } model.MenuPermissions = menuList.Distinct().ToList(); return(model); }