コード例 #1
0
        public JsonResult SaveUserWithRoles(UserWithRoles userWithRoles)
        {
            ReturnUserWithRoles returnResult = new ReturnUserWithRoles();

            returnResult.Code = "00";
            //validate
            if (userWithRoles == null)
            {
                returnResult.Code    = "99";
                returnResult.Message = "Không có dữ liệu/No data.";
                return(Json(returnResult, JsonRequestBehavior.AllowGet));
            }
            UserRoleDB          userRoleDB = new UserRoleDB();
            ReturnUserWithRoles returnUserWith_aRole;

            foreach (Role role in userWithRoles.Roles)
            {
                returnUserWith_aRole = userRoleDB.SaveUserWith_aRole(userWithRoles.UserID, role);
                if (returnUserWith_aRole.Code == "99")
                {
                    returnResult.Code     = "99";
                    returnResult.Message += "Lỗi phân quyền : " + role.RoleName + "; ";
                }
            }
            return(Json(returnResult, JsonRequestBehavior.AllowGet));
        }
コード例 #2
0
        public async Task UpdateRoleNameAsync(UserRoleDB role)
        {
            IdentityRole ir = await _manager.FindByIdAsync(role.Id);

            ir.Name = role.Name;
            await _manager.UpdateAsync(ir);
        }
コード例 #3
0
        public async Task AddAsync(UserRoleDB role)
        {
            IdentityRole identityRole = new IdentityRole(role.Name)
            {
                Id = Guid.NewGuid().ToString()
            };

            await _manager.CreateAsync(identityRole);
        }
コード例 #4
0
        public async Task <IEnumerable <Common.Models.Users.User> > GetRoleUsers(UserRole role)
        {
            UserRoleDB           roleDB    = MapTo <UserRoleDB>(role);
            IEnumerable <UserDB> subResult = await _roleRepo.GetRoleUsers(roleDB);

            IEnumerable <User> result = _mapper.Map <IEnumerable <User> >(subResult);

            return(result);
        }
コード例 #5
0
ファイル: RoleRepository.cs プロジェクト: crazyants/AbiokaApi
        public void AddToUser(Guid roleId, Guid userId)
        {
            var userRole = new UserRoleDB {
                Role   = new Role(roleId, string.Empty),
                UserId = userId
            };

            Save(userRole);
        }
コード例 #6
0
        public ActionResult RoleAdd()
        {
            UserRoleDB     userRole = new UserRoleDB();
            AspNetUserRole ur       = new AspNetUserRole();

            ur.RoleId = TempData["Role"].ToString();
            ur.UserId = User.Identity.GetUserId();
            userRole.AspNetUserRoles.Add(ur);
            userRole.SaveChanges();
            return(RedirectToAction("Index", "Home"));
        }
コード例 #7
0
        public async Task <UserRoleDB> FindByIdAsync(string roleId)
        {
            IdentityRole ir = await _manager.FindByIdAsync(roleId);

            UserRoleDB result = new UserRoleDB()
            {
                Id = ir.Id, Name = ir.Name
            };

            return(result);
        }
コード例 #8
0
        public async Task <UserRoleDB> FindByNameAsync(string roleName)
        {
            IdentityRole ir = await _manager.FindByNameAsync(roleName);

            if (ir == null)
            {
                return(null);
            }
            UserRoleDB result = new UserRoleDB()
            {
                Id = ir.Id, Name = ir.Name
            };

            return(result);
        }
コード例 #9
0
        public async Task <IEnumerable <UserDB> > GetRoleUsers(UserRoleDB role)
        {
            IdentityRole ir = await _manager.FindByIdAsync(role.Id);

            List <string> userIds = new List <string>();

            foreach (IdentityUserRole iur in ir.Users)
            {
                userIds.Add(iur.UserId);
            }

            IEnumerable <UserDB> result = _context.Users.Include(u => u.Roles).
                                          Include(u => u.Claims).
                                          Include(u => u.Logins).
                                          Include(u => u.Friends).
                                          Include(u => u.ProductDescriptions).
                                          Where(u => userIds.Contains(u.Id));

            return(result.ToArray());
        }
コード例 #10
0
        public async Task DeleteAsync(UserRoleDB role)
        {
            IdentityRole identityRole = await _manager.FindByIdAsync(role.Id);

            await _manager.DeleteAsync(identityRole);
        }
コード例 #11
0
 private UserRole MapTo <T>(UserRoleDB role)
     where T : UserRole
 =>
 _mapper.Map <UserRole>(role);
コード例 #12
0
        public async Task <UserRole> FindByNameAsync(string roleName)
        {
            UserRoleDB roleDB = await _roleRepo.FindByNameAsync(roleName);

            return(MapTo <UserRole>(roleDB));
        }
コード例 #13
0
        public static void Initialize(UserRoleDB context)
        {
            context.Database.EnsureCreated();

            if (context.Roles.Any() && context.Users.Any() && context.UserRoles.Any())
            {
                return;
            }

            string[] validRoles = new string[] { "Administrator", "RoomAdmin", "Speaker", "Remote" };

            var roleStore = new RoleStore <IdentityRole>(context);

            foreach (string role in validRoles)
            {
                IdentityRole newRole = new IdentityRole();
                newRole.Name           = role;
                newRole.NormalizedName = role.ToUpper();
                if (!context.Roles.Any(e => e.Name == role))
                {
                    roleStore.CreateAsync(newRole).Wait();
                }
            }

            var admin = new Playlist_1User
            {
                UserName           = "******",
                NormalizedUserName = "******",
                //Name = "Admin",
                Email           = "*****@*****.**",
                NormalizedEmail = "*****@*****.**",
                EmailConfirmed  = true,
            };

            var professor = new Playlist_1User
            {
                UserName           = "******",
                NormalizedUserName = "******",
                //Name = "John",
                Email           = "*****@*****.**",
                NormalizedEmail = "*****@*****.**",
                EmailConfirmed  = true,
            };

            var professor_mary = new Playlist_1User
            {
                UserName           = "******",
                NormalizedUserName = "******",
                //Name = "Mary",
                Email           = "*****@*****.**",
                NormalizedEmail = "*****@*****.**",
                EmailConfirmed  = true,
            };

            var u0000000 = new Playlist_1User
            {
                UserName           = "******",
                NormalizedUserName = "******",
                //Name = "Mike",
                Email           = "*****@*****.**",
                NormalizedEmail = "*****@*****.**",
                EmailConfirmed  = true,
            };

            var u1234567 = new Playlist_1User
            {
                UserName           = "******",
                NormalizedUserName = "******",
                //Name = "Bob",
                Email           = "*****@*****.**",
                NormalizedEmail = "*****@*****.**",
                EmailConfirmed  = true,
            };

            var u0000001 = new Playlist_1User
            {
                UserName           = "******",
                NormalizedUserName = "******",
                //Name = "Bob",
                Email           = "*****@*****.**",
                NormalizedEmail = "*****@*****.**",
                EmailConfirmed  = true,
            };

            var u0000002 = new Playlist_1User
            {
                UserName           = "******",
                NormalizedUserName = "******",
                //Name = "Bob",
                Email           = "*****@*****.**",
                NormalizedEmail = "*****@*****.**",
                EmailConfirmed  = true,
            };

            var u0000003 = new Playlist_1User
            {
                UserName           = "******",
                NormalizedUserName = "******",
                //Name = "Bob",
                Email           = "*****@*****.**",
                NormalizedEmail = "*****@*****.**",
                EmailConfirmed  = true,
            };

            Playlist_1User[] users = new Playlist_1User[] { admin, professor, professor_mary, u0000000, u1234567, u0000001, u0000002, u0000003 };
            var userStore          = new UserStore <Playlist_1User>(context);

            foreach (var user in users)
            {
                if (!context.Users.Any(u => u.UserName == user.UserName))
                {
                    var password = new PasswordHasher <Playlist_1User>();
                    var hashed   = password.HashPassword(user, "qwerty");
                    user.PasswordHash = hashed;

                    userStore.CreateAsync(user).Wait();
                }
            }


            userStore.AddToRoleAsync(context.Users.AsNoTracking().FirstOrDefault(e => e.UserName == admin.UserName), "ADMINISTRATOR").Wait();
            userStore.AddToRoleAsync(context.Users.AsNoTracking().FirstOrDefault(e => e.UserName == professor.UserName), "ROOMADMIN").Wait();
            userStore.AddToRoleAsync(context.Users.AsNoTracking().FirstOrDefault(e => e.UserName == professor_mary.UserName), "ROOMADMIN").Wait();
            userStore.AddToRoleAsync(context.Users.AsNoTracking().FirstOrDefault(e => e.UserName == u0000000.UserName), "SPEAKER").Wait();
            userStore.AddToRoleAsync(context.Users.AsNoTracking().FirstOrDefault(e => e.UserName == u1234567.UserName), "SPEAKER").Wait();
            userStore.AddToRoleAsync(context.Users.AsNoTracking().FirstOrDefault(e => e.UserName == u0000001.UserName), "REMOTE").Wait();
            userStore.AddToRoleAsync(context.Users.AsNoTracking().FirstOrDefault(e => e.UserName == u0000002.UserName), "REMOTE").Wait();
            userStore.AddToRoleAsync(context.Users.AsNoTracking().FirstOrDefault(e => e.UserName == u0000003.UserName), "REMOTE").Wait();

            context.SaveChanges();
        }