Beispiel #1
0
def _create_user(session, login, role, full_name, email, password = '******', invalid_password = None, other_auths = None):
    user = model.DbUser(login, full_name, email, None, role)
    session.add(user)
    weblab_db = session.query(model.DbAuth).filter_by(name = "WebLab DB").one()
    if not invalid_password:
        session.add(model.DbUserAuth(user, weblab_db, password2sha(password, 'aaaa')))
    else:
        session.add(model.DbUserAuth(user, weblab_db, invalid_password))
    for (auth_type, value) in (other_auths or ()):
        session.add(model.DbUserAuth(user, auth_type, value))
    return user
Beispiel #2
0
def _create_user(session, login, role, full_name, email, password = '******', invalid_password = None, other_auths = None):
    user = model.DbUser(login, full_name, email, None, role)
    session.add(user)
    weblab_db = session.query(model.DbAuth).filter_by(name = "WebLab DB").one()
    if not invalid_password:
        session.add(model.DbUserAuth(user, weblab_db, password2sha(password, 'aaaa')))
    else:
        session.add(model.DbUserAuth(user, weblab_db, invalid_password))
    for (auth_type, value) in (other_auths or ()):
        session.add(model.DbUserAuth(user, auth_type, value))
    return user
Beispiel #3
0
def add_user(sessionmaker, login, password, user_name, mail, randomstuff = None, role = 'student'):
    sessionmaker._model_changes = {}
    session = sessionmaker()

    role = session.query(model.DbRole).filter_by(name=role).one()
    weblab_db = session.query(model.DbAuth).filter_by(name = "WebLab DB").one()

    user    = model.DbUser(login, user_name, mail, None, role)
    session.add(user)

    user_auth = model.DbUserAuth(user, weblab_db, password2sha(password, randomstuff))
    session.add(user_auth)

    session.commit()
    session.close()
Beispiel #4
0
def add_user(sessionmaker, login, password, user_name, mail, randomstuff = None, role = 'student'):
    sessionmaker._model_changes = {}
    session = sessionmaker()

    role = session.query(model.DbRole).filter_by(name=role).one()
    weblab_db = session.query(model.DbAuth).filter_by(name = "WebLab DB").one()

    user    = model.DbUser(login, user_name, mail, None, role)
    session.add(user)

    user_auth = model.DbUserAuth(user, weblab_db, password2sha(password, randomstuff))
    session.add(user_auth)

    session.commit()
    session.close()
Beispiel #5
0
    def index(self):
        login = get_app_instance(self).get_user_information().login
        user = self._session.query(model.DbUser).filter_by(login = login).one()
        
        facebook_auth_obj = self._session.query(model.DbAuth).filter_by(name = 'FACEBOOK').first()
        facebook_id = ''

        change_password = True
        password_auth = None
        facebook_auth = None

        for user_auth in user.auths:
            if user_auth.auth.auth_type.name.lower() == 'facebook':
                facebook_id = user_auth.configuration
                facebook_auth = user_auth
            if 'ldap' in user_auth.auth.auth_type.name.lower():
                change_password = False
            if user_auth.auth.auth_type.name.lower() == 'db':
                password_auth = user_auth


        if len(request.form):
            form = ProfileEditForm(request.form)
        else:
            form = ProfileEditForm()
            form.full_name.data = user.full_name
            form.login.data     = user.login
            form.email.data     = user.email
            form.facebook.data  = facebook_id

        user_permissions = get_app_instance(self).get_permissions()
        
        change_profile = True
        for permission in user_permissions:
            if permission.name == permissions.CANT_CHANGE_PROFILE:
                change_password = False
                change_profile  = False

        if change_profile and form.validate_on_submit():

            errors = []

            if change_password and password_auth is not None and form.password.data:
                if len(form.password.data) < 6:
                    errors.append(gettext("Error: too short password"))
                else:
                    password_auth.configuration = password2sha(form.password.data)

            user.email = form.email.data
            
            if form.facebook.data:
                if facebook_auth is None:
                    if facebook_auth_obj is not None:
                        new_auth = model.DbUserAuth(user, facebook_auth_obj, form.facebook.data)
                        self._session.add(new_auth)
                else:
                    facebook_auth.configuration = form.facebook.data
            else:
                if facebook_auth is not None:
                    self._session.delete(facebook_auth)

            self._session.commit()

            if errors:
                for error in errors:
                    flash(error)
            else:
                flash(gettext("Saved"))

        return self.render("profile/profile-edit.html", form=form, change_password=change_password, change_profile=change_profile, facebook_available=facebook_auth_obj is not None)
Beispiel #6
0
    def index(self):
        login = get_app_instance(self).get_user_information().login
        user = self._session.query(model.DbUser).filter_by(login=login).one()

        facebook_auth_obj = self._session.query(
            model.DbAuth).filter_by(name='FACEBOOK').first()
        facebook_id = ''

        change_password = True
        password_auth = None
        facebook_auth = None

        for user_auth in user.auths:
            if user_auth.auth.auth_type.name.lower() == 'facebook':
                facebook_id = user_auth.configuration
                facebook_auth = user_auth
            if 'ldap' in user_auth.auth.auth_type.name.lower():
                change_password = False
            if user_auth.auth.auth_type.name.lower() == 'db':
                password_auth = user_auth

        if len(request.form):
            form = ProfileEditForm(request.form)
        else:
            form = ProfileEditForm()
            form.full_name.data = user.full_name
            form.login.data = user.login
            form.email.data = user.email
            form.facebook.data = facebook_id

        user_permissions = get_app_instance(self).get_permissions()

        change_profile = True
        for permission in user_permissions:
            if permission.name == permissions.CANT_CHANGE_PROFILE:
                change_password = False
                change_profile = False

        if change_profile and form.validate_on_submit():

            errors = []

            if change_password and password_auth is not None and form.password.data:
                if len(form.password.data) < 6:
                    errors.append(gettext("Error: too short password"))
                else:
                    password_auth.configuration = password2sha(
                        form.password.data)

            user.email = form.email.data

            if form.facebook.data:
                if facebook_auth is None:
                    if facebook_auth_obj is not None:
                        new_auth = model.DbUserAuth(user, facebook_auth_obj,
                                                    form.facebook.data)
                        self._session.add(new_auth)
                else:
                    facebook_auth.configuration = form.facebook.data
            else:
                if facebook_auth is not None:
                    self._session.delete(facebook_auth)

            self._session.commit()

            if errors:
                for error in errors:
                    flash(error)
            else:
                flash(gettext("Saved"))

        return self.render("profile/profile-edit.html",
                           form=form,
                           change_password=change_password,
                           change_profile=change_profile,
                           facebook_available=facebook_auth_obj is not None)