예제 #1
0
        protected override async Task ActionAsync()
        {
            await UserSecurity.CheckAdministratorAsync(_userService, Input.UserId, Input.Data);

            //  int sizeBytes = await Data.ItemRepository.CountSiteSizeBytesAsync(Input);

            // var numberUnreadMessage = await _messageService.CountUnreadChatAsync(new BoxId() {Id = Input.Data, Type = TypeBox.Site},
            //     new BoxId() {Id = Input.UserId, Type = TypeBox.User});


            var administrationModel = new AdministrationModel();

            //   administrationModel.NumberUnreadMessage = numberUnreadMessage;

            /*administrationModel.MaxTotalSizeBytes = 1048576*24;
             * administrationModel.TotalSizeBytes = sizeBytes;*/

            // var seo = await GetSeoCommand.GetSeoItemDataModelAsync(Data, Input.Data);
            //administrationModel.IdSeoWarning = seo.

            Result.Data = administrationModel;

            /*long giga = sizeBytes/8589934592;
             * int mega = sizeBytes/1048576;
             * int kilo = (sizeBytes - mega*1048576)/1024;*/
        }
예제 #2
0
        public ActionResult AdministratePlans()
        {
            var plans      = new AdministrationModel();
            var plansLogic = new PlanTemplate();

            plans.Plans = plansLogic.GetPlanTemplate();

            return(View(plans));
        }
 public ActionResult Edit([Bind(Include = "ID,Name,Value")] AdministrationModel Administrationmodel)
 {
     if (ModelState.IsValid)
     {
         db.Entry(Administrationmodel).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(Administrationmodel));
 }
예제 #4
0
        // GET: Administration
        public ActionResult Index()
        {
            AdministrationModel am = new AdministrationModel();

            am.Users       = userRepository.GetUsers();
            am.Departments = departmentRepository.GetDepartments();
            am.Locations   = locationRepository.GetLocations();
            am.Domains     = domainRepository.GetDomains();
            return(View(am));
        }
        // GET: /Administration/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            AdministrationModel Administrationmodel = db.Administrations.Find(id);

            if (Administrationmodel == null)
            {
                return(View("Error"));
            }
            return(View(Administrationmodel));
        }
예제 #6
0
        public async Task <IActionResult> Administration(AdministrationModel model)
        {
            if (ModelState.IsValid)
            {
                string subject = User.Claims.Where(x => x.Type == JwtClaimTypes.Subject).Select(x => x.Value).FirstOrDefault();
                if (string.IsNullOrEmpty(subject))
                {
                    return(Unauthorized());
                }

                var user = await _userManager.FindByIdAsync(subject);

                if (user == null)
                {
                    return(Unauthorized());
                }

                switch (model.Action.ToLower())
                {
                case "approve":
                    if (user.HasRoleClaim("Admin:Edit"))
                    {
                        model = await Approve(model, user);
                    }
                    break;

                case "reject":
                    if (user.HasRoleClaim("Admin:Edit"))
                    {
                        model = await Reject(model, user);
                    }
                    break;

                case "search":
                    model = await Search(model, user);

                    break;
                }

                model.PendingRegistrations = (await _userManager.GetPendingRegistrations())
                                             .Where(x => x.Id != user.Id)
                                             .ToList();

                return(View(model));
            }

            return(RedirectToAction("Administration", "Registration"));
        }
예제 #7
0
        public IActionResult UsersList(AdministrationModel model)
        {
            model.SearchString = model.SearchString == null ? "" : model.SearchString;
            model.CurrPage     = model.CurrPage == 0 ? 1 : model.CurrPage;

            model.Pager = new Pager(_userAdministration.CountUsers(), 1);
            var myusers = _userAdministration.GetUsers(model.Pager.CurrentPage, model.Pager.PageSize, model.SearchString, "");

            var roles = _userAdministration.GetAllRoles();

            model.UsersList = new List <UserAdministrationModel>();
            foreach (var item in myusers)
            {
                model.UsersList.Add(
                    new UserAdministrationModel()
                {
                    Id             = item.Id,
                    IdentUserId    = item.IdentUserId,
                    UserName       = item.UserName,
                    EmailAddress   = item.Email,
                    ContactAddress = item.ContactAddress,
                    PhoneContact   = item.PhoneNumber,
                    RoleName       = _userAdministration.GetUserRole(item.IdentUserId),
                    RoleId         = _userAdministration.GetUserRoleId(item.IdentUserId),
                    TypeOfUser     = item.LegalPerson ? "Poslovno lice" : "Fizičko lice",
                    Name           = item.Name,
                    LastName       = item.LastName,
                    Roles          = roles.Select(r => new SelectListItem()
                    {
                        Text = r.Name, Value = r.Id.ToString()
                    }).ToList(),
                }
                    );
            }


            model.Roles = roles.Select(r => new SelectListItem()
            {
                Text = r.Name, Value = r.Id
            }).ToList();
            model.Roles.Add(new SelectListItem()
            {
                Text = "Sve", Value = ""
            });

            return(View(model));
        }
예제 #8
0
        public ActionResult AdminPanel()
        {
            var users         = new AdministrationModel();
            var usersLogic    = new Users();
            var searchedUsers = (List <UserModel>)TempData["SearchedUsers"];

            ViewBag.UserNotFound = TempData["UserNotFound"];

            if (searchedUsers != null)
            {
                users.Users = searchedUsers;
                return(View(users));
            }

            users.Users = usersLogic.GetUsers();

            return(View(users));
        }
예제 #9
0
        private List <UserModel> SearchPlan(string searchKey)
        {
            var users         = new AdministrationModel();
            var usersLogic    = new Users();
            var searchedUsers = new List <UserModel>();

            users.Users = usersLogic.GetUsers();

            foreach (var data in users.Users)
            {
                if (searchKey == "")
                {
                    searchedUsers = users.Users;
                }
                else
                {
                    if (data.UserName.Contains(searchKey) || data.Email.Contains(searchKey))
                    {
                        searchedUsers.Add(new UserModel()
                        {
                            Id         = data.Id,
                            Email      = data.Email,
                            Password   = data.Password,
                            UserName   = data.UserName,
                            RoleId     = data.RoleId,
                            Age        = data.Age,
                            Difficulty = data.Difficulty,
                            Weight     = data.Weight,
                            Height     = data.Height,
                            Name       = data.Name,
                            Address    = data.Address,
                            Surname    = data.Surname
                        });
                    }
                }
            }

            if (searchedUsers.Count == 0 || searchedUsers == null)
            {
                TempData["UserNotFound"] = true;
            }

            return(searchedUsers);
        }
예제 #10
0
        private async Task <AdministrationModel> Search(AdministrationModel model, ApplicationUser user)
        {
            string searchRequest = WebUtility.UrlDecode(model.SearchModel.SearchRequest).Trim();

            if (string.IsNullOrEmpty(searchRequest))
            {
                ModelState.AddModelError("SearchModel.SearchRequest", $"Email address required");
            }
            else
            {
                var result = await _userManager.FindByEmailAsync(searchRequest);

                if (result == null)
                {
                    model.SearchModel.SearchResult = new SearchResultModel();
                    ModelState.AddModelError("SearchModel.SearchRequest", $"Email address {searchRequest} not found");
                }
                else
                {
                    model.SearchModel.SearchResult = new SearchResultModel();

                    model.SearchModel.SearchResult.UserId           = result.Id;
                    model.SearchModel.SearchResult.Email            = result.Email;
                    model.SearchModel.SearchResult.FirstName        = result.FirstName;
                    model.SearchModel.SearchResult.LastName         = result.LastName;
                    model.SearchModel.SearchResult.RequestDate      = result.RequestDate;
                    model.SearchModel.SearchResult.Status           = result.Status;
                    model.SearchModel.SearchResult.IsSelf           = (result.Id == user.Id);
                    model.SearchModel.SearchResult.IsSysAdmin       = result.IsSysAdmin;
                    model.SearchModel.SearchResult.IsActive         = result.IsActive;
                    model.SearchModel.SearchResult.IsPending        = result.IsPending;
                    model.SearchModel.SearchResult.IsRevoked        = result.IsRevoked;
                    model.SearchModel.SearchResult.TwoFactorEnabled = result.TwoFactorEnabled;
                    model.SearchModel.SearchResult.RoleClaims       = result.RoleClaims.OrderBy(x => x.Role.Name).ToList();

                    foreach (AspNetUserRoleClaim roleClaim in model.SearchModel.SearchResult.RoleClaims)
                    {
                        roleClaim.History = await _userManager.GetRoleClaimHistory(roleClaim.Id);
                    }
                }
            }

            return(model);
        }
예제 #11
0
        public IActionResult ChangePageUsersList(AdministrationModel model)
        {
            var pager = new Pager((_userAdministration.CountUsers(model.SearchString, model.SelectedRole)), model.CurrPage);

            if (model.CurrPage == 0)
            {
                pager.CurrentPage = 1;
            }

            model.Pager = pager;

            var myusers = _userAdministration.GetUsers(model.Pager.CurrentPage, model.Pager.PageSize, model.SearchString, model.SelectedRole);

            var roles = _userAdministration.GetAllRoles();

            model.UsersList = new List <UserAdministrationModel>();
            foreach (var item in myusers)
            {
                model.UsersList.Add(
                    new UserAdministrationModel()
                {
                    Id             = item.Id,
                    IdentUserId    = item.IdentUserId,
                    UserName       = item.UserName,
                    EmailAddress   = item.Email,
                    ContactAddress = item.ContactAddress,
                    PhoneContact   = item.PhoneNumber,
                    RoleName       = _userAdministration.GetUserRole(item.IdentUserId),
                    RoleId         = _userAdministration.GetUserRoleId(item.IdentUserId),
                    TypeOfUser     = item.LegalPerson ? "Poslovno lice" : "Fizičko lice",
                    Name           = item.Name,
                    LastName       = item.LastName,
                    Roles          = roles.Select(r => new SelectListItem()
                    {
                        Text = r.Name, Value = r.Id.ToString()
                    }).ToList(),
                }
                    );
            }

            return(PartialView("_UsersListed", model));
        }
예제 #12
0
        public async Task <IActionResult> Administration()
        {
            string subject = User.Claims.Where(x => x.Type == JwtClaimTypes.Subject).Select(x => x.Value).FirstOrDefault();

            if (string.IsNullOrEmpty(subject))
            {
                return(Unauthorized());
            }

            var user = await _userManager.FindByIdAsync(subject);

            if (user == null)
            {
                return(Unauthorized());
            }

            AdministrationModel model = new AdministrationModel();

            model.PendingRegistrations = await _userManager.GetPendingRegistrations();

            return(View(model));
        }
예제 #13
0
        private async Task <AdministrationModel> Reject(AdministrationModel model, ApplicationUser user)
        {
            var registration = await _userManager.FindByIdAsync(model.Id);

            if (registration == null)
            {
                throw new Exception($"Invalid Registration.Id: {model.Id}");
            }

            registration.ApprovedById = null;
            registration.ApprovedBy   = null;
            registration.ApprovedDate = DateTime.MinValue;
            registration.RevokedById  = user.Id;
            registration.RevokedBy    = user;
            registration.RevokedDate  = DateTime.Now;

            ApplicationRole role = await _roleManager.FindByNameAsync("User");

            foreach (ApplicationRoleClaim roleClaim in role.RoleClaims)
            {
                AspNetUserRoleClaim userRoleClaim = registration.RoleClaims
                                                    .Where(x => x.UserId == registration.Id &&
                                                           x.RoleId == roleClaim.RoleId &&
                                                           x.RoleClaim.ClaimType == roleClaim.ClaimType
                                                           )
                                                    .FirstOrDefault();

                if (userRoleClaim != null)
                {
                    userRoleClaim.Status = AspNetUserRoleClaim.RoleClaimStatus.Rejected;

                    AspNetUserRoleClaimHistory history = new AspNetUserRoleClaimHistory();
                    history.ActionOn        = DateTime.Now;
                    history.ActionById      = user.Id;
                    history.ActionBy        = user;
                    history.Status          = AspNetUserRoleClaim.RoleClaimStatus.Rejected;
                    history.UserRoleClaimId = userRoleClaim.Id;
                    history.UserRoleClaim   = userRoleClaim;

                    userRoleClaim.History.Add(history);
                }
                else
                {
                    userRoleClaim             = new AspNetUserRoleClaim();
                    userRoleClaim.UserId      = registration.Id;
                    userRoleClaim.User        = registration;
                    userRoleClaim.RoleId      = role.Id;
                    userRoleClaim.Role        = role;
                    userRoleClaim.RoleClaimId = roleClaim.Id;
                    userRoleClaim.RoleClaim   = roleClaim;
                    userRoleClaim.Status      = AspNetUserRoleClaim.RoleClaimStatus.Rejected;

                    AspNetUserRoleClaimHistory history = new AspNetUserRoleClaimHistory();
                    history.ActionOn        = DateTime.Now;
                    history.ActionById      = user.Id;
                    history.ActionBy        = user;
                    history.Status          = AspNetUserRoleClaim.RoleClaimStatus.Rejected;
                    history.UserRoleClaimId = userRoleClaim.Id;
                    history.UserRoleClaim   = userRoleClaim;

                    userRoleClaim.History.Add(history);

                    registration.RoleClaims.Add(userRoleClaim);
                }
            }

            IdentityResult identityResult = await _userManager.UpdateAsync(registration);

            if (!identityResult.Succeeded)
            {
                throw new Exception(identityResult.Errors.First().Description);
            }

            return(model);
        }
예제 #14
0
        public async Task <IActionResult> RoleClaim(AdministrationModel model)
        {
            if (ModelState.IsValid)
            {
                string subject = User.Claims.Where(x => x.Type == JwtClaimTypes.Subject).Select(x => x.Value).FirstOrDefault();
                if (string.IsNullOrEmpty(subject))
                {
                    return(Unauthorized());
                }

                var user = await _userManager.FindByIdAsync(subject);

                if (user == null)
                {
                    return(Unauthorized());
                }

                switch (model.Action.ToLower())
                {
                case "enableroleclaim":
                    IdentityResult enroleResult = await EnableRoleClaim(model.Id, model.RoleId, model.ClaimId, user);

                    if (!enroleResult.Succeeded)
                    {
                        throw new Exception(enroleResult.Errors.First().Description);
                    }
                    break;

                case "disableroleclaim":
                    IdentityResult disableResult = await DisableRoleClaim(model.Id, model.RoleId, model.ClaimId, user);

                    if (!disableResult.Succeeded)
                    {
                        throw new Exception(disableResult.Errors.First().Description);
                    }
                    break;
                }

                model.Roles = _roleManager.Roles
                              .OrderBy(x => x.Name)
                              .ToList();

                string searchRequest = WebUtility.UrlDecode(model.SearchModel.SearchRequest).Trim();
                var    result        = await _userManager.FindByEmailAsync(searchRequest);

                model.SearchModel.SearchResult = new SearchResultModel();

                model.SearchModel.SearchResult.UserId           = result.Id;
                model.SearchModel.SearchResult.Email            = result.Email;
                model.SearchModel.SearchResult.FirstName        = result.FirstName;
                model.SearchModel.SearchResult.LastName         = result.LastName;
                model.SearchModel.SearchResult.RequestDate      = result.RequestDate;
                model.SearchModel.SearchResult.Status           = result.Status;
                model.SearchModel.SearchResult.IsSelf           = (result.Id == user.Id);
                model.SearchModel.SearchResult.IsSysAdmin       = result.IsSysAdmin;
                model.SearchModel.SearchResult.IsActive         = result.IsActive;
                model.SearchModel.SearchResult.IsPending        = result.IsPending;
                model.SearchModel.SearchResult.IsRevoked        = result.IsRevoked;
                model.SearchModel.SearchResult.TwoFactorEnabled = result.TwoFactorEnabled;
                model.SearchModel.SearchResult.RoleClaims       = result.RoleClaims.OrderBy(x => x.Role.Name).ToList();

                foreach (AspNetUserRoleClaim roleClaim in model.SearchModel.SearchResult.RoleClaims)
                {
                    roleClaim.History = await _userManager.GetRoleClaimHistory(roleClaim.Id);
                }

                return(View(model));
            }

            return(RedirectToAction("Administration", "Registration"));
        }
        // GET: Administration
        public ActionResult Index()
        {
            AdministrationModel Admin = new AdministrationModel();

            return(View(Admin));
        }