ORE Studio 0.0.4
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
signup_service Class Reference

Service for user self-registration (signup). More...

#include <signup_service.hpp>

Collaboration diagram for signup_service:
Collaboration graph

Public Types

using context = ores::database::context
 

Public Member Functions

 signup_service (database::context ctx, std::shared_ptr< variability::service::system_flags_service > system_flags, std::shared_ptr< authorization_service > auth_service)
 Constructs a signup_service.
 
signup_result register_user (const std::string &username, const std::string &email, const std::string &password)
 Registers a new user account.
 
bool is_signup_enabled () const
 Checks if signups are currently enabled.
 

Detailed Description

Service for user self-registration (signup).

This service handles the signup workflow, allowing users to create their own accounts when self-registration is enabled via the system.user_signups feature flag.

The service validates:

Constructor & Destructor Documentation

◆ signup_service()

signup_service ( database::context  ctx,
std::shared_ptr< variability::service::system_flags_service system_flags,
std::shared_ptr< authorization_service auth_service 
)

Constructs a signup_service.

Parameters
ctxThe database context for repository access.
system_flagsShared system flags service for flag access.
auth_serviceShared authorization service for role assignment.

Member Function Documentation

◆ register_user()

signup_result register_user ( const std::string &  username,
const std::string &  email,
const std::string &  password 
)

Registers a new user account.

This method performs the full signup workflow:

  1. Checks if signups are enabled (system.user_signups flag)
  2. Checks if authorization is required (fails if enabled - not implemented)
  3. Validates username uniqueness
  4. Validates email format and uniqueness
  5. Validates password against policy
  6. Creates the account
Parameters
usernameThe desired username (must be unique)
emailThe user's email address (must be unique and valid format)
passwordThe password (must meet policy requirements)
Returns
signup_result with success status and account details or error info

◆ is_signup_enabled()

bool is_signup_enabled ( ) const

Checks if signups are currently enabled.

Returns
true if the system.user_signups flag is enabled