コード例 #1
0
        public SCIMUser updateUser(SCIMUser user)
        {
            bool result = false;

            if (user == null)
            {
                throw new ArgumentNullException("user");
            }
            SCIMUser existingUser;

            //if (users.TryGetValue(user.id, out existingUser))
            //{
            //    result = users.TryUpdate(user.id, user, existingUser);
            //}
            existingUser = _cacheService.GetSCIMUser(user.id);
            if (existingUser == null)
            {
                throw new OnPremUserManagementException("User Not Found for Update");
            }
            else
            {
                result = _cacheService.UpdateSCIMUser(user.id, user);
            }

            return(user);
        }
コード例 #2
0
        //Users
        public SCIMUser createUser(SCIMUser user)
        {
            SCIMUser tempUser = new SCIMUser();
            bool     result   = false;

            try
            {
                if (user.id == null)
                {
                    user.id = Guid.NewGuid().ToString();
                }

                tempUser = _cacheService.GetSCIMUser(user.id);
                if (tempUser != null)
                {
                    // duplicate user
                    throw new OnPremUserManagementException("User id already exists");
                }
                else
                {
                    result = _cacheService.AddSCIMUser(user.id, user);
                }
            }
            catch (Exception e)
            {
                throw e;
            }
            return(user);
        }
コード例 #3
0
        public bool AddSCIMUser(string externalId, SCIMUser user)
        {
            bool response = true;

            _cache.Set(externalId, user, expiration);
            return(response);
        }
コード例 #4
0
        public IHttpActionResult PostUser([FromBody] SCIMUser user)
        {
            logger.Debug("Enter PostUser " + user.userName);
            SCIMUser scimUserOut = new SCIMUser();

            try
            {
                scimUserOut = connector.createUser(user);
                if (string.IsNullOrEmpty(scimUserOut.id))
                {
                    logger.Error("Exit error create user name " + user.userName);
                    SCIMException createException = new SCIMException();
                    createException.ErrorMessage = "error create user name " + user.userName;
                    createException.ErrorSummary = "error create user name " + user.userName;
                    return(InternalServerError(createException));
                }
                else
                {
                    //return Ok();
                    logger.Debug("Exit Successfully created  user  username " + scimUserOut.userName + "  appId " + scimUserOut.id);
                    string uri = Url.Link("DefaultAPI", new { id = user.id });
                    return(Created <SCIMUser>(uri, scimUserOut));
                }
            }
            catch (Exception e)
            {
                logger.Debug("Exit Exception at PostUser ");
                logger.Error(e);

                return(InternalServerError(e));
            }
        }
コード例 #5
0
        public IHttpActionResult Patch(String id, [FromBody] SCIMUserOperation operation)
        {
            bool     result      = true;
            SCIMUser scimUserOut = new SCIMUser();

            if (id == null)
            {
                logger.Error("Error at PATCH User, id missing ");
                return(BadRequest());
            }
            else
            {
                logger.Debug("Enter Patch  Id " + id);
            }
            try
            {
                if (operation.Operations[0].op == "replace")
                {
                    if (operation.Operations[0].value.active)
                    {
                        scimUserOut = connector.reactivateUser(id);
                    }
                    else
                    {
                        scimUserOut = connector.deactivateUser(id);
                    }

                    if (string.IsNullOrEmpty(scimUserOut.id))
                    {
                        logger.Error("Exit error update user id " + id);
                        SCIMException updateException = new SCIMException();
                        updateException.ErrorMessage = "error update user id " + id;
                        updateException.ErrorSummary = "error update user id " + id;
                        return(InternalServerError(updateException));
                    }
                    else
                    {
                        //return Ok();
                        logger.Debug("Exit Successfully updated  user  username " + scimUserOut.userName + "  appId " + scimUserOut.id);
                        return(Ok <SCIMUser>(scimUserOut));
                    }
                }
                else
                {
                    logger.Debug("Exit Patch user failed with unknown operation " + id);
                    SCIMException patchException = new SCIMException();
                    patchException.ErrorMessage = "Patch user failed with unknown operation id " + id;
                    patchException.ErrorSummary = "Patch user failed with unknown operation " + id;
                    return(InternalServerError(patchException));
                }
            }
            catch (Exception e)
            {
                logger.Debug("Exit Error at Patching User Status  ");
                logger.Error(e);
                return(InternalServerError(e));
            }
        }
コード例 #6
0
        public bool UpdateSCIMUser(string externalId, SCIMUser user)
        {
            bool     response = true;
            SCIMUser temp     = new SCIMUser();

            if (_cache.Contains(externalId))
            {
                _cache.Remove(externalId);
                _cache.Set(externalId, user, expiration);
            }
            else
            {
                _cache.Set(externalId, user, expiration);
            }
            return(response);
        }
コード例 #7
0
        public SCIMUser getUser(string id)
        {
            SCIMUser user = null;

            try
            {
                //users.TryGetValue(id, out user);
                user = _cacheService.GetSCIMUser(id);
            }
            catch (Exception e)
            {
                throw new OnPremUserManagementException("getUser", e);
            }
            if (user == null)
            {
                throw new EntityNotFoundException(id);
            }
            return(user);
        }
コード例 #8
0
        public IActionResult Put(string id, [FromBody] SCIMUser user)
        {
            SCIMUser scimUserOut = new SCIMUser();

            if (id == null)
            {
                _logger.LogError("Error at PUT User, id missing ");
                return(BadRequest());
            }
            else
            {
                _logger.LogDebug("Enter Put " + user.displayName + " Id " + id);
            }

            try
            {
                user.id     = id;
                scimUserOut = _connector.updateUser(user);
                if (string.IsNullOrEmpty(scimUserOut.id))
                {
                    _logger.LogError("Exit error update user id " + id);
                    SCIMException updateException = new SCIMException();
                    updateException.ErrorMessage = "error update user id " + id;
                    updateException.ErrorSummary = "error update user id " + id;

                    return(StatusCode(StatusCodes.Status500InternalServerError, updateException));
                }
                else
                {
                    //return Ok();
                    _logger.LogDebug("Exit Successfully updated  user  username " + scimUserOut.userName + "  appId " + scimUserOut.id);
                    return(Ok(scimUserOut));
                }
            }

            catch (Exception e)
            {
                _logger.LogDebug("Exit Error at PUT User");
                _logger.LogError(e.ToString());

                return(StatusCode(StatusCodes.Status500InternalServerError, e));
            }
        }
コード例 #9
0
        public IActionResult getUser(string id)
        {
            SCIMUser scimUserOut = new SCIMUser();

            if (id == null)
            {
                _logger.LogError("Error at getUser by Id, null value");
                return(BadRequest());
            }
            else
            {
                _logger.LogDebug("Enter getUser " + id);
            }

            try
            {
                scimUserOut = _connector.getUser(id);
                if (string.IsNullOrEmpty(scimUserOut.id))
                {
                    _logger.LogDebug("Exit Success but user not found");
                    return(NotFound());
                }
                else
                {
                    _logger.LogDebug("Exit Successfully found  user  username " + scimUserOut.userName + "  appId " + scimUserOut.id);
                    return(Ok(scimUserOut));
                }
            }
            catch (EntityNotFoundException e)
            {
                _logger.LogDebug("Exit entity not found trying to get user");
                return(NotFound());
            }
            catch (Exception e)
            {
                _logger.LogDebug("Exit Error at getUser  ");
                _logger.LogError(e.ToString());
                return(StatusCode(StatusCodes.Status500InternalServerError, e));
            }
        }
コード例 #10
0
        public IActionResult PostUser([FromBody] SCIMUser user)
        {
            _logger.LogDebug("Enter PostUser " + user.userName);
            SCIMUser scimUserOut = new SCIMUser();

            try
            {
                scimUserOut = _connector.createUser(user);
                if (string.IsNullOrEmpty(scimUserOut.id))
                {
                    _logger.LogError("Exit error create user name " + user.userName);
                    SCIMException createException = new SCIMException();
                    createException.ErrorMessage = "error create user name " + user.userName;
                    createException.ErrorSummary = "error create user name " + user.userName;
                    //return InternalServerError(createException);

                    return(StatusCode(StatusCodes.Status500InternalServerError, createException));
                }
                else
                {
                    //return Ok();
                    _logger.LogDebug("Exit Successfully created  user  username " + scimUserOut.userName + "  appId " + scimUserOut.id);
                    //string uri = Url.Link("DefaultAPI", new { id = user.id });
                    string uri = "https://default.com";
                    return(Created(uri, scimUserOut));
                }
            }
            catch (Exception e)
            {
                _logger.LogDebug("Exit Exception at PostUser ");
                _logger.LogError(e.ToString());

                //return InternalServerError(e);
                return(StatusCode(StatusCodes.Status500InternalServerError, e));
            }
        }