also try installing ldap with apt if its not available

This commit is contained in:
Nick Sweeting 2024-10-08 19:27:02 -07:00
parent 7c34f2bc90
commit f6446a141f
No known key found for this signature in database

View file

@ -10,7 +10,7 @@ from pydantic_pkgr import BinProviderName, ProviderLookupDict, SemVer
from abx.archivebox.base_plugin import BasePlugin
from abx.archivebox.base_hook import BaseHook
from abx.archivebox.base_binary import BaseBinary, BaseBinProvider
from abx.archivebox.base_binary import BaseBinary, BaseBinProvider, apt
from plugins_pkg.pip.apps import SYS_PIP_BINPROVIDER, VENV_PIP_BINPROVIDER, LIB_PIP_BINPROVIDER
from .settings import LDAP_CONFIG, get_ldap_lib
@ -24,18 +24,28 @@ LDAP_LIB = lambda: get_ldap_lib()[0] # lazy load to avoid slow ldap lib import
class LdapBinary(BaseBinary):
name: str = 'ldap'
description: str = 'LDAP Authentication'
binproviders_supported: List[InstanceOf[BaseBinProvider]] = [VENV_PIP_BINPROVIDER, SYS_PIP_BINPROVIDER, LIB_PIP_BINPROVIDER]
binproviders_supported: List[InstanceOf[BaseBinProvider]] = [VENV_PIP_BINPROVIDER, SYS_PIP_BINPROVIDER, LIB_PIP_BINPROVIDER, apt]
provider_overrides: Dict[BinProviderName, ProviderLookupDict] = {
VENV_PIP_BINPROVIDER.name: {
"abspath": lambda: LDAP_LIB() and Path(inspect.getfile(LDAP_LIB())), # type: ignore
"version": lambda: LDAP_LIB() and SemVer(LDAP_LIB().__version__), # type: ignore
"packages": lambda: ['archivebox[ldap]'],
"packages": lambda: ['python-ldap>=3.4.3', 'django-auth-ldap>=4.1.0'],
},
SYS_PIP_BINPROVIDER.name: {
"abspath": lambda: LDAP_LIB() and Path(inspect.getfile(LDAP_LIB())), # type: ignore
"version": lambda: LDAP_LIB() and SemVer(LDAP_LIB().__version__), # type: ignore
"packages": lambda: ['archivebox[ldap]'],
"packages": lambda: ['python-ldap>=3.4.3', 'django-auth-ldap>=4.1.0'],
},
LIB_PIP_BINPROVIDER.name: {
"abspath": lambda: LDAP_LIB() and Path(inspect.getfile(LDAP_LIB())), # type: ignore
"version": lambda: LDAP_LIB() and SemVer(LDAP_LIB().__version__), # type: ignore
"packages": lambda: ['python-ldap>=3.4.3', 'django-auth-ldap>=4.1.0'],
},
apt.name: {
"abspath": lambda: LDAP_LIB() and Path(inspect.getfile(LDAP_LIB())), # type: ignore
"version": lambda: LDAP_LIB() and SemVer(LDAP_LIB().__version__), # type: ignore
"packages": lambda: ['libssl-dev', 'libldap2-dev', 'libsasl2-dev', 'python3-ldap', 'python3-msgpack', 'python3-mutagen'],
},
}