Skip to content

Instantly share code, notes, and snippets.

@jankoprowski
Created May 23, 2011 19:32
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jankoprowski/987379 to your computer and use it in GitHub Desktop.
Save jankoprowski/987379 to your computer and use it in GitHub Desktop.
Concept to adding many ActiveDirectory/LDAP accounts to ReviewBoard
#
# 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()
@vrenjith
Copy link

A naive question. How to use this code? Is this to be run directly as a python script or from within Reviewboard somehow?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment