Пример #1
0
        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);
        }