62 lines
1.2 KiB
Python
62 lines
1.2 KiB
Python
# coding: utf-8
|
|
|
|
import asyncio
|
|
from pprint import pprint as pp
|
|
|
|
from phi.async_ldap.model import (
|
|
# Hackers,
|
|
# User,
|
|
Robots,
|
|
Service,
|
|
Congregations,
|
|
Group,
|
|
build_heritage,
|
|
iter_children,
|
|
)
|
|
|
|
from phi.async_ldap.new_model import Hackers, User
|
|
from phi.async_ldap.client import AsyncClient
|
|
|
|
|
|
async def dlv(h, cls):
|
|
return [el async for el in build_heritage(h, cls)]
|
|
|
|
|
|
cl = AsyncClient(
|
|
"ldap://localhost",
|
|
port=389,
|
|
encryption=True,
|
|
# validate=True,
|
|
ca_cert="/home/leo/Documents/coding/phi/openldap/cert.pem",
|
|
username="root",
|
|
password="root",
|
|
base_dn="dc=unit,dc=macaomilano,dc=org",
|
|
attribute_id="cn",
|
|
)
|
|
|
|
|
|
async def get_all_children():
|
|
h = Hackers(cl)
|
|
r = Robots(cl)
|
|
g = Congregations(cl)
|
|
|
|
hackers = await dlv(h, User)
|
|
robots = await dlv(r, Service)
|
|
groups = await dlv(g, Group)
|
|
|
|
return (hackers, robots, groups)
|
|
|
|
|
|
async def print_async(awaitable):
|
|
result = await awaitable
|
|
pp(result)
|
|
|
|
|
|
async def describe(obj):
|
|
results = await obj.describe()
|
|
return results
|
|
|
|
|
|
asyncio.run(print_async(describe(Hackers(cl))))
|
|
asyncio.run(print_async(describe(User(cl, "conte_mascetti"))))
|