Class UserServiceImpl

All Implemented Interfaces:
UserServiceGrpc.AsyncService, io.grpc.BindableService

public final class UserServiceImpl extends UserServiceGrpc.UserServiceImplBase
  • Constructor Details

    • UserServiceImpl

      public UserServiceImpl(SoulFireServer soulFireServer)
  • Method Details

    • createUser

      public void createUser(UserCreateRequest request, io.grpc.stub.StreamObserver<UserCreateResponse> responseObserver)
      Description copied from interface: UserServiceGrpc.AsyncService
      Creates a new user account in the system.
      Requires the CREATE_USER global permission.
      Returns the UUID of the newly created user.
      Error cases:
        - INTERNAL: If username or email already exists, or validation fails
        - PERMISSION_DENIED: If caller lacks CREATE_USER permission
      
    • deleteUser

      public void deleteUser(UserDeleteRequest request, io.grpc.stub.StreamObserver<UserDeleteResponse> responseObserver)
      Description copied from interface: UserServiceGrpc.AsyncService
      Deletes an existing user from the system.
      Requires the DELETE_USER global permission.
      Cascades to delete all owned instances and audit logs.
      Also disconnects the user from any active log subscriptions.
      Error cases:
        - INTERNAL: If user not found, or attempting to delete self/root user
        - PERMISSION_DENIED: If caller lacks DELETE_USER permission
      
    • listUsers

      public void listUsers(UserListRequest request, io.grpc.stub.StreamObserver<UserListResponse> responseObserver)
      Description copied from interface: UserServiceGrpc.AsyncService
      Lists all users in the system.
      Requires the READ_USER global permission.
      Returns complete information for all users including timestamps.
      Error cases:
        - INTERNAL: If database query fails
        - PERMISSION_DENIED: If caller lacks READ_USER permission
      
    • getUserInfo

      public void getUserInfo(UserInfoRequest request, io.grpc.stub.StreamObserver<UserInfoResponse> responseObserver)
      Description copied from interface: UserServiceGrpc.AsyncService
      Retrieves detailed information about a specific user.
      Requires the READ_USER global permission.
      Error cases:
        - INTERNAL: If user not found
        - PERMISSION_DENIED: If caller lacks READ_USER permission
      
    • invalidateSessions

      public void invalidateSessions(InvalidateSessionsRequest request, io.grpc.stub.StreamObserver<InvalidateSessionsResponse> responseObserver)
      Description copied from interface: UserServiceGrpc.AsyncService
      Invalidates all active sessions for a user by updating their min_issued_at timestamp.
      Requires the INVALIDATE_SESSIONS global permission.
      After this call, all previously issued JWT tokens for the user become invalid,
      effectively logging them out of all devices.
      Error cases:
        - INTERNAL: If user not found, or attempting to invalidate self/root user sessions
        - PERMISSION_DENIED: If caller lacks INVALIDATE_SESSIONS permission
      
    • updateUser

      public void updateUser(UpdateUserRequest request, io.grpc.stub.StreamObserver<UpdateUserResponse> responseObserver)
      Description copied from interface: UserServiceGrpc.AsyncService
      Updates an existing user's profile information.
      Requires the UPDATE_USER global permission.
      All profile fields (username, email, role) are updated to the provided values.
      Error cases:
        - INTERNAL: If user not found, attempting to update self/root user, or validation fails
        - PERMISSION_DENIED: If caller lacks UPDATE_USER permission
      
    • generateUserAPIToken

      public void generateUserAPIToken(GenerateUserAPITokenRequest request, io.grpc.stub.StreamObserver<GenerateUserAPITokenResponse> responseObserver)
      Description copied from interface: UserServiceGrpc.AsyncService
      Generates a new API token (JWT) for a specific user.
      Requires the GENERATE_API_TOKEN global permission.
      The generated token has the "api" audience and does not expire.
      The token can be invalidated by calling InvalidateSessions for the user.
      Error cases:
        - INTERNAL: If user not found, or attempting to generate token for self/root user
        - PERMISSION_DENIED: If caller lacks GENERATE_API_TOKEN permission