Compare commits
	
		
			4 Commits
		
	
	
		
			533a9885d4
			...
			ca91a5512b
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						
						
							
						
						ca91a5512b
	
				 | 
					
					
						|||
| 
						
						
							
						
						e1beff914b
	
				 | 
					
					
						|||
| 
						
						
							
						
						73dfce0a91
	
				 | 
					
					
						|||
| 
						
						
							
						
						92e2b393c8
	
				 | 
					
					
						
@@ -23,6 +23,7 @@ class LUSER():
 | 
				
			|||||||
        organization = ''
 | 
					        organization = ''
 | 
				
			||||||
        dc = ''
 | 
					        dc = ''
 | 
				
			||||||
        dcfull = ''
 | 
					        dcfull = ''
 | 
				
			||||||
 | 
					        domain = ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Find ou in base and set it as organization variable
 | 
					        # Find ou in base and set it as organization variable
 | 
				
			||||||
        for i in baselist:
 | 
					        for i in baselist:
 | 
				
			||||||
@@ -39,19 +40,21 @@ class LUSER():
 | 
				
			|||||||
        for i in baselist:
 | 
					        for i in baselist:
 | 
				
			||||||
            if i.split('=')[0] == 'dc':
 | 
					            if i.split('=')[0] == 'dc':
 | 
				
			||||||
            # if first dc, add it from dc variable
 | 
					            # if first dc, add it from dc variable
 | 
				
			||||||
                if dcfull == '':
 | 
					                if dcfull == '' and domain == '':
 | 
				
			||||||
                    dcfull = f'dc={dc}'
 | 
					                    dcfull = f'dc={dc}'
 | 
				
			||||||
 | 
					                    domain = dc
 | 
				
			||||||
                else:
 | 
					                else:
 | 
				
			||||||
                    dcfull += ',dc=' + i.split('=')[1]
 | 
					                    dcfull += ',dc=' + i.split('=')[1]
 | 
				
			||||||
 | 
					                    domain += f'.{i.split("=")[1]}'
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
        return organization, dc, dcfull
 | 
					        return organization, dc, dcfull, domain
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __init__(self, ldap_host, admin_user, admin_pass, base, basealt='', autoconnect=True):
 | 
					    def __init__(self, ldap_host, admin_user, admin_pass, base, basealt='', autoconnect=True):
 | 
				
			||||||
        self.ldap_host = ldap_host
 | 
					        self.ldap_host = ldap_host
 | 
				
			||||||
        self.admin_user = admin_user
 | 
					        self.admin_user = admin_user
 | 
				
			||||||
        self.admin_pass = admin_pass
 | 
					        self.admin_pass = admin_pass
 | 
				
			||||||
        self.base = base
 | 
					        self.base = base
 | 
				
			||||||
        self.organization, self.dc, self.dcfull = self.expandbase()
 | 
					        self.organization, self.dc, self.dcfull, self.domain = self.expandbase()
 | 
				
			||||||
        self.basealt = basealt
 | 
					        self.basealt = basealt
 | 
				
			||||||
        self.alt = True
 | 
					        self.alt = True
 | 
				
			||||||
        self.autoconnect = autoconnect
 | 
					        self.autoconnect = autoconnect
 | 
				
			||||||
@@ -67,73 +70,21 @@ class LUSER():
 | 
				
			|||||||
        if basealt == '':
 | 
					        if basealt == '':
 | 
				
			||||||
            self.alt = False
 | 
					            self.alt = False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def prepareluser(self):
 | 
					    def prepare(self):
 | 
				
			||||||
        '''
 | 
					        '''
 | 
				
			||||||
           Create base on LDAP host
 | 
					           Create base on LDAP host
 | 
				
			||||||
        '''
 | 
					        '''
 | 
				
			||||||
 | 
					        # Create dcObject on LDAP server and store boolean indicating it's success
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Split base string with commas to find values of organization and dc
 | 
					        rcode1 = self.ldapconnection.add(f'dc={self.dcfull}', ['dcObject', 'organization'], {'o' : self.dc, 'dc' : self.dc})
 | 
				
			||||||
        baselist = self.base.split(",")
 | 
					 | 
				
			||||||
        basealtlist = self.basealt.split(",")
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        # Find ou in base and set it as organization variable
 | 
					 | 
				
			||||||
        for i in baselist:
 | 
					 | 
				
			||||||
            if i.split('=')[0] == 'ou':
 | 
					 | 
				
			||||||
                organization = i.split('=')[1]
 | 
					 | 
				
			||||||
                break
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        for i in basealtlist:
 | 
					 | 
				
			||||||
            if i.split('=')[0] == 'ou':
 | 
					 | 
				
			||||||
                organizationalt = i.split('=')[1]
 | 
					 | 
				
			||||||
                break
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Find first dc and set it as dc variable        
 | 
					 | 
				
			||||||
        for i in baselist:
 | 
					 | 
				
			||||||
            if i.split('=')[0] == 'dc':
 | 
					 | 
				
			||||||
                dc = i.split('=')[1]
 | 
					 | 
				
			||||||
                break
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        for i in basealtlist:
 | 
					 | 
				
			||||||
            if i.split('=')[0] == 'dc':
 | 
					 | 
				
			||||||
                dcalt = i.split('=')[1]
 | 
					 | 
				
			||||||
                break
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Find full dc and set it as dcfull variable
 | 
					 | 
				
			||||||
        dcfull = ''
 | 
					 | 
				
			||||||
        for i in baselist:
 | 
					 | 
				
			||||||
            if i.split('=')[0] == 'dc':
 | 
					 | 
				
			||||||
                dcfull += ',dc=' + i.split('=')[1]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        for i in basealtlist:
 | 
					 | 
				
			||||||
            if i.split('=')[0] == 'dc':
 | 
					 | 
				
			||||||
                dcfullalt += ',dc=' + i.split('=')[1]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Remove first column character
 | 
					 | 
				
			||||||
        dcfull = dcfull[1:]
 | 
					 | 
				
			||||||
        dcfullalt = dcfull[1:]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Create organization on LDAP server and store boolean indicating it's success
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        rcode1 = self.ldapconnection.add(f'dc={dcfull}', ['dcObject', 'organization'], {'o' : dc, 'dc' : dc})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if self.alt:
 | 
					 | 
				
			||||||
            rcode2 = self.ldapconnection.add(f'dc={dcfullalt}', ['dcObject', 'organization'], {'o' : dcalt, 'dc' : dcalt})
 | 
					 | 
				
			||||||
        else:
 | 
					 | 
				
			||||||
            rcode2 = True
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Create organizational units on LDAP server and store boolean indicating it's success
 | 
					        # Create organizational units on LDAP server and store boolean indicating it's success
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        rcode3 = self.ldapconnection.add(self.base, ['top', 'organizationalUnit'], {'ou' : organization})
 | 
					        rcode2 = self.ldapconnection.add(self.base, ['top', 'organizationalUnit'], {'ou' : self.organization})
 | 
				
			||||||
 | 
					 | 
				
			||||||
        if self.alt :
 | 
					 | 
				
			||||||
            rcode4 = self.ldapconnection.add(self.basealt, ['top', 'organizationalUnit'], {'ou' : organizationalt})
 | 
					 | 
				
			||||||
        else:
 | 
					 | 
				
			||||||
            rcode4 = True
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Return True only if all return values are true
 | 
					        # Return True only if all return values are true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return rcode1 and rcode2 and rcode3 and rcode4
 | 
					        return rcode1 and rcode2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def lastpwchangenow(self):
 | 
					    def lastpwchangenow(self):
 | 
				
			||||||
        '''
 | 
					        '''
 | 
				
			||||||
@@ -163,9 +114,9 @@ class LUSER():
 | 
				
			|||||||
        objectClass = ['top', 'person', 'organizationalPerson', 'inetOrgPerson', 'posixAccount', 'shadowAccount']
 | 
					        objectClass = ['top', 'person', 'organizationalPerson', 'inetOrgPerson', 'posixAccount', 'shadowAccount']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Attributes for a user entry
 | 
					        # Attributes for a user entry
 | 
				
			||||||
        attributes = {'cn' : user, 'sn' : user, 'givenName' : user, 'uid' : user, 'uidNumber' : self.lastuid, 'gidNumber' : self.lastgid, 'homeDirectory' : f'/home/{user}', 'loginShell' : '/usr/bin/git-shell', 'gecos' : 'SystemUser', 'shadowLastChange' : self.lastpwchangenow(), 'shadowMax' : '45', 'userPassword' : password }
 | 
					        attributes = {'cn' : user, 'sn' : user, 'givenName' : user, 'uid' : user, 'uidNumber' : self.lastuid, 'gidNumber' : self.lastgid, 'homeDirectory' : f'/home/{user}', 'loginShell' : '/usr/bin/git-shell', 'gecos' : 'SystemUser', 'shadowLastChange' : self.lastpwchangenow(), 'shadowMax' : '45', 'userPassword' : password, 'mail' : f'{user}@{self.domain}' }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        attributesalt = {'cn' : user, 'sn' : user, 'givenName' : user, 'uid' : user, 'uidNumber' : self.lastuid, 'gidNumber' : self.lastgid, 'homeDirectory' : f'/home/{user}', 'loginShell' : '/usr//bin/git-shell', 'gecos' : 'SystemUser', 'shadowLastChange' : self.lastpwchangenow(), 'shadowMax' : '45', 'userPassword' : althash}
 | 
					        attributesalt = {'cn' : user, 'sn' : user, 'givenName' : user, 'uid' : user, 'uidNumber' : self.lastuid, 'gidNumber' : self.lastgid, 'homeDirectory' : f'/home/{user}', 'loginShell' : '/usr//bin/git-shell', 'gecos' : 'SystemUser', 'shadowLastChange' : self.lastpwchangenow(), 'shadowMax' : '45', 'userPassword' : althash, 'mail' : f'{user}@{self.domain}'}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Return boolean value of new user entry
 | 
					        # Return boolean value of new user entry
 | 
				
			||||||
        rcode1 = self.ldapconnection.add(f'{id},{self.base}', objectClass, attributes)
 | 
					        rcode1 = self.ldapconnection.add(f'{id},{self.base}', objectClass, attributes)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user