示例#1
2
        /// <summary>
        /// Create data in database
        /// </summary>
        /// <param name="userRole">Data</param>
        /// <returns>insert data</returns>
        public UserRole Create(UserRole userRole)
        {
            if (userRole == null || string.IsNullOrEmpty(userRole.UserId) || string.IsNullOrEmpty(userRole.RoleId))
                return null;

            var row = new IdentityUserRole<string>();
            UserRoleTransformer.ToRow(userRole, row);
            _dbContext.UserRoles.Add(row);
            _dbContext.SaveChanges();
            return UserRoleTransformer.ToBean(row);
        }
        private static Category<ObjectId> CreateCategory(string name
            , IdentityUserRole editRole, IdentityUserRole? viewRole
            , ObjectId? id = null, ObjectId? parentID = null)
        {
            var category = new Category<ObjectId>()
            {
                Name = name,
                Permissions = new List<KeyValuePair<int, string>>()
                {
                    new KeyValuePair<int, string>((int)CategoryPermission.Insert, editRole.ToString()),
                    new KeyValuePair<int, string>((int)CategoryPermission.Edit, editRole.ToString()),
                    new KeyValuePair<int, string>((int)CategoryPermission.Delete, editRole.ToString()),
                }
            };

            if (viewRole != null)
            {
                category.Permissions.Add(
                    new KeyValuePair<int, string>((int)CategoryPermission.View, viewRole.Value.ToString()));
            }

            category.CategoryID = id ?? ObjectId.GenerateNewId();
            category.ParentCategoryID = parentID;
            return category;
        }
        public override void Import(BGTouristGuideDbContext db)
        {
            PasswordHasher hasher = new PasswordHasher();

            User admin = new User
            {
                Email = "*****@*****.**",
                UserName = "******",
                FirstName = "Admin",
                LastName = "Admin",
                PasswordHash = hasher.HashPassword("admin"),
                RegistrationDate = DateTime.Now,
                SecurityStamp = Guid.NewGuid().ToString()
            };

            db.Users.Add(admin);

            IdentityUserRole adminRole = new IdentityUserRole();
            var dbadminRole = db.Roles.Where(r => r.Name == DatabaseConstants.AdminUserRole).FirstOrDefault();

            adminRole.UserId = admin.Id;
            adminRole.RoleId = dbadminRole.Id;

            dbadminRole.Users.Add(adminRole);

            db.SaveChanges();
        }
示例#4
0
        public User CreateUserAsClinicOwner(string username, string password)
        {
            var user = new User
            {
                UserName = username,
                Email = username,
                PasswordHash = new PasswordHasher().HashPassword(password),
                SecurityStamp = Guid.NewGuid().ToString()
            };

            var db = new VetSystemDbContext();

            var clinicOwnerRole = db.Roles.Where(r => r.Name == "ClinicOwner").FirstOrDefault();
            var role = new IdentityUserRole
            {
                RoleId = clinicOwnerRole.Id
            };

            this.users.Add(user);
            user.Roles.Add(role);
            db.Dispose();
            this.users.Save();

            return user;
        }
        public IdentityUserRole Convert()
        {
            var role = new IdentityUserRole();
            role.RoleId = this.RoleId;
            role.UserId = this.UserId;

            return role;
        }
示例#6
0
        public static bool IsRole(IdentityUserRole userRole, RoleId roleId)
        {
            if (userRole.RoleId == null)
                return false;

            var currRole = (RoleId) Enum.Parse(typeof(RoleId), userRole.RoleId);

            if (currRole == roleId)
                return true;

            return true;
        }
示例#7
0
 public ActionResult MemberToevoegen(string RoleId, string SelectUser)
 {
     ApplicationDbContext context = new ApplicationDbContext();
     var user = context.Users.FirstOrDefault(u => u.Id == SelectUser);
     var role = context.Roles.FirstOrDefault(r => r.Id == RoleId);
     if (user != null && role != null)
     {
         IdentityUserRole userrole = new IdentityUserRole();
         userrole.RoleId = RoleId; userrole.UserId = SelectUser;
         user.Roles.Add(userrole); context.SaveChanges();
     }
     return RedirectToAction("RoleDetail", "User", new { id = RoleId });
 }
示例#8
0
        public ActionResult Promote(String id)
        {
            try
            {
                String roleIdAdmin = (from role in db.Roles
                                      where role.Name == "Administrator"
                                      select role.Id).SingleOrDefault();


                String roleId = (from role in db.Roles
                                 where role.Name == "Moderator"
                                 select role.Id).Single();

                var rol = (from roles in db.UserRoles
                           where roles.UserId == id
                           select roles).FirstOrDefault();

                if (roleIdAdmin == rol.RoleId)
                {
                    TempData["errorDemote"] = "true";
                    return(RedirectToAction("ListUsers"));
                }


                Debug.WriteLine(rol.UserId);

                db.UserRoles.Remove(rol);

                IdentityUserRole identity = new IdentityUserRole {
                    UserId = id, RoleId = roleId
                };

                db.UserRoles.Add(identity);

                db.SaveChanges();
                String          currentUserId = User.Identity.GetUserId();
                ApplicationUser currentUser   = db.Users.FirstOrDefault(x => x.Id == currentUserId);
                var             roleName      = (from userroles in db.UserRoles
                                                 join roles in db.Roles on userroles.RoleId equals roles.Id
                                                 where userroles.UserId == currentUserId
                                                 select roles.Name).FirstOrDefault();
                ViewBag.roleAccount = roleName;
            }
            catch (Exception e)
            {
                Debug.WriteLine("An error occured: " + e);
            }

            return(RedirectToAction("ListUsers"));
        }
        public ActionResult VerwijderMemberFromRole(string userid, string roleid)
        {
            var user = context.Users.FirstOrDefault(u => u.Id == userid);
            var role = context.Roles.FirstOrDefault(r => r.Id == roleid);

            if (user != null && role != null)
            {
                IdentityUserRole userrole = user.Roles.SingleOrDefault(ur => (ur.UserId == userid && ur.RoleId == roleid));
                user.Roles.Remove(userrole);
                context.SaveChanges();
            }

            return(RedirectToAction("RoleDetail", "User", new { id = roleid }));
        }
示例#10
0
 public bool AddUserRole(IdentityUserRole <string> userRole)
 {
     try
     {
         var res = _context.UserRoles.Add(userRole);
         _context.SaveChanges();
         return(true);
     }
     catch (Exception e)
     {
         _logger.LogError(e, "Failed to connect to the database server to add user  role");
         return(false);
     }
 }
        /// <summary>
        /// Własna implementacja usuwania użytkownika o danej roli
        /// </summary>
        /// <param name="user"></param>
        /// <param name="role"></param>
        /// <returns></returns>
        private async Task <bool> DeleteRoleAsync(User user, int roleId)
        {
            var userRole = new IdentityUserRole <int>
            {
                UserId = user.Id,
                RoleId = roleId
            };

            _context.UserRoles.Remove(userRole);
            await _context.SaveChangesAsync();


            return(true);
        }
示例#12
0
        public async Task <IActionResult> Edit(int id, [Bind("ID,Ime,Priimek,Naslov,Telefon,DatumRojstva,DatumZaposlitve,Spol,Kadrovanje")] Zaposlen zaposlen)
        {
            if (id != zaposlen.ID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                { IdentityRole role;
                  if (zaposlen.Kadrovanje)
                  {
                      role = await _context.Roles.FirstOrDefaultAsync(m => m.Name == "Manager");
                  }
                  else
                  {
                      role = await _context.Roles.FirstOrDefaultAsync(m => m.Name == "Worker");
                  }
                  var user = await _context.Users.FirstOrDefaultAsync(m => m.Zaposlen.ID == id);

                  var userRole = await _context.UserRoles.FirstOrDefaultAsync(m => m.UserId == user.Id);

                  if (userRole != null)
                  {
                      _context.UserRoles.Remove(userRole);
                  }
                  var userRoleNew = new IdentityUserRole <string> {
                      UserId = user.Id, RoleId = role.Id
                  };
                  _context.UserRoles.Add(userRoleNew);


                  _context.Update(zaposlen);
                  await _context.SaveChangesAsync(); }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ZaposlenExists(zaposlen.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(zaposlen));
        }
示例#13
0
        public async Task <IActionResult> Index()
        {
            IEnumerable <ApplicationUser> userList = await _unitOfWork.ApplicationUser.GetAllAsync();

            IEnumerable <ApplicationUser> searchUserList = _unitOfWork.ApplicationUser.Search(SearchTerm);

            var userRole = _unitOfWork.ApplicationUser.UserRole();
            var roles    = _unitOfWork.ApplicationUser.Role();

            foreach (var user in userList)
            {
                IdentityUserRole <string> first = null;
                foreach (var u in userRole)
                {
                    if (u.UserId == user.Id)
                    {
                        first = u;
                        break;
                    }
                }

                var          roleId = first.RoleId;
                IdentityRole first1 = null;
                foreach (var r in roles)
                {
                    if (r.Id == roleId)
                    {
                        first1 = r;
                        break;
                    }
                }

                user.Role = first1.Name;
            }

            UserVM userVm = new UserVM()
            {
                ApplicationUser = userList,
                SearchTerm      = SearchTerm
            };

            if (userVm.SearchTerm != null)
            {
                userVm.ApplicationUser = searchUserList;
                return(View(userVm));
            }

            return(View(userVm));
        }
示例#14
0
        public Dictionary <string, object> MakeAdminUser(string userId, string adminId)
        {
            var flag = false;

            if (userId != adminId)
            {
                var userRoleId = this.context.Roles.FirstOrDefault(r => r.Name == "User").Id;
                var userRole   = this.context.UserRoles.FirstOrDefault(ur => ur.UserId == userId);
                if (userRole == null)
                {
                    userRole        = new IdentityUserRole <string>();
                    userRole.UserId = userId;
                    userRole.RoleId = userRoleId;

                    this.context.UserRoles.Add(userRole);
                    this.context.SaveChanges();
                }
                else
                {
                    this.context.UserRoles.Remove(userRole);
                    var newUserRole = new IdentityUserRole <string>();
                    newUserRole.UserId = userId;
                    newUserRole.RoleId = userRoleId;

                    this.context.UserRoles.Add(newUserRole);
                    this.context.SaveChanges();
                }

                flag = true;
            }
            AllUsersViewModel model = new AllUsersViewModel();

            var returnMoodel = this.GetUsers(model);
            Dictionary <string, object> result = new Dictionary <string, object>();

            result.Add("model", result);
            if (flag == true)
            {
                result.Add("message", "Успешно променени права на потребител!");
                var message = $"Вашите права бяха променени на потребителски!";
                this.notificationService.AddNotificationAtDB(userId, message);
            }
            else
            {
                result.Add("message", "Не може да променяте собствените си права!");
            }

            return(result);
        }
示例#15
0
        protected override void Seed(Twitter.Data.TwitterDbContext context)
        {
            if (!context.Roles.Any())
            {
                context.Roles.Add(new IdentityRole {
                    Name = "Administrator"
                });
                context.SaveChanges();
            }

            if (!context.Users.Where(u => u.UserName == "*****@*****.**").Any())
            {
                var admin = new ApplicationUser
                {
                    UserName      = "******",
                    Email         = "*****@*****.**",
                    PasswordHash  = new PasswordHasher().HashPassword("admin"),
                    SecurityStamp = Guid.NewGuid().ToString()
                };

                context.Users.Add(admin);

                var role      = context.Roles.Where(r => r.Name == "Administrator").FirstOrDefault();
                var adminRole = new IdentityUserRole
                {
                    RoleId = role.Id
                };

                admin.Roles.Add(adminRole);
                context.SaveChanges();
            }

            if (!context.Users.Where(u => u.UserName == "*****@*****.**").Any())
            {
                for (int i = 1; i <= 2; i++)
                {
                    var user = new ApplicationUser
                    {
                        UserName      = $"user{i}@site.com",
                        Email         = $"user{i}@site.com",
                        PasswordHash  = new PasswordHasher().HashPassword($"user{i}"),
                        SecurityStamp = Guid.NewGuid().ToString()
                    };

                    context.Users.Add(user);
                    context.SaveChanges();
                }
            }
        }
示例#16
0
        private async Task SeedUsersAndRoles(ApplicationDbContext context)
        {
            var adminRole = new ApplicationRole
            {
                Id   = "adminRoleId",
                Name = GlobalConstants.AdministratorRoleName,
            };

            var userRole = new ApplicationRole
            {
                Id   = "userRoleId",
                Name = GlobalConstants.UserRoleName,
            };

            var userOne = new ApplicationUser
            {
                Id       = "userOneId",
                UserName = "******",
            };

            var userTwo = new ApplicationUser
            {
                Id         = "userTwoId",
                UserName   = "******",
                LockoutEnd = DateTimeOffset.UtcNow.AddYears(100),
            };

            await context.Users.AddRangeAsync(userOne, userTwo);

            await context.Roles.AddRangeAsync(adminRole, userRole);

            await context.SaveChangesAsync();

            var adminUserRole = new IdentityUserRole <string>
            {
                UserId = "userOneId",
                RoleId = "adminRoleId",
            };

            var userUserRole = new IdentityUserRole <string>
            {
                UserId = "userTwoId",
                RoleId = "userRoleId",
            };

            await context.UserRoles.AddRangeAsync(adminUserRole, userUserRole);

            await context.SaveChangesAsync();
        }
        public void RemoveFromRole(ApplicationUserDto user, string roleName)
        {
            var role = Context.Set <IdentityRole>().SingleOrDefault(r => r.Name == roleName);

            if (role != null)
            {
                var roleToDelete = new IdentityUserRole <string>
                {
                    RoleId = role.Id,
                    UserId = user.Id
                };
                Context.Entry(roleToDelete).State = Microsoft.EntityFrameworkCore.EntityState.Deleted;
                SaveChanges();
            }
        }
示例#18
0
        public async Task <ActionResult> inserirFuncao(IdentityUserRole <string> userRole)
        {
            IdentityUserRole <string> alvo = dbContext.UserRoles.SingleOrDefault(u => u.UserId == userRole.UserId && u.RoleId == userRole.RoleId);

            if (ModelState.IsValid && alvo == null)
            {
                dbContext.UserRoles.Add(userRole);
                await dbContext.SaveChangesAsync();

                ModelState.Clear();
                return(GetUserToUpdate(userRole.UserId));
            }
            ViewData["Erro"] = "Já existe esta função para o usuário.";
            return(GetUserToUpdate(userRole.UserId));
        }
        public async Task <bool> RoleCheck(string id, string role)
        {
            string roleId = await db.Roles.Where(x => x.Name == role).Select(x => x.Id).FirstOrDefaultAsync();

            IdentityUserRole <string> ur = await db.UserRoles.Where(x => x.RoleId == roleId && x.UserId == id).FirstOrDefaultAsync();

            if (ur != null)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#20
0
        public ActionResult MemberToevoegen(string RoleId, string SelectUser)
        {
            var user = context.Users.FirstOrDefault(u => u.Id == SelectUser);
            var role = context.Roles.FirstOrDefault(r => r.Id == RoleId);

            if (user != null && role != null)
            {
                IdentityUserRole userrole = new IdentityUserRole();
                userrole.RoleId = RoleId;
                userrole.UserId = SelectUser;
                user.Roles.Add(userrole);
                context.SaveChanges();
            }
            return(RedirectToAction("RoleDetail", "User", new { id = RoleId }));
        }
示例#21
0
        public void DemoteUser(string id)
        {
            var record = _context.UserRoles.FirstOrDefault(x => x.UserId == id);

            if (record != null)
            {
                _context.UserRoles.Remove(record);
                var userRole    = _context.Roles.Where(x => x.Name == "User").FirstOrDefault();
                var newUserRole = new IdentityUserRole <string> {
                    RoleId = userRole.Id, UserId = id
                };
                _context.UserRoles.Add(newUserRole);
                _context.SaveChanges();
            }
        }
示例#22
0
        public async Task DeleteUser(string id)
        {
            var record = _context.UserRoles.FirstOrDefault(x => x.UserId == id);

            if (record != null)
            {
                _context.UserRoles.Remove(record);
                var inactiveRole = _context.Roles.Where(x => x.Name == "Inactive").FirstOrDefault();
                var newUserRole  = new IdentityUserRole <string> {
                    RoleId = inactiveRole.Id, UserId = id
                };
                _context.UserRoles.Add(newUserRole);
                await _context.SaveChangesAsync();
            }
        }
        private static void AddUserRoles(ApplicationDbContext dbContext)
        {
            if (dbContext.UserRoles.Any())
            {
                return;
            }
            var userRole = new IdentityUserRole <string>
            {
                UserId = dbContext.Users.Single(r => r.Email == AdminEmail).Id,
                RoleId = dbContext.Roles.Single(r => r.Name == ApplicationRoles.Admin).Id
            };

            dbContext.UserRoles.Add(userRole);
            dbContext.SaveChanges();
        }
示例#24
0
 private void RemoveUserToRole(TARUser tARUser, string RoleName)
 {
     using (var scope = new TransactionScope())
     {
         IdentityUserRole userRole = new IdentityUserRole();
         IdentityRole     role     = _unitOfWork.RoleRepository.GetWithInclude(m => m.Name == RoleName, "Users").First();
         userRole = tARUser.Roles.FirstOrDefault(m => m.RoleId == role.Id);
         if (userRole != null)
         {
             role.Users.Remove(userRole);
         }
         _unitOfWork.Save();
         scope.Complete();
     }
 }
        public async Task <IHttpActionResult> PutApplicationUser(AppUserViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (viewModel.Id == null)
            {
                return(BadRequest());
            }
            // IdentityResult result = await manager.UpdateAsync(applicationUser);
            db      = Request.GetOwinContext().Get <SecurityDbContext>();
            manager = Request.GetOwinContext().Get <ApplicationUserManager>(); ApplicationUser user = manager.FindByEmail(viewModel.Email);

            user.Id             = viewModel.Id;
            user.Email          = viewModel.Email;
            user.FirstName      = viewModel.FirstName;
            user.LastName       = viewModel.LastName;
            user.IsActive       = true;
            user.EmailConfirmed = true;
            user.PhoneNumber    = viewModel.PhoneNumber;
            user.ShopId         = viewModel.ShopId;
            user.UserName       = viewModel.Email;

            db.Entry(user).State = EntityState.Modified;

            try
            {
                IdentityUserRole entity = db.ApplicationUserRoles.FirstOrDefault(x => x.UserId == user.Id);
                db.ApplicationUserRoles.Remove(entity);
                db.SaveChanges();
                var identityUserRole = db.ApplicationUserRoles.Add(new IdentityUserRole {
                    RoleId = viewModel.RoleId, UserId = user.Id
                });
                int i = await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ApplicationUserExists(user.Id))
                {
                    return(NotFound());
                }
                throw;
            }

            return(Ok(user));
        }
示例#26
0
        public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            using (UserManager <IdentityUser> userManager = _userManagerFactory()) {
                IdentityUser user = await userManager.FindAsync(context.UserName, context.Password);

                WVCUserManager   wvcUserManager  = new WVCUserManager();
                IdentityManager  identityManager = new IdentityManager();
                wvc_user         wvcUser         = null;
                IdentityUserRole userRole        = null;
                IdentityRole     role            = null;

                if (user == null)
                {
                    context.SetError("invalid_grant", "The user name or password is incorrect.");
                    return;
                }
                else
                {
                    userRole = user.Roles.FirstOrDefault();
                    if (userRole == null)
                    {
                        context.SetError("invalid_grant", "The user is inactive (no rules assigned). Contact administrator.");
                        return;
                    }
                    role = identityManager.GetRoleById(userRole.RoleId);
                    // check wvc user active;
                    wvcUser = wvcUserManager.FindUser(user.Id);
                    if (wvcUser == null)
                    {
                        context.SetError("invalid_grant", "The user is inactive. Contact administrator.");
                        return;
                    }
                }

                // Add claims
                ClaimsIdentity oAuthIdentity = await userManager.CreateIdentityAsync(user, context.Options.AuthenticationType);

                oAuthIdentity.AddClaim(new Claim(Authentication.IDKey, wvcUser.id.ToString()));
                oAuthIdentity.AddClaim(new Claim(Authentication.RoleKey, role.Name));

                ClaimsIdentity cookiesIdentity = await userManager.CreateIdentityAsync(user, CookieAuthenticationDefaults.AuthenticationType);

                AuthenticationProperties properties = CreateProperties(user, role, wvcUser);
                AuthenticationTicket     ticket     = new AuthenticationTicket(oAuthIdentity, properties);
                context.Validated(ticket);
                context.Request.Context.Authentication.SignIn(cookiesIdentity);
            }
        }
        public async Task GetAppointmentRequestsForTrainerShouldNotThrow()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString()).Options;
            var db = new ApplicationDbContext(options);
            var appointmentsRepository = new EfDeletableEntityRepository <Appointment>(db);
            var usersRepository        = new EfDeletableEntityRepository <ApplicationUser>(db);
            var notificationsService   = new Mock <INotificationsService>();

            var service = new AppointmentsService(
                appointmentsRepository,
                usersRepository,
                notificationsService.Object);

            var client       = new ApplicationUser();
            var trainer      = new ApplicationUser();
            var role         = new ApplicationRole(GlobalConstants.TrainerRoleName);
            var identityRole = new IdentityUserRole <string>()
            {
                RoleId = role.Id,
                UserId = trainer.Id,
            };

            trainer.Roles.Add(identityRole);

            await usersRepository.AddAsync(trainer);

            await usersRepository.AddAsync(client);

            await usersRepository.SaveChangesAsync();

            var inputModel = new AddAppointmentInputModel()
            {
                StartTime  = DateTime.UtcNow,
                EndTime    = DateTime.UtcNow.AddDays(2),
                ClientId   = client.Id,
                TrainerId  = trainer.Id,
                IsApproved = true,
                Notes      = "Plamen",
                Type       = AppointmentType.Consultation,
            };

            var appointment = await service.AddAppoinmentAsync(inputModel);

            var result = await service.GetAppointmentRequestsForTrainer <TestAppointmentModel>(trainer.Id);

            Assert.Empty(result);
        }
示例#28
0
        public async Task <IHttpActionResult> Register(VozacBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            //string[] s = Roles.GetAllRoles();

            Polovi           p; Enum.TryParse(model.Pol, out p);
            TipoviAutomobila t; Enum.TryParse(model.TipAutomobila, out t);
            Automobil        automobil = new Automobil(int.Parse(model.BrojTaksiVozila), int.Parse(model.GodisteAutomobila), model.KorisnickoIme, model.BrojRegistarskeOznake, t);

            DataBase.automobili.Add(automobil.BrojTaksiVozila, automobil);
            Vozac m = new Vozac()
            {
                KorisnickoIme  = model.KorisnickoIme,
                Ime            = model.Ime,
                Prezime        = model.Prezime,
                Lozinka        = model.Password,
                Pol            = p,
                Jmbg           = model.Jmbg,
                KontaktTelefon = model.KontaktTelefon,
                Email          = model.Email,
                Uloga          = Uloge.Vozac,
                VoznjeID       = new List <int>(),
                AutomobilID    = automobil.BrojTaksiVozila
            };

            DataBase.Korisnici.Add(m.KorisnickoIme, m);

            var user = new ApplicationUser()
            {
                UserName = m.KorisnickoIme, Email = m.Email, PhoneNumber = m.KontaktTelefon
            };
            IdentityUserRole r = new IdentityUserRole();

            r.UserId = user.Id;
            r.RoleId = "2";
            user.Roles.Add(r);
            IdentityResult result = await UserManager.CreateAsync(user, model.Password);

            if (!result.Succeeded)
            {
                return(GetErrorResult(result));
            }

            return(Ok());
        }
示例#29
0
        public async Task SeedAsync(ApplicationDbContext ctx)
        {
            if (ctx.Users.Any())
            {
                return;
            }

            var roles = GetDefaultRoles();

            ctx.Roles.AddRange(roles);
            await ctx.SaveChangesAsync();

            var position = new Position
            {
                Name     = SystemPositions.LABOR_SAFETY_OFFICER,
                IsSystem = false
            };

            ctx.Positions.Add(position);
            await ctx.SaveChangesAsync();

            var user = new User
            {
                Id                 = "308872d9-b307-490b-97f5-cae0e1766bfd",
                UserName           = "******",
                NormalizedUserName = "******",
                Email              = "*****@*****.**",
                NormalizedEmail    = "*****@*****.**",
                FirstName          = "Admin",
                LastName           = "Pcholka",
                PositionId         = position.Id,
                SecurityStamp      = Guid.NewGuid().ToString("D")
            };

            user.PasswordHash = _hasher.HashPassword(user, "admin");

            ctx.Users.Add(user);
            await ctx.SaveChangesAsync();

            var userRole = new IdentityUserRole <string>
            {
                UserId = user.Id,
                RoleId = ctx.Roles.Single(x => x.Name == Roles.ADMIN).Id
            };

            ctx.UserRoles.Add(userRole);
            await ctx.SaveChangesAsync();
        }
        private void SeedDb()
        {
            this.TruncateRolesTable();
            this.TruncateUserRolesTable();
            this.TruncateUsersTable();

            var user = new ForumUser {
                Id = TestsConstants.TestId, UserName = TestsConstants.TestUsername1
            };
            var secondUser = new ForumUser {
                Id = TestsConstants.TestId1, UserName = TestsConstants.TestUsername2
            };
            var thirdUser = new ForumUser {
                Id = TestsConstants.TestId2, UserName = TestsConstants.TestUsername3
            };

            this.dbService.DbContext.Users.Add(user);
            this.dbService.DbContext.Users.Add(secondUser);
            this.dbService.DbContext.Users.Add(thirdUser);
            this.dbService.DbContext.SaveChanges();

            var ownerRole = new IdentityRole {
                Id = TestsConstants.TestId1, Name = Common.Role.Owner
            };
            var adminRole = new IdentityRole {
                Id = TestsConstants.TestId2, Name = Common.Role.Administrator
            };
            var userRole = new IdentityRole {
                Id = TestsConstants.TestId3, Name = Common.Role.User
            };

            this.dbService.DbContext.Roles.Add(ownerRole);
            this.dbService.DbContext.Roles.Add(adminRole);
            this.dbService.DbContext.Roles.Add(userRole);
            this.dbService.DbContext.SaveChanges();

            for (int i = 0; i < this.dbService.DbContext.Users.Count(); i++)
            {
                var currentRoleId = this.dbService.DbContext.Roles.ToList()[i].Id;
                var currentuserId = this.dbService.DbContext.Users.ToList()[i].Id;

                var newUserRole = new IdentityUserRole <string> {
                    RoleId = currentRoleId, UserId = currentuserId
                };
                this.dbService.DbContext.UserRoles.Add(newUserRole);
                this.dbService.DbContext.SaveChanges();
            }
        }
示例#31
0
        internal static void AddRoleToUser(OnlineStoreDbContext dbContext, User user, IdentityRole role)
        {
            dbContext.Users.Add(user);
            dbContext.Roles.Add(role);
            dbContext.SaveChanges();

            var dbUserRole = new IdentityUserRole <string>()
            {
                UserId = user.Id,
                RoleId = role.Id
            };

            dbContext.UserRoles.Add(dbUserRole);

            dbContext.SaveChanges();
        }
        public void Configure(EntityTypeBuilder <IdentityUserRole <string> > builder)
        {
            IdentityUserRole <string> iur = new IdentityUserRole <string>
            {
                RoleId = Constants.AdminRoleId,
                UserId = Constants.AdminUserId
            };

            IdentityUserRole <string> vur = new IdentityUserRole <string>
            {
                RoleId = Constants.VisitorRoleId,
                UserId = Constants.VisitorUserId
            };

            builder.HasData(iur, vur);
        }
示例#33
0
        public void Configure(EntityTypeBuilder <IdentityUserRole <Guid> > builder)
        {
            IdentityUserRole <Guid> adminInRole = new IdentityUserRole <Guid>
            {
                RoleId = RoleConfiguration.administratorRoleId,
                UserId = UsersSeedConfiguration.adminId
            };

            IdentityUserRole <Guid> managerInRole = new IdentityUserRole <Guid>
            {
                RoleId = RoleConfiguration.managerRoleId,
                UserId = UsersSeedConfiguration.managerId
            };

            builder.HasData(adminInRole, managerInRole);
        }
示例#34
0
        public static bool IsRole(IdentityUserRole userRole, RoleId roleId)
        {
            if (userRole.RoleId == null)
            {
                return(false);
            }

            var currRole = (RoleId)Enum.Parse(typeof(RoleId), userRole.RoleId);

            if (currRole == roleId)
            {
                return(true);
            }

            return(true);
        }
示例#35
0
        public IActionResult Remove(RoleDTO role)
        {
            if (this.User != null && this.User.Identity.IsAuthenticated)
            {
                IdentityUserRole <int> userRole = new IdentityUserRole <int>()
                {
                    RoleId = role.RoleId,
                    UserId = role.UserId
                };

                this.context.UserRoles.Remove(userRole);
                this.context.SaveChanges();
            }

            return(RedirectToAction(nameof(Index)));
        }
示例#36
0
 private void AddUserToRole(TARUser tARUser, string RoleName)
 {
     using (var scope = new TransactionScope())
     {
         IdentityUserRole userRole = new IdentityUserRole();
         string           roleid   = _unitOfWork.RoleRepository.GetFirst(m => m.Name == RoleName)?.Id;
         userRole.RoleId = roleid;
         userRole.UserId = tARUser.Id;
         if (!tARUser.Roles.Any(m => m.RoleId == roleid))
         {
             tARUser.Roles.Add(userRole);
         }
         _unitOfWork.Save();
         scope.Complete();
     }
 }
示例#37
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            ApplicationDbContext db = new ApplicationDbContext();

            returnUrl = returnUrl ?? Url.Content("~/");
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = Input.Email, Email = Input.Email,
                    Ime      = Input.Ime, Prezime = Input.Prezime, DatumRodjenja = Input.DatumRodjenja,
                    Adresa   = Input.Adresa, brojTelefona = Input.brojTelefona, GradID = Input.GradID
                };
                var result = await _userManager.CreateAsync(user, Input.Password);

                if (result.Succeeded)
                {
                    var userRole = new IdentityUserRole <int>();
                    userRole.UserId = user.Id;
                    userRole.RoleId = 2;
                    db.UserRoles.Add(userRole);
                    db.SaveChanges();
                    db.Dispose();
                    _logger.LogInformation("User created a new account with password.");

                    //var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
                    //var callbackUrl = Url.Page(
                    //    "/Account/ConfirmEmail",
                    //    pageHandler: null,
                    //    values: new { userId = user.Id, code = code },
                    //    protocol: Request.Scheme);

                    //await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
                    //    $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

                    await _signInManager.SignInAsync(user, isPersistent : false);

                    return(LocalRedirect(returnUrl));
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            // If we got this far, something failed, redisplay form
            return(Page());
        }
        public IHttpActionResult AddRole(string username, RoleBindingModel roleBinding)
        {
            var user = this.Data.Users.Read().FirstOrDefault(u => u.UserName == username);
            if (user == null)
            {
                return this.NotFound();
            }

            if (roleBinding == null)
            {
                return this.BadRequest("Role is null.");
            }

            if (!this.ModelState.IsValid)
            {
                return this.BadRequest(this.ModelState);
            }

            var role = this.Data.Roles.Read().FirstOrDefault(r => r.Name == roleBinding.Name);
            if (role == null)
            {
                role = new IdentityRole
                           {
                               Name = roleBinding.Name
                           };

                this.Data.Roles.Create(role);
                this.Data.SaveChanges();
            }

            var userRole = role.Users.FirstOrDefault(r => r.UserId == user.Id);
            if (userRole == null)
            {
                userRole = new IdentityUserRole
                               {
                                   UserId = user.Id, 
                                   RoleId = role.Id
                               };

                role.Users.Add(userRole);
            }

            this.Data.SaveChanges();

            return this.Ok();
        }
        public IHttpActionResult AddRole(string username, IdentityRole roleToAdd)
        {
            string loggedUserId = this.userIdProvider.GetUserId();
            var existingUser = this.data
                .Users
                .All()
                .FirstOrDefault(u => u.UserName == username);

            if (existingUser == null)
            {
                return this.BadRequest("User does not exist - invalid username.");
            }

            var loggedUser = this.data.Users.Find(loggedUserId);
            if (loggedUser == null)
            {
                return this.BadRequest("Invalid session token.");
            }

            var role = this.data
                .Roles
                .All()
                .FirstOrDefault(r => r.Name == roleToAdd.Name);

            if (role == null)
            {
                role = new IdentityRole
                {
                    Name = roleToAdd.Name
                };

                this.data.Roles.Add(role);
            }

            IdentityUserRole userRole = new IdentityUserRole
            {
                UserId = existingUser.Id,
                RoleId = role.Id
            };

            existingUser.Roles.Add(userRole);
            this.data.Save();

            return this.Ok();
        }
示例#40
0
        // GET: Users/Delete/5
        public ActionResult Delete(string id,string username)
        {
            var user = db.Users.Where(r => r.UserName.Equals(username)).FirstOrDefault();

            var role = db.Roles.Where(r => r.Name.Equals(id)).FirstOrDefault();
            var userRole = new IdentityUserRole();

            foreach(IdentityUserRole tempIdRole in user.Roles)
            {
                if(tempIdRole.RoleId == role.Id)
                {
                    userRole = tempIdRole;
                    break;
                }
            }

            user.Roles.Remove(userRole);
            db.SaveChanges();
            ViewBag.ResultMessage = "User Deleted";
            return View("Index", db.Users.ToList());
        }
示例#41
0
        protected void CreateUser_Click(object sender, EventArgs e)
        {
            var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();
            var signInManager = Context.GetOwinContext().Get<ApplicationSignInManager>();
            var user = new User() { UserName = Email.Text, Email = Email.Text, FirstName = FirstName.Text, LastName = LastName.Text, Country = Country.Text, About = About.Text };
            var role = this.Data.Roles.FirstOrDefault(x => x.Name == "User");
            var userRole = new IdentityUserRole() { RoleId = role.Id, UserId = user.Id };
            user.Roles.Add(userRole);
            IdentityResult result = manager.Create(user, Password.Text);
            if (result.Succeeded)
            {
                // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
                //string code = manager.GenerateEmailConfirmationToken(user.Id);
                //string callbackUrl = IdentityHelper.GetUserConfirmationRedirectUrl(code, user.Id, Request);
                //manager.SendEmail(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>.");

                signInManager.SignIn(user, isPersistent: false, rememberBrowser: false);
                IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);
            }
            else
            {
                ErrorMessage.Text = result.Errors.FirstOrDefault();
            }
        }
 public ActionResult Update(string Role_Id, string User_Id)
 {
     var user = db.Users.Find(User_Id);
     try
     {
         var userRole = user.Roles.Single(p => p.RoleId == Role_Id);
         user.Roles.Remove(userRole);
         return Content("Remove");
     }
     catch
     {
         var userRole = new IdentityUserRole
         {
             RoleId = Role_Id,
             UserId = User_Id
         };
         user.Roles.Add(userRole);
         return Content("Add");
     }
     finally
     {
         db.SaveChanges();
     }
 }
示例#43
0
        /// <summary>
        /// Método para agregar un usuario a un rol
        /// </summary>
        /// <param name="nombreRol"></param>
        /// <param name="userName"></param>
        /// <param name="mensaje"></param>
        /// <returns>devuelve verdadero si se agrega correctamente y falso si existen algún tipo de error.
        /// Si existe algún error, el error queda registrado en el mensaje.</returns>
        public bool AgregarUsuarioARol(string nombreRol, string userName, out string mensaje)
        {
            using (ApplicationDbContext db = new ApplicationDbContext())
            {
                IdentityUser usuario = db.Users.Where(x => x.UserName == userName).FirstOrDefault();
                if (usuario == null)
                {
                    mensaje = "No se ha encontrado el usuario";
                    db.Dispose();
                    return false;
                }
                IdentityRole rol = db.Roles.Where(x => x.Name == nombreRol).FirstOrDefault();
                if (rol == null)
                {
                    mensaje = "No se ha encontrado el rol";
                    db.Dispose();
                    return false;
                }

                IdentityUserRole<string> usuarioRol = new IdentityUserRole<string>
                {
                    RoleId = rol.Id,
                    UserId = usuario.Id
                };

                db.UserRoles.Add(usuarioRol);
                db.SaveChanges();
                mensaje = "Operación realizada con éxito";
                db.Dispose();
                return true;

            }

        }
示例#44
0
 public RoleView( IdentityUserRole Role )
     : base(Guid.Parse( Role.RoleId ))
 {
     this.Name = Role.Role.Name;
 }
        public async Task<ActionResult> Edit([Bind(Include = "UserName,Email,Id")]EditUserRoleViewModel editUser, params string[] selectedRole)
        {
            if (ModelState.IsValid)
            {
                var user = await _userManager.FindByIdAsync(editUser.Id);
                if (user == null)
                {
                    return HttpNotFound();
                }
                //不允许修改用户名
                user.Email = editUser.Email;
                //更新用户信息
                var result = await _userManager.UpdateAsync(user);
                if (!result.Succeeded)
                {
                    ModelState.AddModelError("", result.Errors.First());
                    return View();
                }
                //更新角色
                //删除现有角色
                var userRoles = user.Roles.ToList();
                userRoles.ForEach(t => _db.Set<IdentityUserRole>().Remove(t));

                //添加所选角色
                selectedRole = selectedRole ?? new string[] { };
                selectedRole.Each(roleId =>
                {
                    var userRole = new IdentityUserRole { RoleId = roleId, UserId = user.Id };
                    _db.Set<IdentityUserRole>().Add(userRole);
                });
                _db.SaveChanges();
                return RedirectToAction("Index");
            }
            ModelState.AddModelError("", "操作失败。");
            return View();
        }
 public void StoreSetup()
 {
     Guid userIdentifier = Guid.NewGuid();
     this.fakeUserFromDb = new IdentityUser
                               {
                                   Id = userIdentifier,
                                   EmailAddress = RandomData.GetEmailAddress(),
                                   PasswordHash =
                                       RandomData.GetString(18, 24, RandomData.StringIncludes.Lowercase | RandomData.StringIncludes.Numbers) + "==",
                                   FirstName = RandomData.GetStringPersonFirstName(),
                                   LastName = RandomData.GetStringPersonLastName(),
                                   IsConfirmed = true,
                                   CreatedDate = RandomData.GetDateTimeInPast(),
                                   SecurityStamp = Guid.NewGuid().ToString("D"),
                                   Logins =
                                       new List<IdentityUserLogin>
                                           {
                                               new IdentityUserLogin
                                                   {
                                                       LoginProvider = "Yahoo",
                                                       ProviderKey = RandomData.GetStringNumber(18),
                                                       UserId = userIdentifier
                                                   }
                                           },
                                   Roles = new List<IdentityUserRole>(),
                                   Claims =
                                       new List<IdentityUserClaim>
                                           {
                                               new IdentityUserClaim
                                                   {
                                                       ClaimId = RandomData.GetInteger(1000, 9999),
                                                       ClaimType = "FavoriteActress",
                                                       ClaimValue = "Sandra Bullock",
                                                       UserId = userIdentifier
                                                   }
                                           }
                               };
     List<IdentityUser> userList = new List<IdentityUser> { this.fakeUserFromDb };
     var role = new IdentityUserRole { RoleId = RandomData.GetInteger(1000, 9999), RoleName = RandomData.GetStringWord(), Users = userList };
     this.fakeUserFromDb.Roles.Add(role);
     this.dbHelperMock = new Mock<ISecurityDataHelper>();
     this.dbHelperMock.Setup(mock => mock.GetUserAggregate(It.IsAny<Expression<Func<IdentityUser, bool>>>()))
         .Returns<Expression<Func<IdentityUser, bool>>>(predicate => userList.FirstOrDefault(predicate.Compile()));
     this.dbHelperMock.Setup(mock => mock.GetById<IdentityUser, Guid>(It.IsAny<Guid>())).Returns((Guid userId) => userList.FirstOrDefault(u => u.Id == userId));
     this.store = new IdentityStore<ApplicationUser>(this.dbHelperMock.Object);
 }
        public ActionResult Create(UserViewModel user)
        {
            if (ModelState.IsValid)
            {
                var hasher = new PasswordHasher();
                var hashedPassword = hasher.HashPassword(user.PasswordHash);

                var newUser = new User()
                {
                    UserName = user.UserName,
                    Email = user.Email,
                    EmailConfirmed = false,
                    PasswordHash = hashedPassword,
                    SecurityStamp = Guid.NewGuid().ToString(),
                    PhoneNumber = user.PhoneNumber,
                    PhoneNumberConfirmed = false,
                    TwoFactorEnabled = user.TwoFactorEnabled,
                    LockoutEnabled = true,
                    IsAdmin = user.IsAdmin,
                    ProtopopiateId = user.ProtopopiateId
                };

                if (newUser.IsAdmin)
                {
                    var roleId = this.Data.IdentityRoles
                        .All()
                        .FirstOrDefault(r => r.Name == "Admin")
                        .Id;

                    var identityUserRole = new IdentityUserRole()
                    {
                        RoleId = roleId,
                        UserId = newUser.Id
                    };
                    this.Data.IdentityUserRoles.Add(identityUserRole);
                }

                this.Data.Users.Add(newUser);
                this.Data.SaveChanges();

                return RedirectToAction("Index");
            }

            return View(user);
        }
        public ActionResult Edit(UserViewModel user)
        {
            if (ModelState.IsValid)
            {
                var userFromDb = this.Data.Users
                    .All()
                    .FirstOrDefault(u => u.Id == user.Id);

                if (userFromDb.IsAdmin != user.IsAdmin)
                {
                    userFromDb.IsAdmin = user.IsAdmin;

                    var roleId = this.Data.IdentityRoles
                        .All()
                        .FirstOrDefault(r => r.Name == "Admin")
                        .Id;

                    if (user.IsAdmin)
                    {
                        var identityUserRole = new IdentityUserRole()
                        {
                            RoleId = roleId,
                            UserId = userFromDb.Id
                        };
                        this.Data.IdentityUserRoles.Add(identityUserRole);
                    }
                    else
                    {
                        var identityUserRoles = this.Data.IdentityUserRoles
                            .All()
                            .FirstOrDefault(r => r.RoleId == roleId && r.UserId == userFromDb.Id);

                        this.Data.IdentityUserRoles.Delete(identityUserRoles);
                    }
                }

                userFromDb.UserName = user.UserName;
                userFromDb.Email = user.Email;
                userFromDb.PhoneNumber = user.PhoneNumber;
                userFromDb.ProtopopiateId = user.ProtopopiateId;

                if (user.PasswordHash != "")
                {
                    var hasher = new PasswordHasher();
                    var hashedPassword = hasher.HashPassword(user.PasswordHash);

                    userFromDb.PasswordHash = hashedPassword;
                }
                this.Data.SaveChanges();

                return RedirectToAction("Index");
            }
            return View(user);
        }
 public static bool IsInRole(this IPrincipal principal, IdentityUserRole role)
 {
     return ClaimsUtility.GetCurrentUserRoles().Any(p => (IdentityUserRole)p == role);
 }
示例#50
0
        public async Task<ActionResult> Register(RegisterViewModel model, string Rol,string area)
        {
            EntitiesLogueo db;
            if (ModelState.IsValid)
            {
                db = new EntitiesLogueo();
                var user = new ApplicationUser { UserName = model.UserName, Email = model.Email ,PhoneNumber = area };
                IdentityUserRole iur = new IdentityUserRole();
                iur.RoleId = Rol;
                iur.UserId = user.Id;
                user.Roles.Add(iur);
                var result = await UserManager.CreateAsync(user, model.Password);
                if (result.Succeeded)
                {
                    await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);



                    // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
                    // Send an email with this link
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                    return RedirectToAction("Index", "Home");
                }
                AddErrors(result);
            }

            db = new EntitiesLogueo();
            ViewBag.Rol = new SelectList(db.AspNetRoles, "Id", "Name");
            GProyEntities bd = new GProyEntities();
            ViewBag.area = new SelectList(bd.Area.Select(a => a.name).ToList());
            // If we got this far, something failed, redisplay form
            return View(model);
        }
示例#51
0
 public bool IsUserInRole(string name, IdentityUserRole role)
 {
     var roles = getUserRoles(name);
     return roles.SingleOrDefault(r => r.RoleId == role.RoleId) != null;
 }
 public IdentityUserRoleWrapper(IdentityUserRole role)
 {
     this.RoleId = role.RoleId;
     this.UserId = role.UserId;
 }
        public ActionResult Edit([Bind(Include = "Id,Name,Lastname,Email,UserName,Roles,SkypeName")] ApplicationUser user, string roleId)
        {
            var roles = db.Users.Where(r => r.Id == user.Id).Select(r => r.Roles).ToList();
            var role1 = roles.ElementAt(0);
            var role2 = role1.ElementAt(0);
            var role = role2.RoleId;

            var currentRoleName = db.Roles.Where(r => r.Id == role).SingleOrDefault().Name;
            var newRoleName = db.Roles.Where(r => r.Id == roleId).SingleOrDefault().Name;

            if (currentRoleName == "Student")
            {
                ViewBag.RoleId = new SelectList(db.Roles.Where(x => x.Name == "Student"), "Id", "Name");
            }
            if (currentRoleName == "Admin")
            {
                ViewBag.RoleId = new SelectList(db.Roles.Where(x => x.Name == "Admin"), "Id", "Name");
            }
            if (currentRoleName == "Mentor" || currentRoleName == "Teacher")
            {
                ViewBag.RoleId = new SelectList(db.Roles.Where(x => x.Name == "Mentor" || x.Name == "Teacher"), "Id", "Name");
            }

            if (!CustomUserManager.CanChangeToRole(currentRoleName,newRoleName))
            {
                return View(user);
            }

            if (ModelState.IsValid)
            {
                var toSave = db.Users.Find(user.Id);
                toSave.Name = user.Name;
                toSave.Lastname = user.Lastname;
                toSave.Email = user.Email;
                toSave.SkypeName = user.SkypeName;
                toSave.Roles.Clear();


                //ovu "najbolju validaciju ikad" mijenjat u svakom slucaju, sad za sad neka stoji
                if (String.IsNullOrWhiteSpace(toSave.Email))
                    return Redirect("Edit?userId=" + user.Id);

                if (toSave.Email.Contains(" "))
                    return Redirect("Edit?userId=" + user.Id);

                if(toSave.Email.StartsWith("@bitcamp.ba"))
                    return Redirect("Edit?userId=" + user.Id);

                int count = toSave.Email.Split('@').Length;
                string userID = db.Users.Find(user.Id).ToString();
                if (count > 2 || toSave.Email.EndsWith("@bitcamp.ba") == false || String.IsNullOrWhiteSpace(toSave.Name) || String.IsNullOrWhiteSpace(toSave.Lastname))
                {
                    return Redirect("Edit?userId=" + user.Id);
                }

                IdentityUserRole newRole = new IdentityUserRole();
                newRole.RoleId = roleId;
                newRole.UserId = toSave.Id;
                toSave.Roles.Add(newRole);
              
                db.Entry(toSave).State = EntityState.Modified;
                db.SaveChanges();

                return RedirectToAction("Index");
            }
            return View(user);
        }
示例#54
0
        public async Task<ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
                var result = await UserManager.CreateAsync(user, model.Password);
                if (result.Succeeded)
                {
                    await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false);
                    
                    var userRole = new IdentityUserRole() {RoleId=Convert.ToString((int)ViewModels.Enums.Role.Customer),UserId=user.Id };
                    var cart = new Cart { CartItems = new List<CartItem>()};
                    var myUser = new User { Email = user.Email,Cart=cart };
                    myContext.Entry(cart).State = System.Data.Entity.EntityState.Added;
                    myContext.Carts.Add(cart);
                    db.Entry(userRole).State = System.Data.Entity.EntityState.Added;
                    user.Roles.Add(userRole);
                    myContext.Users.Add(myUser);
                    myContext.Entry(myUser).State = System.Data.Entity.EntityState.Added;
                    myContext.SaveChanges();
                    db.SaveChanges();
                    // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
                    // Send an email with this link
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                    return RedirectToAction("Index", "Home");
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return View(model);
        }
示例#55
0
        private IdentityUserRole PopulateRoleFromDataReader(SqlDataReader dr)
        {
            IdentityUserRole role = new IdentityUserRole();

            if (dr["RoleID"] != DBNull.Value)
            {
                role.RoleId = dr["RoleID"].ToString();
            }
            return role;
        }
        public async Task<ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new User { UserName = model.UserName, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName};
                
                var result = await UserManager.CreateAsync(user, model.Password);
                if (result.Succeeded)
                {
                    var dbContext = new Issues.Data.IssuesDbContext();
                    var role = user.UserName == "root" ? "Admin" : "Regular";
                    var newRole = dbContext.Roles.FirstOrDefault(r => r.Name == role);
                    if(newRole == null)
                    {
                        newRole = new IdentityRole(role);
                        dbContext.Roles.Add(newRole);
                        dbContext.SaveChanges();
                    }
                    var identityUserRole = new IdentityUserRole();
                    identityUserRole.UserId = user.Id;
                    identityUserRole.RoleId = newRole.Id;
                    newRole.Users.Add(identityUserRole);
                    dbContext.SaveChanges();
                    await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false);
                   
                    return RedirectToAction("Index", "Home");
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return View(model);
        }
        public ActionResult Kullanicilar(string Users, string RolList)
        {
            var role = new IdentityUserRole
            {
                RoleId = RolList,
                UserId = Users
            };

            if (role != null)
            {
                db.UserRoles.Add(role);
                db.SaveChanges();
            }

            ViewBag.RolList = new SelectList(db.Roles, "Id", "Name");
            ViewBag.Users = new SelectList(db.Users, "Id", "UserName");
            return View(db.Users.ToList());
        }
示例#58
0
 //public static bool UserIsInRole(this HttpContext httpContext, string role)
 //{
 //    if (httpContext == null) return false;
 //    if (httpContext.User == null) return false;
 //    var res = httpContext.User.IsInRole(role);
 //    return res;
 //}
 public static bool UserIsInRole(this HttpContext httpContext, IdentityUserRole role)
 {
     if (httpContext == null) return false;
     if (httpContext.User == null) return false;
     var res = (DependencyResolver.Current.GetService<IIdentityManager>()).IsUserInRole(httpContext.User.Identity.Name,role);
     return res;
 }
示例#59
0
 public string AddUserRole(string id, string value)
 {
     UserContext ctx = new UserContext();
     ApplicationUser user = ctx.Users.Find(id);
     //giver ikke mening endnu
     IdentityUserRole role = new IdentityUserRole();
     role.RoleId = value;
     role.UserId = id;
     user.Roles.Add(role);
     ctx.SaveChanges();
     return "done";
 }
示例#60
0
        public ActionResult Edit(string id, FormCollection collection)
        {
            try
            {
                // TODO: Add update logic here
                var user = db.Users.Where(r => r.UserName.Equals(id, StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault();
                var role = new IdentityRole();

                foreach(IdentityUserRole tempUserRole in user.Roles)
                {
                    if(collection["validRoles"] == tempUserRole.RoleId)
                    {
                        ViewBag.ResultMessage = "Role already added to the user";
                        return View("Index", db.Users.ToList());
                    }
                }

                foreach (IdentityRole tempRole in db.Roles)
                {
                    if (collection["validRoles"] == tempRole.Id)
                    {
                        role = tempRole;
                    }
                }

                var idRole = new IdentityUserRole()
                {
                    UserId = user.Id,
                    RoleId = role.Id
                };
                user.Roles.Add(idRole);

                if (collection["LockoutEnabled"] == "true,false")
                {
                    user.LockoutEnabled = true;
                }
                else
                {
                    user.LockoutEnabled = false;
                }

                db.SaveChanges();
                return View("Index", db.Users.ToList());
            }
            catch
            {
                //ViewBag.ResultMessage = "ERROR";
                return View("Index", db.Users.ToList());
            }
        }