Ejemplo n.º 1
0
        public IEnumerator RemoveRoleFromMember(string namespace_, string memberRoleId, string userId, string accessToken, ResultCallback callback)
        {
            Report.GetFunctionLog(this.GetType().Name);
            Assert.IsFalse(string.IsNullOrEmpty(namespace_), "Can't remove group role request! Namespace parameter is null!");
            Assert.IsFalse(string.IsNullOrEmpty(memberRoleId), "Can't remove group role request! MemberRoleId parameter is null!");
            Assert.IsFalse(string.IsNullOrEmpty(userId), "Can't remove group role request! UserId parameter is null!");
            Assert.IsFalse(string.IsNullOrEmpty(accessToken), "Can't remove group role request! AccessToken parameter is null!");

            AssignRoleRequest removedUser = new AssignRoleRequest
            {
                userId = userId
            };

            var request = HttpRequestBuilder
                          .CreateDelete(this.baseUrl + "/v1/public/namespaces/{namespace}/roles/{memberRoleId}/members")
                          .WithPathParam("namespace", namespace_)
                          .WithPathParam("memberRoleId", memberRoleId)
                          .WithBearerAuth(accessToken)
                          .WithBody(removedUser.ToUtf8Json())
                          .WithContentType(MediaType.ApplicationJson)
                          .Accepts(MediaType.ApplicationJson)
                          .GetResult();

            IHttpResponse response = null;

            yield return(this.httpClient.SendRequest(request, rsp => response = rsp));

            var result = response.TryParse();

            callback.Try(result);
        }
        public override async Task <RegisterUserResult> ExecuteAsync(RegisterUserRequest request)
        {
            RegisterUserResult retResult = new RegisterUserResult();

            CreateUserRequest userRequest = request.CreateUser;

            //TODO: Validation

            request.Provider = request.Provider ?? "Custom";

            var user = AppUserManager.FindByEmail(request.CreateUser.Email);

            if (user == null)
            {
                user = new ApplicationUser()
                {
                    UserName  = userRequest.Email,
                    Email     = userRequest.Email,
                    FirstName = userRequest.FirstName,
                    LastName  = userRequest.LastName,
                    JoinDate  = DateTime.Now.Date,
                    Provider  = request.Provider
                };

                retResult.IdentityResult = await AppUserManager.CreateAsync(user, userRequest.Password);

                retResult.Notification = retResult.IdentityResult.AsNotification();
            }
            else
            {
                retResult.Notification.Add(new NotificationItem($"RegisterUser: User {userRequest.Email} already exists", NotificationSeverity.Warning));
            }

            if (retResult.IdentityResult != null && !retResult.IdentityResult.Succeeded)
            {
                return(retResult);
            }
            else
            {
                retResult.User = user;

                AssignRoleRequest roleRequest = new AssignRoleRequest {
                    Role = request.CreateUser.RoleName, UserId = user.Id
                };
                AssignRoleResult roleResult = await _assignUserToRoleCommand.ExecuteAsync(roleRequest);

                retResult.Notification.AddRange(roleResult.Notification);
            }

            if (retResult.IsValid())
            {
                //send confirmation email (TODO: Use Domain Event?)
                retResult.EmailConfirmationCode = await AppUserManager.GenerateEmailConfirmationTokenAsync(user.Id);
            }

            return(retResult);
        }
Ejemplo n.º 3
0
    /// <summary>
    /// Assign Role Async.
    /// </summary>
    /// <param name="request">The <see cref="AssignRoleRequest{TIdentity}"/>.</param>
    /// <param name="cancellationToken">The <see cref="CancellationToken"/>.</param>
    /// <returns>Void.</returns>
    public virtual async Task AssignUserRoleAsync(AssignRoleRequest <TIdentity> request, CancellationToken cancellationToken = default)
    {
        if (request == null)
        {
            throw new ArgumentNullException(nameof(request));
        }

        request.Controller = BaseIdentityApi <TUser, TIdentity> .IdentityController;

        await this.InvokeAsync(request, cancellationToken);
    }
Ejemplo n.º 4
0
        public async Task <IActionResult> AssignRole([FromBody] AssignRoleRequest request)
        {
            var user = await _userManager.FindByNameAsync(request.UserName);

            if (user == null)
            {
                return(BadRequest("User does not exist."));
            }

            if (!await _roleManager.RoleExistsAsync(request.RoleName))
            {
                return(BadRequest("Role does not exist."));
            }

            await _userManager.AddToRoleAsync(user, request.RoleName);

            return(Ok($"{user.UserName} is now {request.RoleName}."));
        }
Ejemplo n.º 5
0
        public async Task <ActionResult> AssignRole(AssignRoleRequest req)
        {
            //if (!ModelState.IsValid)
            //{
            //    return BadRequest(new ApiResponse<string>()
            //    {
            //        Success = false,
            //        Errors = ModelState.Values.SelectMany(s => s.Errors.Select(e => e.ErrorMessage))
            //    });
            //}

            var response = await accountService.AssignRoleToUser(req.UserId, req.RoleName);

            if (!response.Success)
            {
                return(BadRequest(response));
            }
            return(Ok(response));
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> AssignRole([FromBody] AssignRoleRequest request)
        {
            await _userService.AssignUserRoleAsync(request.User, request.Role);

            var user = await _userService.GetUserByUserIdAsync(request.User);

            var userResponse = new UserResponse
            {
                UserId = user.Id,
                Name   = user.UserName,
                Role   = getRole(user)
            };

            IList <string> getRole(IdentityUser user)
            {
                var role = _userManager.GetRolesAsync(user);

                return(role.Result);
            }

            return(Ok(userResponse));
        }
Ejemplo n.º 7
0
 BattlenetRpcErrorCode HandleAssignRole(AssignRoleRequest request, NoData response)
 {
     Log.outError(LogFilter.ServiceProtobuf, "{0} Client tried to call not implemented method FriendsService.AssignRole: {1}",
                  GetCallerInfo(), request.ToString());
     return(BattlenetRpcErrorCode.RpcNotImplemented);
 }
Ejemplo n.º 8
0
        public override void CallServerMethod(uint token, uint methodId, CodedInputStream stream)
        {
            switch (methodId)
            {
            case 1:
            {
                SubscribeRequest request = new SubscribeRequest();
                request.MergeFrom(stream);


                SubscribeResponse     response = new SubscribeResponse();
                BattlenetRpcErrorCode status   = HandleSubscribe(request, response);
                Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.Subscribe(bgs.protocol.friends.v1.SubscribeRequest: {1}) returned bgs.protocol.friends.v1.SubscribeResponse: {2} status: {3}.",
                             GetCallerInfo(), request.ToString(), response.ToString(), status);
                if (status == 0)
                {
                    SendResponse(token, response);
                }
                else
                {
                    SendResponse(token, status);
                }
                break;
            }

            case 2:
            {
                SendInvitationRequest request = new SendInvitationRequest();
                request.MergeFrom(stream);


                NoData response = new NoData();
                BattlenetRpcErrorCode status = HandleSendInvitation(request, response);
                Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.SendInvitation(bgs.protocol.SendInvitationRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.",
                             GetCallerInfo(), request.ToString(), response.ToString(), status);
                if (status == 0)
                {
                    SendResponse(token, response);
                }
                else
                {
                    SendResponse(token, status);
                }
                break;
            }

            case 3:
            {
                GenericInvitationRequest request = new GenericInvitationRequest();
                request.MergeFrom(stream);


                NoData response = new NoData();
                BattlenetRpcErrorCode status = HandleAcceptInvitation(request, response);
                Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.AcceptInvitation(bgs.protocol.GenericInvitationRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.",
                             GetCallerInfo(), request.ToString(), response.ToString(), status);
                if (status == 0)
                {
                    SendResponse(token, response);
                }
                else
                {
                    SendResponse(token, status);
                }
                break;
            }

            case 4:
            {
                GenericInvitationRequest request = new GenericInvitationRequest();
                request.MergeFrom(stream);


                NoData response = new NoData();
                BattlenetRpcErrorCode status = HandleRevokeInvitation(request, response);
                Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.RevokeInvitation(bgs.protocol.GenericInvitationRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.",
                             GetCallerInfo(), request.ToString(), response.ToString(), status);
                if (status == 0)
                {
                    SendResponse(token, response);
                }
                else
                {
                    SendResponse(token, status);
                }
                break;
            }

            case 5:
            {
                GenericInvitationRequest request = new GenericInvitationRequest();
                request.MergeFrom(stream);


                NoData response = new NoData();
                BattlenetRpcErrorCode status = HandleDeclineInvitation(request, response);
                Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.DeclineInvitation(bgs.protocol.GenericInvitationRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.",
                             GetCallerInfo(), request.ToString(), response.ToString(), status);
                if (status == 0)
                {
                    SendResponse(token, response);
                }
                else
                {
                    SendResponse(token, status);
                }
                break;
            }

            case 6:
            {
                GenericInvitationRequest request = new GenericInvitationRequest();
                request.MergeFrom(stream);


                NoData response = new NoData();
                BattlenetRpcErrorCode status = HandleIgnoreInvitation(request, response);
                Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.IgnoreInvitation(bgs.protocol.GenericInvitationRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.",
                             GetCallerInfo(), request.ToString(), response.ToString(), status);
                if (status == 0)
                {
                    SendResponse(token, response);
                }
                else
                {
                    SendResponse(token, status);
                }
                break;
            }

            case 7:
            {
                AssignRoleRequest request = new AssignRoleRequest();
                request.MergeFrom(stream);


                NoData response = new NoData();
                BattlenetRpcErrorCode status = HandleAssignRole(request, response);
                Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.AssignRole(bgs.protocol.friends.v1.AssignRoleRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.",
                             GetCallerInfo(), request.ToString(), response.ToString(), status);
                if (status == 0)
                {
                    SendResponse(token, response);
                }
                else
                {
                    SendResponse(token, status);
                }
                break;
            }

            case 8:
            {
                GenericFriendRequest request = new GenericFriendRequest();
                request.MergeFrom(stream);


                GenericFriendResponse response = new GenericFriendResponse();
                BattlenetRpcErrorCode status   = HandleRemoveFriend(request, response);
                Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.RemoveFriend(bgs.protocol.friends.v1.GenericFriendRequest: {1}) returned bgs.protocol.friends.v1.GenericFriendResponse: {2} status: {3}.",
                             GetCallerInfo(), request.ToString(), response.ToString(), status);
                if (status == 0)
                {
                    SendResponse(token, response);
                }
                else
                {
                    SendResponse(token, status);
                }
                break;
            }

            case 9:
            {
                ViewFriendsRequest request = new ViewFriendsRequest();
                request.MergeFrom(stream);


                ViewFriendsResponse   response = new ViewFriendsResponse();
                BattlenetRpcErrorCode status   = HandleViewFriends(request, response);
                Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.ViewFriends(bgs.protocol.friends.v1.ViewFriendsRequest: {1}) returned bgs.protocol.friends.v1.ViewFriendsResponse: {2} status: {3}.",
                             GetCallerInfo(), request.ToString(), response.ToString(), status);
                if (status == 0)
                {
                    SendResponse(token, response);
                }
                else
                {
                    SendResponse(token, status);
                }
                break;
            }

            case 10:
            {
                UpdateFriendStateRequest request = new UpdateFriendStateRequest();
                request.MergeFrom(stream);


                NoData response = new NoData();
                BattlenetRpcErrorCode status = HandleUpdateFriendState(request, response);
                Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.UpdateFriendState(bgs.protocol.friends.v1.UpdateFriendStateRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.",
                             GetCallerInfo(), request.ToString(), response.ToString(), status);
                if (status == 0)
                {
                    SendResponse(token, response);
                }
                else
                {
                    SendResponse(token, status);
                }
                break;
            }

            case 11:
            {
                UnsubscribeRequest request = new UnsubscribeRequest();
                request.MergeFrom(stream);


                NoData response = new NoData();
                BattlenetRpcErrorCode status = HandleUnsubscribe(request, response);
                Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.Unsubscribe(bgs.protocol.friends.v1.UnsubscribeRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.",
                             GetCallerInfo(), request.ToString(), response.ToString(), status);
                if (status == 0)
                {
                    SendResponse(token, response);
                }
                else
                {
                    SendResponse(token, status);
                }
                break;
            }

            case 12:
            {
                GenericFriendRequest request = new GenericFriendRequest();
                request.MergeFrom(stream);


                NoData response = new NoData();
                BattlenetRpcErrorCode status = HandleRevokeAllInvitations(request, response);
                Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.RevokeAllInvitations(bgs.protocol.friends.v1.GenericFriendRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.",
                             GetCallerInfo(), request.ToString(), response.ToString(), status);
                if (status == 0)
                {
                    SendResponse(token, response);
                }
                else
                {
                    SendResponse(token, status);
                }
                break;
            }

            /*case 13:
             *  {
             *      GetFriendListRequest request = new GetFriendListRequest();
             *      request.MergeFrom(stream);
             *
             *
             *      GetFriendListResponse response = new GetFriendListResponse();
             *      BattlenetRpcErrorCode status = HandleGetFriendList(request, response);
             *      Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.GetFriendList(bgs.protocol.friends.v1.GetFriendListRequest: {1}) returned bgs.protocol.friends.v1.GetFriendListResponse: {2} status: {3}.",
             *        GetCallerInfo(), request.ToString(), response.ToString(), status);
             *      if (status == 0)
             *          SendResponse(token, response);
             *      else
             *          SendResponse(token, status);
             *      break;
             *  }
             * case 14:
             *  {
             *      CreateFriendshipRequest request = new CreateFriendshipRequest();
             *      request.MergeFrom(stream);
             *
             *
             *      NoData response = new NoData();
             *      BattlenetRpcErrorCode status = HandleCreateFriendship(request, response);
             *      Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method FriendsService.CreateFriendship(bgs.protocol.friends.v1.CreateFriendshipRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.",
             *        GetCallerInfo(), request.ToString(), response.ToString(), status);
             *      if (status == 0)
             *          SendResponse(token, response);
             *      else
             *          SendResponse(token, status);
             *      break;
             *  }*/
            default:
                Log.outError(LogFilter.ServiceProtobuf, "Bad method id {0}.", methodId);
                SendResponse(token, BattlenetRpcErrorCode.RpcInvalidMethod);
                break;
            }
        }