Created
May 23, 2011 19:32
-
-
Save jankoprowski/987379 to your computer and use it in GitHub Desktop.
Concept to adding many ActiveDirectory/LDAP accounts to ReviewBoard
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# Setup django environmet | |
# | |
from django.core.management import setup_environ | |
import reviewboard.settings | |
setup_environ(reviewboard.settings) | |
# | |
# Load Review Board instance configuration | |
# | |
# @note This part extends settings from django.conf | |
# on Review Board specific attributes | |
# | |
from reviewboard.admin import siteconfig | |
siteconfig.load_site_config() | |
# | |
# Load Django configuration | |
# | |
from django.conf import settings | |
from django.contrib.auth.models import User | |
from django.contrib.auth.models import Group | |
def add_many_users_by_ldap_filter(filter): | |
users = activedirectory.search_s(self.base_dn, ldap.SCOPE_SUBTREE, filter) | |
for user in users: | |
user_info = user[1] | |
username = user_info.get('username', '')[0] | |
try: | |
User.objects.get(username=username) | |
except User.DoesNotExist: | |
first_name = user_info.get('givenName', [username])[0] | |
last_name = user_info.get('sn', [""])[0] | |
if settings.LDAP_EMAIL_DOMAIN: | |
email = u'%s@%s' % (username, settings.LDAP_EMAIL_DOMAIN) | |
elif settings.LDAP_EMAIL_ATTRIBUTE: | |
email = user_info[settings.LDAP_EMAIL_ATTRIBUTE][0] | |
user = User(username=username, password='', | |
first_name=first_name, | |
last_name=last_name, | |
email=email) | |
user.is_staff = False | |
user.is_superuser = False | |
user.set_unusable_password() | |
user.save() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
A naive question. How to use this code? Is this to be run directly as a python script or from within Reviewboard somehow?