예제 #1
0
        public void TestRemoveExistingUser_GetRemoveResponseOkAndSuccess()
        {
            const int dataCount    = 5;
            var       expectedType = typeof(RemoveUserResponseOk);
            var       random       = new Random();

            //given a db with some users
            var dummyData = _testUtilitiesImpl.CreateUserDummyData(_signUpService, dataCount);

            //when we try to remove a user with non existing user id (mark as removed)
            var request = new RemoveUserRequest()
            {
                UserId = dummyData[random.Next(dataCount)]
            };
            var result = _removeUserService.RemoveUser(request);

            //then we get RemoveUserResponseOk
            //and that user is marked as deleted
            Assert.Multiple(() =>
            {
                Assert.That(result, Is.TypeOf(expectedType));
                Assert.That(_testUtilitiesImpl.GetUserById(request.UserId), Is.False);
            });

            _testUtilitiesImpl.DestroyUserDummyData(dummyData.ToArray());
        }
예제 #2
0
        public async Task <IActionResult> RemoveUser(RemoveUserRequest removeUserRequest)
        {
            if (!ModelState.IsValid)
            {
                logger.LogWarning("User not found {userid} request send by [{admin}]", removeUserRequest.UserId, User.Uid());
                return(BadRequest());
            }

            var requestedUser = await userManager.Users.FirstOrDefaultAsync(c => c.Id == removeUserRequest.UserId);

            if (requestedUser == null)
            {
                logger.LogWarning("User not found {userid} request send by [{admin}]", removeUserRequest.UserId, User.Uid());
                return(NotFound("user with id [{userId}] not found"));
            }

            if (removeUserRequest.UserId == User.Uid())
            {
                //looks like user is removing himself
                //not allowed
                logger.LogWarning("User try remove himself {userid} request send by [{admin}]", removeUserRequest.UserId, User.Uid());
                return(BadRequest("please provide another UID"));
            }

            if (await userManager.IsInRoleAsync(requestedUser, AppUserRoles.Administrator))
            {
                //looks we a removing admin user
                //not allowed
                logger.LogWarning("User try remove other admin {userid} request send by [{admin}]", removeUserRequest.UserId, User.Uid());
                return(BadRequest("please provide another UID"));
            }

            var tasks = await dbContext.Tasks
                        .Where(c => c.User.Id == removeUserRequest.UserId)
                        .Select(c => new TaskEntity {
                Id = c.Id
            }).ToListAsync();

            if (tasks != null && tasks.Count != 0)
            {
                dbContext.Tasks.RemoveRange(tasks);

                await dbContext.SaveChangesAsync();
            }

            var opResult = await userManager.DeleteAsync(requestedUser);

            if (opResult.Succeeded)
            {
                return(NoContent());
            }

            return(Problem(
                       title: "User was not deleted properly", detail:
                       opResult.Errors.Select(d => d.Description)
                       .Aggregate((a, b) => $"{a},{b}"),
                       statusCode:
                       (int)HttpStatusCode.InternalServerError));
        }
        public JsonResult Delete(System.Guid id)
        {
            RemoveUserRequest request = new RemoveUserRequest();

            request.UserId = id;
            RemoveUserResponse response = _userService.RemoveUser(request);

            return(Json(response));
        }
예제 #4
0
 public override Task <RemoveUserResponse> RemoveUser(RemoveUserRequest request, ServerCallContext context)
 {
     lock (sessions)
     {
         return(Task.FromResult(new RemoveUserResponse
         {
             Result = sessions.Remove(request.UserId) ? RemoveUserResponse.Types.ResultType.Ok : RemoveUserResponse.Types.ResultType.NotExist
         }));
     }
 }
예제 #5
0
        public async Task <RemoveUserResponse> RemoveUserAsync(ulong roomId, string[] userIds)
        {
            var request = new RemoveUserRequest
            {
                SdkAppId = (ulong)_tcloudAppOption.SdkAppId,
                RoomId   = roomId,
                UserIds  = userIds
            };

            return(await _policy.ExecuteAsync(() => _client.RemoveUser(request)));
        }
예제 #6
0
 public Response RemoveUser(RemoveUserRequest request)
 {
     try
     {
         _dal.RemoveUser(request.EmailAddress);
         var retval = new RemoveUserResponseOK();
         return(retval);
     }
     catch (Exception ex)
     {
         return(new ResponseError(ex.Message));
     }
 }
예제 #7
0
        public void RemoveUserUserIDNotExists()
        {
            User user = new User()
            {
                UserID = "*****@*****.**", UserName = "******"
            };
            var request = new RemoveUserRequest()
            {
                User = user
            };
            var actual = _userService.RemoveUser(request);

            Assert.IsInstanceOf(typeof(RemoveUserResponseUserIDNotExists), actual);
        }
예제 #8
0
        public RemoveUserResponse RemoveUser(RemoveUserRequest request)
        {
            var user = _context.Users.FirstOrDefault(u => u.Id == request.UserId);

            if (user == null)
            {
                return(new RemoveUserResponse {
                    Success = false,
                    Message = "Invalid user id."
                });
            }
            _context.Remove(user);

            return(new RemoveUserResponse());
        }
        /// <summary>
        /// 接口说明:将用户从房间移出,适用于主播/房主/管理员踢人等场景。支持所有平台,Android、iOS、Windows 和 macOS 需升级到 TRTC SDK 6.6及以上版本。
        /// </summary>
        /// <param name="req"><see cref="RemoveUserRequest"/></param>
        /// <returns><see cref="RemoveUserResponse"/></returns>
        public RemoveUserResponse RemoveUserSync(RemoveUserRequest req)
        {
            JsonResponseModel <RemoveUserResponse> rsp = null;

            try
            {
                var strResp = this.InternalRequestSync(req, "RemoveUser");
                rsp = JsonConvert.DeserializeObject <JsonResponseModel <RemoveUserResponse> >(strResp);
            }
            catch (JsonSerializationException e)
            {
                throw new TencentCloudSDKException(e.Message);
            }
            return(rsp.Response);
        }
예제 #10
0
        public RemoveUserResponse RemoveUser(RemoveUserRequest request)
        {
            RemoveUserResponse response = new RemoveUserResponse();

            response.Errors = new List <BusinessRule>();
            try {
                if (_userRepository.Remove(request.UserId) > 0)
                {
                    response.UserDeleted = true;
                }
            } catch (Exception ex)
            {
                response.Errors.Add(new BusinessRule("DAL", "DAL_ERROR: " + ex.Message));
            }
            return(response);
        }
예제 #11
0
 public BaseResponse Post(RemoveUserRequest request)
 {
     _log.StartLog(request);
     try
     {
         _credentialStore.RemoveUser(request.UserName);
         return(new BaseResponse());
     }
     catch (Exception e)
     {
         _log.Fatal("error", e);
         Errors.Add(e.Message + " " + e.StackTrace);
         return(new BaseResponse {
             Errors = Errors
         });
     }
 }
예제 #12
0
        public async Task <Response> RemoveUser(RemoveUserRequest request)
        {
            Response retval = new RemoveUserResponseUserIDNotExists(request);

            if (_dal.IsUserExists(_conn, request.User.UserID))
            {
                try
                {
                    _dal.RemoveUser(_conn, request.User.UserID);
                    retval = new RemoveUserResponseOK(request);
                }
                catch
                {
                    retval = new AppResponseError("Couldn't remove user, due to error in dataBase");
                }
            }
            return(retval);
        }
        public static EmailRequest UpdateFrom(this EmailRequest thisObject, RemoveUserRequest request)
        {
            if (thisObject == null)
            {
                thisObject = new EmailRequest();
            }

            string entityName = string.Empty;
            bool   isFolder   = false;

            ICommunityRepository communityRepository = DependencyResolver.Current.GetService(typeof(ICommunityRepository)) as ICommunityRepository;
            Community            community           = communityRepository.GetItem(c => c.CommunityID == request.CommunityID);

            if (community != null)
            {
                entityName = community.Name;
                isFolder   = community.CommunityTypeID == (int)CommunityTypes.Folder;
            }

            IUserRepository userRepository = DependencyResolver.Current.GetService(typeof(IUserRepository)) as IUserRepository;
            User            user           = userRepository.GetItem(u => u.UserID == request.UserID);

            if (user.IsSubscribed)
            {
                thisObject.Recipients.Add(new MailAddress(user.Email.FixEmailAddress(), user.FirstName + " " + user.LastName));

                thisObject.IsHtml = true;

                // Update the body and the subject.
                thisObject.Subject = string.Format(CultureInfo.CurrentUICulture, "You no longer have permissions on the Layerscape {0} \"{1}\"", isFolder ? "folder" : "community", entityName);

                var replacements = new Dictionary <string, string>
                {
                    { "@@CommunityName@@", HttpUtility.UrlDecode(entityName) },
                    { "@@CommunityLink@@", HttpUtility.UrlDecode(request.CommunityLink) },
                    { "@@UserName@@", HttpUtility.UrlDecode(user.GetFullName()) },
                    { "@@CommunityType@@", isFolder ? "folder" : "community" },
                    { "@@UserLink@@", HttpUtility.UrlDecode(request.UserLink) },
                };
                thisObject.MessageBody = FormatMailBodyUsingTemplate("removeuserrequest.html", replacements);
            }
            return(thisObject);
        }
예제 #14
0
        public override Task <RemoveUserResponse> RemoveUser(RemoveUserRequest request, ServerCallContext context)
        {
            this.Logger.LogInformation($"Operation:{Utils.GetActualAsyncMethodName()} Payload:{Utils.ProtoToJson(request)}");
            var response = new RemoveUserResponse()
            {
                Status = 0
            };

            try
            {
                UserManager.Instance.AddUser(request.CurrentUser.Name, request.User.Name, request.User.Email);
            }
            catch (Exception e)
            {
                response.Status  = 1;
                response.Message = e.Message;
            }
            return(Task.FromResult(response));
        }
예제 #15
0
        public Task <BaseResponse <bool> > RemoveUser(RemoveUserRequest request)
        {
            if (request.Id == null)
            {
                return(Task.FromResult(new BaseResponse <bool>
                {
                    Data = false
                }));
            }
            else
            {
                _repoUser.Remove(request.Id);

                return(Task.FromResult(new BaseResponse <bool>
                {
                    Data = true
                }));
            }
        }
예제 #16
0
        private void SendRemoveUserMail(PermissionItem permission)
        {
            try
            {
                // Send Mail.
                var request = new RemoveUserRequest();
                request.CommunityID   = permission.CommunityID;
                request.CommunityName = permission.CommunityName;
                request.CommunityLink = string.Format(CultureInfo.InvariantCulture, "{0}Community/Index/{1}", HttpContext.Request.Url.GetServerLink(), permission.CommunityID);
                request.UserID        = permission.UserID;
                request.UserLink      = string.Format(CultureInfo.InvariantCulture, "{0}Profile/Index/{1}", HttpContext.Request.Url.GetServerLink(), permission.UserID);
                request.UserName      = permission.Name;

                _notificationService.NotifyRemoveUser(request);
            }
            catch (Exception)
            {
                // Ignore all exceptions.
            }
        }
예제 #17
0
        public void TestRemoveNonExistingUser_GetRemoveUserNoUserFoundResponse(string id)
        {
            const int dataCount    = 5;
            var       expectedType = typeof(RemoveUserNoUserFoundResponse);

            //given a db with some users
            var dummyData = _testUtilitiesImpl.CreateUserDummyData(_signUpService, dataCount);

            //when we try to remove a user with non existing user id (mark as removed)
            var request = new RemoveUserRequest()
            {
                UserId = id
            };
            var result = _removeUserService.RemoveUser(request);

            //then we get RemoveUserNoUserFoundResponse
            Assert.That(result, Is.TypeOf(expectedType));

            _testUtilitiesImpl.DestroyUserDummyData(dummyData.ToArray());
        }
예제 #18
0
        public async Task <IActionResult> Remove([FromRoute] RemoveUserRequest removeRequest, CancellationToken cancellationToken)
        {
            await _userRepository.RemoveAsync(removeRequest.Id, cancellationToken);

            return(Ok());
        }
예제 #19
0
 public async Task <Response> RemoveUser(RemoveUserRequest request)
 {
     return(await _userService.RemoveUser(request));
 }
 public async Task <IHttpActionResult> Remove([FromUri] RemoveUserRequest request)
 {
     request.TenantId = (await _userManager.GetUserAsync(User)).TenantId;
     return(Ok(await _mediator.Send(request)));
 }
 /// <summary>
 /// Notify the the user about his removal from an community.
 /// </summary>
 /// <param name="notification">Community details</param>
 public void NotifyRemoveUser(RemoveUserRequest notification)
 {
     SendMail(notification);
 }
예제 #22
0
 public Response RemoveUser([FromBody] RemoveUserRequest request)
 {
     return(_removeUserService.RemoveUser(request));
 }
예제 #23
0
 public RemoveUserNoUserFoundResponse(RemoveUserRequest request)
 {
     Request = request;
 }
        public static EmailRequest UpdateFrom(this EmailRequest thisObject, object request)
        {
            //// TODO: Need to Get the Email request from the content of the message.
            //// TODO: Also we need to write a static methods for converting from the input request to the Email Request.

            if (thisObject == null)
            {
                thisObject = new EmailRequest();
            }

            JoinCommunityRequest joinRequest = request as JoinCommunityRequest;

            if (joinRequest != null)
            {
                return(thisObject.UpdateFrom(joinRequest));
            }

            FlaggedRequest flaggedRequest = request as FlaggedRequest;

            if (flaggedRequest != null)
            {
                return(thisObject.UpdateFrom(flaggedRequest));
            }

            EntityCommentRequest entityCommentRequest = request as EntityCommentRequest;

            if (entityCommentRequest != null)
            {
                return(thisObject.UpdateFrom(entityCommentRequest));
            }

            ModeratorPermissionStatusRequest moderatorPermissionStatusRequest = request as ModeratorPermissionStatusRequest;

            if (moderatorPermissionStatusRequest != null)
            {
                return(thisObject.UpdateFrom(moderatorPermissionStatusRequest));
            }

            UserPermissionStatusRequest userPermissionStatusRequest = request as UserPermissionStatusRequest;

            if (userPermissionStatusRequest != null)
            {
                return(thisObject.UpdateFrom(userPermissionStatusRequest));
            }

            RemoveUserRequest removeUserRequest = request as RemoveUserRequest;

            if (removeUserRequest != null)
            {
                return(thisObject.UpdateFrom(removeUserRequest));
            }

            UserPermissionChangedRequest userPermissionChangedRequest = request as UserPermissionChangedRequest;

            if (userPermissionChangedRequest != null)
            {
                return(thisObject.UpdateFrom(userPermissionChangedRequest));
            }

            NotifyInviteRequest notifyInviteRequest = request as NotifyInviteRequest;

            if (notifyInviteRequest != null)
            {
                return(thisObject.UpdateFrom(notifyInviteRequest));
            }

            EntityAdminActionRequest entityAdminDeleteRequest = request as EntityAdminActionRequest;

            if (entityAdminDeleteRequest != null)
            {
                return(thisObject.UpdateFrom(entityAdminDeleteRequest));
            }

            NewEntityRequest newEntityRequest = request as NewEntityRequest;

            if (newEntityRequest != null)
            {
                return(thisObject.UpdateFrom(newEntityRequest));
            }

            return(null);
        }
예제 #25
0
 public Task Remove(RemoveUserRequest request)
 {
     return(_userRepository.RemoveAsync(request));
 }
 public RemoveUserResponseOk(RemoveUserRequest request)
 {
     Request = request;
 }
예제 #27
0
 public BaseResponse Post(RemoveUserRequest request)
 {
     _log.StartLog(request);
     try
     {
         _authProvider.RemoveUser(request.UserName);
         return new BaseResponse();
     }
     catch (Exception e)
     {
         _log.Fatal("error", e);
         Errors.Add(e.Message + " " + e.StackTrace);
         return new BaseResponse { Errors = Errors };
     }
 }