Beispiel #1
0
        public ErrorsCollection Validate(UserUserRolePostModel userUserRolePosModel, MoviesDbContext context)
        {
            ErrorsCollection errorsCollection = new ErrorsCollection {
                Entity = nameof(UserUserRolePostModel)
            };


            List <string> userRoles = context

                                      .UserRoles
                                      .Select(userRole => userRole.Name)
                                      .ToList();


            if (!userRoles.Contains(userUserRolePosModel.UserRoleName))
            {
                errorsCollection.ErrorMessages.Add($"The UserRole {userUserRolePosModel.UserRoleName} does not exist!");
            }

            if (errorsCollection.ErrorMessages.Count > 0)
            {
                return(errorsCollection);
            }
            return(null);
        }
Beispiel #2
0
        [Route("~/api/users/chrole")]                                                     //suprascrie ruta prestabilita [Route("api/[controller]")]
        public IActionResult Post([FromBody] UserUserRolePostModel userUserRolePostModel) //pentru creare de UserUserRole cu legatura manytomany intre User si UserRole
        {
            User   curentUserLogIn = userService.GetCurentUser(HttpContext);
            string roleNameLoged   = HttpContext.User.Claims.FirstOrDefault(claim => claim.Type == ClaimTypes.Role).Value;

            string curentUserRoleName = userUserRolesService.GetUserRoleNameById(userUserRolePostModel.UserId);

            if (roleNameLoged.Equals("UserManager"))
            {
                var anulUserRegistered = curentUserLogIn.DataRegistered;                                //data inregistrarii
                var curentMonth        = DateTime.Now;                                                  //data curenta
                var nrLuni             = curentMonth.Subtract(anulUserRegistered).Days / (365.25 / 12); //diferenta in luni dintre datele transmise

                if (nrLuni >= 6)
                {
                    string activRoleName = userUserRolesService.GetUserRoleNameById(userUserRolePostModel.UserId);

                    if (activRoleName.Equals("Admin"))
                    {
                        return(Forbid("Nu ai Rolul necesar pentru aceasta operatie !"));
                    }

                    if ((activRoleName.Equals("UserManager") | activRoleName.Equals("Regular")) && userUserRolePostModel.UserRoleName.Equals("Admin"))
                    {
                        return(Forbid("Nu ai Rolul necesar pentru aceasta operatie !"));
                    }
                }
                else
                {
                    return(Forbid("Nu ai Vechimea necesara ca UserManager pentru aceasta operatie !"));
                }
            }

            userUserRolesService.Create(userUserRolePostModel);
            return(Ok());
        }
        public void CreateShouldAddTheUserUserRole()
        {
            var options = new DbContextOptionsBuilder <TasksDbContext>()
                          .UseInMemoryDatabase(databaseName: nameof(CreateShouldAddTheUserUserRole))
                          .Options;

            using (var context = new TasksDbContext(options))
            {
                var validator            = new UserRoleValidator();
                var userUserRolesService = new UserUserRoleService(validator, context);

                User userToAdd = new User
                {
                    Email        = "*****@*****.**",
                    LastName     = "Ion",
                    FirstName    = "POpescu",
                    Password     = "******",
                    DateAdded    = DateTime.Now,
                    UserUserRole = new List <UserUserRole>()
                };
                context.Users.Add(userToAdd);

                UserRole addUserRoleRegular = new UserRole
                {
                    Name        = "Regular",
                    Description = "Creat pentru testare"
                };
                UserRole addUserRoleAdmin = new UserRole
                {
                    Name        = "AdminDeTest",
                    Description = "Creat pentru testare"
                };
                context.UserRole.Add(addUserRoleRegular);
                context.UserRole.Add(addUserRoleAdmin);
                context.SaveChanges();

                context.UserUserRole.Add(new UserUserRole
                {
                    User      = userToAdd,
                    UserRole  = addUserRoleRegular,
                    StartTime = DateTime.Parse("2019-06-13T00:00:00"),
                    EndTime   = null
                });
                context.SaveChanges();

                //sectiunea de schimbare valori invalidata de catre UserRoleValidator
                var uurpm = new UserUserRolePostModel
                {
                    UserId       = userToAdd.Id,
                    UserRoleName = "Admin"
                };
                var result1 = userUserRolesService.Create(uurpm);
                Assert.IsNotNull(result1);   //User role nu exista in baza de date dupa validare, ==> exista erori la validare

                //sectiunea de schimbare valori validata de catre UserRoleValidator
                var uurpm1 = new UserUserRolePostModel
                {
                    UserId       = userToAdd.Id,
                    UserRoleName = "AdminDeTest"
                };
                var result2 = userUserRolesService.Create(uurpm1);
                Assert.IsNull(result2);   //User role exista si se face upsert
            }
        }
Beispiel #4
0
 public void Post([FromBody] UserUserRolePostModel userUserRolePostModel)
 {
     userUserRoleService.Create(userUserRolePostModel);
 }
        public ErrorsCollection Create(UserUserRolePostModel userUserRolePostModel)
        {
            var errors = userRoleValidator.Validate(userUserRolePostModel, context);

            if (errors != null)
            {
                return(errors);
            }

            User user = context.Users
                        .FirstOrDefault(u => u.Id == userUserRolePostModel.UserId);

            if (user != null)
            {
                UserRole userRole = context
                                    .UserRole
                                    .Include(ur => ur.UserUserRoles)
                                    .FirstOrDefault(ur => ur.Name == userUserRolePostModel.UserRoleName);

                UserUserRole curentUserUserRole = context.UserUserRole
                                                  .Include(uur => uur.UserRole)
                                                  .FirstOrDefault(uur => uur.UserId == user.Id && uur.EndTime == null);

                //discutabil, nu ar trebui sa fie null niciodata, adica la Register nu a fost creat bine un defalut Regular role pentru userul respectiv
                if (curentUserUserRole == null)
                {
                    context.UserUserRole.Add(new UserUserRole
                    {
                        User      = user,
                        UserRole  = userRole,
                        StartTime = DateTime.Now,
                        EndTime   = null
                    });

                    context.SaveChanges();
                    return(null);
                }

                //inchiderea perioadel de activare pentru un anumit rol
                if (!curentUserUserRole.UserRole.Name.Contains(userUserRolePostModel.UserRoleName))
                {
                    curentUserUserRole.EndTime = DateTime.Now;

                    context.UserUserRole.Add(new UserUserRole
                    {
                        User      = user,
                        UserRole  = userRole,
                        StartTime = DateTime.Now,
                        EndTime   = null
                    });

                    context.SaveChanges();
                    return(null);
                }
                else
                {
                    return(null);    //trebuie sa trimit eroare ca modificarea nu poate avea loc, rol nou = rol vechi
                }
            }
            return(null);    //eroare Nu exista User cu Id-ul specificat
        }
Beispiel #6
0
        public ErrorsCollection Create(UserUserRolePostModel userUserRolePostModel)
        {
            var errors = userRoleValidator.Validate(userUserRolePostModel, context);

            if (errors != null)
            {
                return(errors);
            }

            User user = context
                        .Users
                        .FirstOrDefault(u => u.Id == userUserRolePostModel.UserId);

            if (user != null)
            {
                UserRole userRole = context
                                    .UserRoles
                                    .Include(urole => urole.UserUserRoles)
                                    .FirstOrDefault(urole => urole.Name == userUserRolePostModel.UserRoleName);

                UserUserRole currentUserUserRole = context
                                                   .UserUserRoles
                                                   .Include(uurole => uurole.UserRole)
                                                   .FirstOrDefault(uurole => uurole.UserId == user.Id && uurole.EndTime == null);

                if (currentUserUserRole == null)
                {
                    context.UserUserRoles.Add(new UserUserRole
                    {
                        User      = user,
                        UserRole  = userRole,
                        StartTime = DateTime.Now,
                        EndTime   = null
                    });

                    context.SaveChanges();
                    return(null);
                }


                if (!currentUserUserRole.UserRole.Name.Contains(userUserRolePostModel.UserRoleName))
                {
                    currentUserUserRole.EndTime = DateTime.Now;

                    context.UserUserRoles.Add(new UserUserRole
                    {
                        User      = user,
                        UserRole  = userRole,
                        StartTime = DateTime.Now,
                        EndTime   = null
                    });

                    context.SaveChanges();
                    return(null);
                }
                else
                {
                    return(null);
                }
            }
            return(null);
        }