Skip to content

Assign a manager to a user (org hierarchy).

python assign_manager.py --user user@contoso.onmicrosoft.com --manager boss@contoso.onmicrosoft.com

Permissions

Requires delegated permission User.ReadWrite.All (reading the manager back needs User.Read.All or an equivalent).

Reference

View source

import argparse

from office365.graph_client import GraphClient
from tests import test_user_principal_name, test_user_principal_name_alt
from tests.settings import client_id, password, tenant, username


def main():
    parser = argparse.ArgumentParser(description="Assign a manager to a user")
    parser.add_argument("--user", default=test_user_principal_name, help="the employee's user principal name")
    parser.add_argument("--manager", default=test_user_principal_name_alt, help="the manager's user principal name")
    args = parser.parse_args()

    client = GraphClient(tenant=tenant).with_username_and_password(client_id, username, password)

    user = client.users.get_by_principal_name(args.user).get().execute_query()
    manager = client.users.get_by_principal_name(args.manager).get().execute_query()
    assert user.id is not None

    user.assign_manager(manager).execute_query()

    assigned_ref = user.manager.get().execute_query()
    assert assigned_ref.id is not None
    assigned = client.users[assigned_ref.id].get().execute_query()
    print(f"Assigned manager for {user.user_principal_name}: {assigned.display_name} ({assigned.user_principal_name})")


if __name__ == "__main__":
    main()

← Back to Users