コード例 #1
0
        public async Task <IActionResult> GetUserByEmail(string email)
        {
            if (string.IsNullOrEmpty(email))
            {
                ModelState.AddModelError(nameof(email), "email cannot be empty");
                return(BadRequest(ModelState));
            }

            if (!(new EmailAddressAttribute().IsValid(email)))
            {
                ModelState.AddModelError(nameof(email), "email does not exist");
                return(NotFound(ModelState));
            }

            var emailText   = email.Replace("'", "''");
            var filter      = $"otherMails/any(c:c eq '{emailText}')";
            var profile     = new UserProfileHelper(_userAccountService, _settings);
            var userProfile = await profile.GetUserProfileAsync(filter);

            if (userProfile == null)
            {
                return(NotFound());
            }

            return(Ok(userProfile));
        }
コード例 #2
0
        public async Task <IActionResult> GetUserByUserName(string userName)
        {
            if (string.IsNullOrEmpty(userName))
            {
                ModelState.AddModelError(nameof(userName), "user principal name cannot be empty");
                return(BadRequest(ModelState));
            }

            var filterText = userName.Replace("'", "''");
            var filter     = $"userPrincipalName  eq '{filterText}'";

            var profile = new UserProfileHelper(_userAccountService, _settings);

            try
            {
                var userProfile = await profile.GetUserProfileAsync(filter);

                if (userProfile != null)
                {
                    return(Ok(userProfile));
                }

                ModelState.AddModelError(nameof(userName), "user principal name does not exist");
                return(NotFound(ModelState));
            }
            catch (UnauthorizedAccessException ex)
            {
                return(Unauthorized(ex.Message));
            }
        }
コード例 #3
0
        async Task <bool> LoginAsync(MobileServiceAuthenticationProvider provider)
        {
            if (!Plugin.Connectivity.CrossConnectivity.Current.IsConnected)
            {
                Acr.UserDialogs.UserDialogs.Instance.Alert("Ensure you have internet connection to login.",
                                                           "No Connection", "OK");

                return(false);
            }

            MobileServiceUser user = null;

            try
            {
                authentication.ClearCookies();
                user = await authentication.LoginAsync(client, provider);

                if (user != null)
                {
                    IsBusy      = true;
                    UserProfile = await UserProfileHelper.GetUserProfileAsync(client);
                }
            }
            catch (Exception ex)
            {
                Logger.Instance.Report(ex);
            }
            finally
            {
                IsBusy = false;
            }

            if (user == null || UserProfile == null)
            {
                Settings.LoginAccount  = LoginAccount.None;
                Settings.UserFirstName = string.Empty;
                Settings.AuthToken     = string.Empty;
                Settings.UserLastName  = string.Empty;

                Logger.Instance.Track("LoginError");
                Acr.UserDialogs.UserDialogs.Instance.Alert("Unable to login or create account.", "Login error", "OK");
                return(false);
            }
            else
            {
                Init();

                Logger.Instance.Track("LoginSuccess");
            }

            return(true);
        }
コード例 #4
0
        public async Task <IActionResult> GetUserByAdUserId(string userId)
        {
            var filterText  = userId.Replace("'", "''");
            var filter      = $"objectId  eq '{filterText}'";
            var profile     = new UserProfileHelper(_userAccountService, _settings);
            var userProfile = await profile.GetUserProfileAsync(filter);

            if (userProfile == null)
            {
                ModelState.AddModelError(nameof(userId), "user does not exist");
                return(NotFound(ModelState));
            }

            return(Ok(userProfile));
        }
コード例 #5
0
        public async Task <IActionResult> ResetUserPassword([FromBody] string username)
        {
            if (string.IsNullOrWhiteSpace(username))
            {
                ModelState.AddModelError(nameof(username), "username cannot be empty");
                return(BadRequest(ModelState));
            }

            var filterText  = username.Replace("'", "''");
            var filter      = $"userPrincipalName  eq '{filterText}'";
            var profile     = new UserProfileHelper(_userAccountService, _settings);
            var userProfile = await profile.GetUserProfileAsync(filter);

            if (userProfile == null)
            {
                return(NotFound());
            }

            var password = await _userAccountService.UpdateUserPasswordAsync(userProfile.UserName);

            return(Ok(new UpdateUserResponse {
                NewPassword = password
            }));
        }
コード例 #6
0
        public async Task Should_return_case_admin_for_user_with_money_claims_group()
        {
            GivenFilterReturnsUserWithCaseTypeGroups("Civil Money Claims");

            var userProfile = await _helper.GetUserProfileAsync(Filter);

            userProfile.UserRole.Should().Be("CaseAdmin");
        }