Пример #1
0
    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)
Пример #2
0
    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
Пример #3
0
    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')