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
git clone [your-repo-url]
cd m365-user-manager
# Install dependencies
pip install -r requirements.txt
Configuration
- 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 failuresTokenManagerError: Authentication and token-related issuesPasswordManagerError: Password management operation failuresInsufficientPermissionsError: 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
Contributing
Please read the CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file m365_user_manager-0.1.0.tar.gz.
File metadata
- Download URL: m365_user_manager-0.1.0.tar.gz
- Upload date:
- Size: 61.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3bf68f5722abed5889eb461349339aa3ee811847a2d6f39d1c1d4b6289cb3b48
|
|
| MD5 |
1cdcf65933d461b8423bb2edb2829fb8
|
|
| BLAKE2b-256 |
e8790f2b97d827b50afcb072a9a1d8f1b10ea79c631decefef9aca31c34ee7df
|
File details
Details for the file m365_user_manager-0.1.0-py3-none-any.whl.
File metadata
- Download URL: m365_user_manager-0.1.0-py3-none-any.whl
- Upload date:
- Size: 77.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27c3459f2b18418ce9896d54198559479738b3383192c0025b422ec6f9677167
|
|
| MD5 |
b681f2d4d0f471afd390fd11436925b1
|
|
| BLAKE2b-256 |
cbe71a088be15e7ae5ad9a4d8a3f13f9927d99651066d484c3a0ca9f62b75078
|