0001-WIP-ldap_backend-deactivate-accounts-if-ldap-entry-m.patch
src/authentic2/backends/ldap_backend.py | ||
---|---|---|
947 | 947 |
yield user_dn, user |
948 | 948 | |
949 | 949 |
@classmethod |
950 |
def get_users(cls):
|
|
950 |
def _get_user_tuples(cls):
|
|
951 | 951 |
logger = logging.getLogger(__name__) |
952 | 952 |
for block in cls.get_config(): |
953 | 953 |
conn = cls.get_connection(block) |
... | ... | |
960 | 960 |
attrs = cls.get_ldap_attributes_names(block) |
961 | 961 |
users = cls.paged_search(conn, user_basedn, ldap.SCOPE_SUBTREE, user_filter, |
962 | 962 |
attrlist=attrs) |
963 |
backend = cls() |
|
964 | 963 |
for user_dn, data in users: |
965 | 964 |
# ignore referrals |
966 | 965 |
if not user_dn: |
967 | 966 |
continue |
968 | 967 |
data = cls.normalize_ldap_results(data) |
969 | 968 |
data['dn'] = user_dn |
970 |
yield backend._return_user(user_dn, None, conn, block, data) |
|
969 |
yield user_dn, None, conn, block, data |
|
970 | ||
971 |
@classmethod |
|
972 |
def get_users(cls): |
|
973 |
backend = cls() |
|
974 |
for user_tuple in cls._get_user_tuples(): |
|
975 |
yield backend._return_user(*user_tuple) |
|
976 | ||
977 |
@classmethod |
|
978 |
def deactivate_orphan_accounts(cls): |
|
979 |
backend = cls() |
|
980 |
usernames = [backend.create_username(*user_tuple[3:5]) for user_tuple in cls._get_user_tuples()] |
|
981 |
for user in LDAPUser.objects.all(): |
|
982 |
if user.username not in usernames: |
|
983 |
setattr(user, 'is_active', False) |
|
984 |
user._changed = True |
|
985 |
user.save() |
|
971 | 986 | |
972 | 987 |
@classmethod |
973 | 988 |
def ad_encoding(cls, s): |
974 |
- |