def setUp(self): unittest.TestCase.setUp(self) self.username = '******' self.password = '******' ldap_connector = LdapConnector(username=self.username, password=self.password) self.ldapcon = ldap_connector.get_connection() self.ldmf = LdapModelFactory(self.ldapcon)
def get_ldapcon(self): #@todo: this is not enough ... ass a cherrypy before-handler if self.session.get('username') is None or self.session.get( 'password') is None: raise HTTPRedirect('/') if self.ldapcon is None: username = self.session.get('username') password = decodeAES(self.session.get('password')) self.ldapcon = LdapConnector(username, password).get_connection() else: try: self.ldapcon.whoami_s() except ldap.SERVER_DOWN: #@todo make this cleaner refactor username = self.session.get('username') password = decodeAES(self.session.get('password')) self.ldapcon = LdapConnector(username, password).get_connection() return self.ldapcon
def doLogin(self, username=None, password=None): try: ParamChecker.checkUsername('username', param=True) ParamChecker.checkPassword('password', 'password', param=True) except InvalidParameterFormat as ipf: return self.index(_('Invalid data')) try: ldap_connector = LdapConnector(username=username, password=password) except mematool.helpers.exceptions.InvalidCredentials: return self.index(_('Invalid credentials')) except mematool.helpers.exceptions.ServerError: return self.index(_('Server error, please retry later')) old_session_language = self.session.get('language', '') self.session.regenerate() self.session['username'] = username self.session['password'] = encodeAES(password) self.set_ldapcon(ldap_connector.get_connection()) self.session['groups'] = self.mf.getUserGroupList(username) try: user = self.mf.getUser(self.session['username']) except: return self.index(_('Server error, please retry later')) self.session['user'] = user if self.is_admin(): self.session[ 'pendingMemberValidations'] = self.pendingMemberValidations() uidNumber = user.uidNumber language = self.db.query(Preferences).filter( and_(Preferences.uidNumber == uidNumber, Preferences.key == 'language')).one() if language.value in self.languages: self.session['language'] = language.value elif not old_session_language == '': self.session['language'] = old_session_language else: self.session['language'] = self.default_language log.info(username + ' logged in') if user.is_admin(): raise HTTPRedirect('/members/index') else: raise HTTPRedirect('/profile/index')