public IList <UmbracoUserModel> LookupUsers(FindUserModel model)
        {
            if (!model.IsValidRequest)
            {
                return(null);
            }

            try
            {
                if (model.IsEmailRequest)
                {
                    var modelList = _umbracoService.GetAllUsersByEmail(model.EmailAddress);

                    return(modelList);
                }
                if (model.IsUserRequest)
                {
                    var modelList = _umbracoService.GetAllUsersByUsername(model.UserName);

                    return(modelList);
                }
            }
            catch (Exception ex)
            {
                ex.ToExceptionless().Submit();

                throw;
            }
            return(null);
        }
        /// <summary>
        /// Get permissions for supplied user
        /// </summary>
        /// <param name="model">user details</param>
        /// <returns>List of pages</returns>
        public IList <PermissionsModel> CheckUserPermissions(FindUserModel model)
        {
            try
            {
                var user = _userControlService.LookupUsers(model);

                if (user.IsNullOrEmpty())
                {
                    return(null);
                }

                //var modelList = _databaseService.CheckUserPermissions(user.First().UserId);

                //var permissionsModels = modelList as IList<PermissionsModel> ?? modelList.ToList();
                var permissionsModels = _umbracoService.CheckUserPermissions(user.First().UserId);

                return(permissionsModels);
            }
            catch (Exception ex)
            {
                ex.ToExceptionless().Submit();

                throw;
            }
        }
        public void UmbracoUserControlTestSetup()
        {
            passWordResetModel    = new PasswordResetModel();
            passWordResetModelOut = new PasswordResetModel();

            umbracoUserModel        = new UmbracoUserModel();
            umbracoUserModelListOut = new List <UmbracoUserModel>();

            findUserModel = new FindUserModel();

            contentTreeViewModel        = new ContentTreeViewModel();
            contentTreeViewModelListOut = new List <ContentTreeViewModel>();

            permissionsModel         = new PermissionsModel();
            permissionsModelsListOut = new List <PermissionsModel>();

            mockPermissionsControlService = new Mock <IPermissionsControlService>().Object;
            mockEmailService = new Mock <IEmailService>().Object;

            var userControlServiceMock = new Mock <IUserControlService>();

            userControlServiceMock.Setup(x => x.LookupUserById(2))
            .Returns(contentTreeViewModel);

            mockUserControlService = userControlServiceMock.Object;

            var umbracoServiceMock = new Mock <IUmbracoService>();

            umbracoServiceMock.Setup(x => x.GetAllUsersByEmail("Email"))
            .Returns(umbracoUserModelListOut);
            umbracoServiceMock.Setup(x => x.GetAllUsersByUsername("Username"))
            .Returns(umbracoUserModelListOut);
            umbracoServiceMock.Setup(x => x.GetContentRoot())
            .Returns(contentTreeViewModelListOut);
            umbracoServiceMock.Setup(x => x.GetContentChild(1))
            .Returns(contentTreeViewModelListOut);
            umbracoServiceMock.Setup(x => x.SetContentPermissions(permissionsModel))
            .Returns(true);

            mockUmbracoService = umbracoServiceMock.Object;

            var databaseServiceMock = new Mock <IDatabaseService>();

            databaseServiceMock.Setup(x => x.GetResetDetails(passWordResetModel))
            .Returns(passWordResetModelOut);
            //databaseServiceMock.Setup(x => x.CheckUserPermissions(1))
            //    .Returns(permissionsModelsListOut);

            mockDatabaseService = databaseServiceMock.Object;

            timelimit = DateTime.Now;

            //umbracoService = new UmbracoService();
            //databaseService = new DatabaseService();
            //emailService = new EmailService(mockDatabaseService);
            //userControlService = new UserControlService(mockDatabaseService, mockUmbracoService, mockEmailService);
            //permissionsControlService = new PermissionsControlService(mockDatabaseService, mockUmbracoService, mockUserControlService);
        }
Ejemplo n.º 4
0
        public JsonResult CheckDestinationUser(FindUserModel model)
        {
            if (_userControlService.LookupUsers(model).IsNullOrEmpty())
            {
                return(Json(false, JsonRequestBehavior.AllowGet));
            }

            var user = _userControlService.LookupUsers(model).First();

            return(Json(user, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Gets OAuth user by the specified user Id or Phone number asynchronous.
        /// </summary>
        /// <param name="model">The model contains the user Id or Phone number.</param>
        /// <returns>A <see cref="Task{TResult}"/> represents the get operation. Task result contains the found user.</returns>
        public async Task <OAuthUser> GetAsync(FindUserModel model)
        {
            TUser user;

            if (model.Id != null)
            {
                user = await _userManager.FindByIdAsync(model.Id.ToString());
            }
            else
            {
                user = await _userManager.FindByNameAsync(model.PhoneNumber);
            }

            if (user == null)
            {
                throw new Exception("cannot find the user by id or phone number");
            }

            var userPrincipal = await _signInManager.CreateUserPrincipalAsync(user);

            if (_userManager.SupportsUserEmail)
            {
                var email = await _userManager.GetEmailAsync(user);

                if (!string.IsNullOrWhiteSpace(email))
                {
                    userPrincipal.Identities.First().AddClaims(new[]
                    {
                        new Claim(JwtClaimTypes.Email, email),
                        new Claim(JwtClaimTypes.EmailVerified,
                                  await _userManager.IsEmailConfirmedAsync(user) ? "true" : "false", ClaimValueTypes.Boolean)
                    });
                }
            }

            if (_userManager.SupportsUserPhoneNumber)
            {
                var phoneNumber = await _userManager.GetPhoneNumberAsync(user);

                if (!string.IsNullOrWhiteSpace(phoneNumber))
                {
                    userPrincipal.Identities.First().AddClaims(new[]
                    {
                        new Claim(JwtClaimTypes.PhoneNumber, phoneNumber),
                        new Claim(JwtClaimTypes.PhoneNumberVerified,
                                  await _userManager.IsPhoneNumberConfirmedAsync(user) ? "true" : "false", ClaimValueTypes.Boolean)
                    });
                }
            }

            return(OAuthUser.FromUser(userPrincipal));
        }
Ejemplo n.º 6
0
        public ActionResult DisplayResults(FindUserModel model)
        {
            if (model == null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            var pageIndex = model.Page ?? 1;

            model.SearchResult = _userControlService.LookupUsers(model).ToPagedList(pageIndex, 10);

            return(View("UserLookup", model));
        }
        public async Task <OAuthUser> Get([FromQuery] FindUserModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            if (model.Id == null && string.IsNullOrEmpty(model.PhoneNumber))
            {
                throw new ArgumentException("must provide user id or phone number. e.g. ?userId=111&phonenumber=phone");
            }

            return(await _service.GetAsync(model));
        }
Ejemplo n.º 8
0
        public ActionResult LookUpUser(FindUserModel model)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("Index", "Home"));
            }

            // Either an email address or user name must be supplied
            if (string.IsNullOrEmpty(model.EmailAddress) && string.IsNullOrEmpty(model.UserName))
            {
                return(RedirectToAction("Index", "Home"));
            }

            return(DisplayResults(model));
        }
Ejemplo n.º 9
0
        public ActionResult DisableUser(UmbracoUserModel model)
        {
            var success = _userControlService.ToggleLock(model);

            if (success)
            {
                return(DisplayResults(new FindUserModel {
                    EmailAddress = model.EmailAddress
                }));
            }

            var findUserModel = new FindUserModel {
                EmailAddress = model.EmailAddress, UserName = model.UserName
            };

            return(LookUpUser(findUserModel));
        }
Ejemplo n.º 10
0
        public async Task <IActionResult> DeleteUserAsync([FromBody] FindUserModel model)
        {
            User user = await _userService.FindUserAsync(model.username);

            var result = await _userService.DeleteUserAsync(user);


            string Data_Created = "";

            if (result.Succeeded)
            {
                Data_Created = "User deleted successfully.";
                return(Ok(Json(Data_Created)));
            }

            return(BadRequest(result.Errors.Select(s => s.Description).ToString()));
        }
Ejemplo n.º 11
0
        public ActionResult CreateUser(UmbracoUserModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View("CreateUser", model));
            }

            // Check that User does not already exist
            FindUserModel find = new FindUserModel {
                EmailAddress = model.EmailAddress, UserName = null
            };
            var user = _userControlService.LookupUsers(find);

            if (user == null || user.Count > 0)
            {
                TempData["MsgKey"] = "EmailInUse";
                return(View());
            }

            find.EmailAddress = null;
            find.UserName     = model.UserName;
            user = _userControlService.LookupUsers(find);
            if (user.Count > 0)
            {
                TempData["MsgKey"] = "LoginInUse";
                return(View());
            }

            var newUser = _userControlService.CreateUser(model);

            // Redmine #7903 - do not email user because no permissions have been setup yet
            //return (newUser != null) ? RedirectToAction("InitiatePasswordReset", "Admin", newUser) : RedirectToAction("Index", "Home");
            if (newUser == null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            var findUser = new FindUserModel {
                EmailAddress = newUser.EmailAddress
            };

            return(DisplayResults(findUser));
        }
        public ActionResult CheckUserPermissions(FindUserModel model)
        {
            try
            {
                IList <PermissionsModel> modelList = _permissionsControlService.CheckUserPermissions(model);

                if (!modelList.IsNullOrEmpty())
                {
                    return(PartialView("CheckUserPermissions", modelList));
                }

                TempData["MsgKey"] = "NoPageOrUser";

                return(PartialView("ToolsError"));
            }
            catch (Exception ex)
            {
                ex.ToExceptionless().Submit();
                TempData["MsgKey"] = string.Format("ErrorOccurred");

                return(PartialView("ToolsError"));
            }
        }
Ejemplo n.º 13
0
 public async Task <UserCoverModel> GetUserCover(ClaimsPrincipal claimsPrincipal, [Service] IUserPhotoResolver userResolver, FindUserModel criterias)
 {
     return(await userResolver.GetUserCover(claimsPrincipal, criterias));
 }
Ejemplo n.º 14
0
 public async Task <UserInfoModel> GetFullUserInfoAsync(ClaimsPrincipal claimsPrincipal, [Service] IUserResolver userResolver, FindUserModel criterias)
 {
     return(await userResolver.GetFullUserInfoAsync(claimsPrincipal, criterias));
 }
Ejemplo n.º 15
0
        public ActionResult FindUser(string r, string t, string q, int p = 1)
        {
            var model = new FindUserModel(r, t, q, p);

            return(View(model));
        }
Ejemplo n.º 16
0
        public ActionResult FindUsers(FindUserModel find)
        {
            WJPUser curUser = profileDB.Users.Find(User.Identity.Name);
            if (curUser == null)
                return RedirectToAction("Error", "Home", new { message = "User database error!" });

            checkRoles();

            find.UserName = find.UserName.Trim().ToUpper();
            if (find.UserName.Count() < 3)
                return View(find);

            List<WJPUser> res = new List<WJPUser>();
            foreach (WJPUser user in profileDB.Users)
            {
                if (user.UserName.ToUpper().Contains(find.UserName) && user != curUser)
                {
                    res.Add(user);
                }
            }
            ViewBag.FoundList = res;

            return View(find);
        }
Ejemplo n.º 17
0
        public async Task <UserInfoModel> GetFullUserInfoAsync(ClaimsPrincipal claimsPrincipal, FindUserModel criterias)
        {
            var currentUserId = GetCurrentUserId(claimsPrincipal);
            var userId        = currentUserId;

            if (!string.IsNullOrEmpty(criterias.UserId))
            {
                userId = await _userManager.DecryptUserIdAsync(criterias.UserId);
            }

            var user = await _userService.FindFullByIdAsync(new IdRequestFilter <long>
            {
                Id = userId,
                CanGetInactived = currentUserId == userId
            });

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

            var userInfo = new UserInfoModel
            {
                Address     = user.Address,
                BirthDate   = user.BirthDate,
                CountryCode = user.CountryCode,
                CountryId   = user.CountryId,
                CountryName = user.CountryName,
                Email       = user.Email,
                CreatedDate = user.CreatedDate,
                Description = user.Description,
                DisplayName = user.DisplayName,
                Firstname   = user.Firstname,
                GenderId    = user.GenderId,
                GenderLabel = user.GenderLabel,
                Lastname    = user.Lastname,
                PhoneNumber = user.PhoneNumber,
                StatusId    = user.StatusId,
                StatusLabel = user.StatusLabel,
                UpdatedDate = user.UpdatedDate,
                CanEdit     = userId == currentUserId,
            };

            userInfo.UserIdentityId = await _userManager.EncryptUserIdAsync(user.Id);

            return(userInfo);
        }
Ejemplo n.º 18
0
        public async Task <IList <UserPhotoModel> > GetUserPhotos(ClaimsPrincipal claimsPrincipal, FindUserModel criterias)
        {
            var currentUserId = GetCurrentUserId(claimsPrincipal);
            var userId        = currentUserId;

            if (criterias != null && !string.IsNullOrEmpty(criterias.UserId))
            {
                userId = await _userManager.DecryptUserIdAsync(criterias.UserId);
            }

            return(await GetUserPhotos(userId));
        }
Ejemplo n.º 19
0
        public async Task <UserCoverModel> GetUserCover(ClaimsPrincipal claimsPrincipal, FindUserModel criterias)
        {
            var currentUserId = GetCurrentUserId(claimsPrincipal);
            var userId        = currentUserId;

            if (criterias != null && !string.IsNullOrEmpty(criterias.UserId))
            {
                userId = await _userManager.DecryptUserIdAsync(criterias.UserId);
            }

            var photo = GetUserPhoto(userId, UserPictureType.Cover);

            return(new UserCoverModel
            {
                Code = photo.Code,
                TypeId = photo.TypeId.ToString(),
                Url = photo.Url
            });
        }
Ejemplo n.º 20
0
 public async Task <UserViewModel> GetUserInfoAsync([FromBody] FindUserModel model)
 {
     return(Mapper.Map <User, UserViewModel>(await _userService.FindUserAsync(model.username)));
 }