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: