Skip to main content

A package dedicated to creating new users in o365

Project description

M365 User Manager

A robust Python package for automating Microsoft 365 user management operations through Microsoft Graph API, with support for both local execution and Asio RPA integration.

Features

  • User Creation & Management

    • Create new M365 users with comprehensive profile details
    • Copy properties, groups, and roles from template users
    • Manage group memberships and license assignments
    • Handle phone number formatting and validation
  • License Management

    • Automatic license availability checking
    • Smart license name matching and resolution
    • Batch license assignment with detailed reporting
    • Support for all major Microsoft 365 license types
  • Security & Authentication

    • Secure password generation and sharing
    • Integration with Password Pusher and fallback services
    • Token management for Microsoft Graph API
    • Comprehensive error handling and logging
  • Environment Flexibility

    • Supports both local execution and Asio RPA environment
    • Environment-aware configuration loading
    • Unified logging across environments

Installation

# Clone the repository
gh repo clone VinnyVanGogh/m365_user_manager
cd m365-user-manager

# Install dependencies
pip install -r requirements.txt

Configuration

  1. Create a configuration file at environments/asio_365_config.json:
{
    "client_id": "your_client_id",
    "client_secret": "your_client_secret",
    "tenant_id": "your_tenant_id"
}

(Optional) Set up Discord webhook for logging:

  • Configure webhook URL through the input form or environment configuration

Usage

Basic Usage

from m365_user_manager import UserManagementOrchestrator

# Initialize and run the orchestrator
orchestrator = UserManagementOrchestrator()
orchestrator.run()

Creating a New User

from m365_user_manager import M365UserManager

# Initialize the manager
user_manager = M365UserManager(access_token, logger)

# Create a new user
result = user_manager.create_user(
    display_name="John Doe",
    email_address="john.doe@example.com",
    job_title="Software Engineer",
    department="Engineering",
    license_skus=["Microsoft 365 E3", "Power BI Pro"],
    groups=["Engineering Team", "All Company"]
)

Copying User Properties

# Create user by copying from template
result = user_manager.create_user(
    display_name="Jane Smith",
    email_address="jane.smith@example.com",
    user_to_copy="template@example.com",
    copy_licenses=True
)

Input Parameters

Parameter Description Required
display_name User's full name Yes
email_address User's email address Yes
password Initial password (generated if not provided) No
job_title User's job title No
department User's department No
office_location Office location No
city City No
state State/Province No
business_phone Business phone number No
mobile_phone Mobile phone number No
groups List or comma-separated string of groups No
license_skus List or comma-separated string of licenses No
user_to_copy Template user's email to copy from No
copy_licenses Whether to copy licenses from template user No

Error Handling

The package includes comprehensive error handling with custom exceptions:

  • GraphAPIError: Microsoft Graph API operation failures
  • TokenManagerError: Authentication and token-related issues
  • PasswordManagerError: Password management operation failures
  • InsufficientPermissionsError: Permission-related failures

Logging

The package uses a unified logging system supporting:

  • Local file logging
  • Discord webhook integration
  • ASIO logging integration

Configure logging through the logging_config function in config/default_config.py.

Dependencies

  • Microsoft Graph API
  • Password Pusher API (for secure password sharing)
  • Discord Webhook (optional, for logging)
  • Asio RPA Framework (optional)

License

MIT License

Contributing

Please read the CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

m365_user_manager-0.1.1rc14.tar.gz (91.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

m365_user_manager-0.1.1rc14-py3-none-any.whl (110.5 kB view details)

Uploaded Python 3

File details

Details for the file m365_user_manager-0.1.1rc14.tar.gz.

File metadata

  • Download URL: m365_user_manager-0.1.1rc14.tar.gz
  • Upload date:
  • Size: 91.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for m365_user_manager-0.1.1rc14.tar.gz
Algorithm Hash digest
SHA256 c1083215c647d9c0b0951cc51e9b5c001a5a22982e07611943ef2532223da0e6
MD5 7cc2fb372e1d6b9d2f415c9562cd926b
BLAKE2b-256 2c5d15bd73bdb98929fb8e2e850cb44c76c2f22880a87282b25ed8206ace2c70

See more details on using hashes here.

File details

Details for the file m365_user_manager-0.1.1rc14-py3-none-any.whl.

File metadata

File hashes

Hashes for m365_user_manager-0.1.1rc14-py3-none-any.whl
Algorithm Hash digest
SHA256 ae7fe2977b5d6c12aef5a5aa19fa9fad8cd4cfd8f36f324deea7a7809c7917f1
MD5 94c7bb8f9afa8cdda0e50846d1c570ce
BLAKE2b-256 b6da0fce9da0dff2f7dffdff816bf7f915ffa5dbb05ad73b8e674c5b06fa5299

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page