User Service
Key Responsibilities
- User Management: Handles creation, deletion, and retrieval of users, ensuring email uniqueness and adherence to organization constraints.
- Profile and Avatar Updates: Manages user profile data and avatar storage.
- Organization Operations: Supports user transfers between organizations and counts users in specific organizations.
- Business Rules Enforcement: Ensures actions comply with business rules such as organization membership and subscription limits.
Key Methods
- User Operations:
create_custom_user
: Creates a user with a unique email and an optional password.delete_user
: Deletes a user, ensuring they belong to the same organization as the requester.verify_user
: Activates a user's account by verifying their email.
- Profile and Avatar Management:
update_profile_data
: Updates or creates user profile details (e.g., name, description).update_avatar
: Updates or creates a user's avatar.get_user_avatar
: Retrieves a user's avatar if available.
- Organization Operations:
move_user_to_organization
: Transfers a user to a different organization.get_organization_users
: Lists all users in a specified organization.is_only_user_in_organization
: Checks if a user is the sole member of their organization.
- Utility Functions:
get_user_by_email
: Retrieves a user by their email address.get_amount_of_users
: Counts users in an organization or across the system.get_user_for_attaching_to_request
: Retrieves a user for attaching to a request.
Dependencies
- Repositories:
CustomUserRepository
: Handles user database operations.ProfileRepository
: Manages user profile data.AvatarRepository
: Handles user avatars.
- Utilities:
generate_password
: Creates secure, random passwords.calculate_checksum
: Generates unique usernames from email addresses.
Example Usage
- Create a User:
- Update Profile Data:
- Move a User to an Organization: