コード例 #1
0
ファイル: manager.py プロジェクト: kickapoo/prometheus
def create_sudo():
    # Sudo user is just a that has both coordinator, volunteer rules
    # This give the ability to nagivate through all app views (or routes)
    # Also, if you like 'superuser' term ... that ok but in prometheus
    # superuser is sudo user.

    # Checking if Roles are created using create_db command
    if Role.query.filter(or_(Role.name == v for v in
                         ('sudo', 'coordinator', 'volunteer'))).first() is None:
        return """
        You need run 'python manager.py create_db'
        in order to create default user Roles
        """
    email = raw_input("Please enter a valid email:" )
    email_match = re.search(r'[\w.-]+@[\w.-]+.\w+', email)
    if not email_match:
        return "You typed a invalid email address, Please try again"
    if User.query.filter_by(email=email).first() is not None:
        return "A user allready exists with that email address"
    password1 = getpass.getpass(prompt="Please type your password: "******"Please re-type your password: "******"Your don't match, Please try again"
    user = User.register(email, password1)
    role_sudo = Role.query.filter_by(name='sudo').first()
    role_coordinator = Role.query.filter_by(name='coordinator').first()
    role_volunteer = Role.query.filter_by(name='volunteer').first()
    user.roles.append(role_sudo)
    user.roles.append(role_coordinator)
    user.roles.append(role_volunteer)
    db.session.add(user)
    db.session.commit()
    return "{} sudo user created".format(email)
コード例 #2
0
ファイル: manager.py プロジェクト: kickapoo/prometheus
def init_prometheus():
    create_db()
    user = User.register('*****@*****.**', 'admin')
    role_coordinator = Role.query.filter_by(name='coordinator').first()
    role_volunteer = Role.query.filter_by(name='volunteer').first()
    user.roles.append(role_coordinator)
    user.roles.append(role_volunteer)
    db.session.add(user)
    db.session.commit()
    return "{} sudo user created".format(user.email)
コード例 #3
0
ファイル: volunteers.py プロジェクト: kickapoo/prometheus
def update_volunteer(id=None):
    page = dict(title="Add Volunteer", back=url_for('coordinator.volunteers'))
    if Role.query.filter_by(name="volunteer").first() is None:
        role_volunteer = Role(name='volunteer')
        db.session.add(role_volunteer)
        db.session.commit()
    role_volunteer = Role.query.filter_by(name="volunteer").first()
    role_coordinator = Role.query.filter_by(name="coordinator").first()
    user_volunteer = User()
    volunteer = Volunteer()
    form = VolunteerForm()
    if id != None:
        volunteer = Volunteer.query.get(id)
        user_volunteer = User.query.filter_by(email=volunteer.email).first()
        form = VolunteerForm(obj=volunteer)
    form.is_coordinator.checked = False
    if role_coordinator in user_volunteer.roles:
        form.is_coordinator.checked = True
    form.access.checked = user_volunteer.active
    form.country_id.choices = [(c.id, c.name) for c in Country.query.order_by('name')]
    form.team_id.choices = [(team.id, team.name) for team in Team.query.all()]
    if form.validate_on_submit():
        volunteer.import_data(form.data)
        if user_volunteer.email is None:
            # Register Volunteer as User
            user_volunteer.email = form.email.data
            user_volunteer.set_password(form.email.data)
            user_volunteer.active = form.access.data
            user_volunteer.roles.append(role_volunteer)
            if form.is_coordinator.data:
                user_volunteer.roles.append(role_coordinator)
            else:
                if role_coordinator in user_volunteer.roles:
                    user_volunteer.roles.remove(role_coordinator)
            db.session.add(user_volunteer)
            db.session.commit()
        else:
            #  Update access
            user_volunteer.active = form.access.data
            if form.is_coordinator.data:
                user_volunteer.roles.append(role_coordinator)
            else:
                if role_coordinator in user_volunteer.roles:
                    user_volunteer.roles.remove(role_coordinator)
            db.session.add(user_volunteer)
            db.session.add(user_volunteer)
            db.session.commit()
        db.session.add(volunteer)
        db.session.commit()
        flash("<i class='fa fa-smile-o'></i> Success, form is submitted")
        return redirect(url_for('coordinator.volunteers'))
    return render_template('coordinators/volunteers/volunteer_form.html',
                           page=page, form=form)
コード例 #4
0
ファイル: manager.py プロジェクト: kickapoo/prometheus
def create_db():
    # Create database and populate db
    db.create_all()
    db.session.add_all([
        Role(name='sudo'), Role(name='coordinator'), Role(name='volunteer'),
        Team(name='Default: Local Team', email='*****@*****.**'),
        User.register(email='*****@*****.**', password='******'),
        Volunteer(fullname='Default Volunteer', email='*****@*****.**',
                  gender='1'),
        SpotType(name='Camp'), SpotType(name='Volunteer Registration'),
        Spot(name='Chios Town', lat='38.3709813', lon='26.1363457',
                  status=True, spottype_id='1'),
        Country(name='Other'), Country(name='Greece'), Country(name='Germany'),
        Need(name='Example Need', number_of_volunters=1, hour_choices='0',
             spot_id='1')
    ])
    db.session.commit()
    return "All db tables are Created, with Prometheus default values"