def create_or_update_project(self, project): conn = LDAPClient() try: conn.get_group('cn=%s' % project.pid) except: conn.add_group(cn=str(project.pid)) users = [str(person.user.username) for person in project.users.all()] if users: conn.update_group('cn=%s' % project.pid, memberUid=users) else: conn.update_group('cn=%s' % project.pid, memberUid='') del(conn)
def create_institute(self, institute): conn = LDAPClient() if institute.gid: try: lgroup = conn.get_group("gidNumber=%s" % institute.gid) gid = int(lgroup.gidNumber) except DoesNotExistException: gid = conn.add_group(cn=str(institute.name.lower().replace(" ", "")), gidNumber=str(institute.gid)) else: try: lgroup = conn.get_group("cn=%s" % str(institute.name.lower().replace(" ", ""))) gid = int(lgroup.gidNumber) except DoesNotExistException: gid = conn.add_group(cn=str(institute.name.lower().replace(" ", ""))) del (conn) return gid
def test_add_existing_gid(self): lcon = LDAPClient() gid = lcon.add_group(cn='testinstituteother', gidNumber=['700']) institute = Institute.objects.create(name='Test Institute 26', gid=700) lgroup = lcon.get_group('gidNumber=%s' % institute.gid) self.assertEqual(gid, institute.gid) self.assertEqual(gid, 700)
def test_add_existing_name(self): lcon = LDAPClient() gid = lcon.add_group(cn='testinstitute27') institute = Institute.objects.create(name='Test Institute 27') lgroup = lcon.get_group('gidNumber=%s' % institute.gid) self.assertEqual(gid, institute.gid) self.assertEqual(institute.name.lower().replace(' ' , ''), lgroup.cn)
def create_software(self, software): conn = LDAPClient() if software.gid: try: lgroup = conn.get_group("gidNumber=%s" % software.gid) gid = int(lgroup.gidNumber) except DoesNotExistException: gid = conn.add_group(cn=str(software.name.lower().replace(' ', '')), gidNumber=str(software.gid)) else: if not software.restricted and software.softwarelicense_set.count() == 0: return None try: lgroup = conn.get_group("cn=%s" % str(software.name.lower().replace(' ', ''))) gid = int(lgroup.gidNumber) except DoesNotExistException: gid = conn.add_group(cn=str(software.name.lower().replace(' ', ''))) del(conn) return gid