Example #1
0
    def _to_python(self, value, state):
        user = User.by_username(pylons.tmpl_context.db)[value]

        if user:
            raise formencode.Invalid(
                'The username you selected already exists.',
                value, state)
        return value
Example #2
0
    def _dologin(self):
        session['user'] = list(User.by_username(self.db)[self.form_result['username']])[0]
        session.save()
        flash('Login successful')

        if 'redirect_to' in session:
            redir_url = session['redirect_to']
            del session['redirect_to']
            session.save()
            redirect(redir_url)
        else:
            redirect(url('home'))
Example #3
0
    def validate_python(self, field_dict, state):
        users = User.by_username(pylons.tmpl_context.db)[field_dict['username']]
        users = list(users)
        if not users:
            raise formencode.Invalid(
                'Invalid username.',
                field_dict, state)

        user = users[0]
        if not user.check_password(field_dict['password']):
            raise formencode.Invalid(
                'Wrong password.',
                field_dict, state)
Example #4
0
    def _doedit_user(self, id):
        user = User.load(self.db, id)
        
        user.username = self.form_result.get('username')
        user.email = self.form_result.get('email')
        user.role = self.form_result.get('role')
        
        if self.form_result.get('password'):
            user.password = self.form_result.get('password')

        user.store(self.db)
        
        flash('User successfully edited.')
        redirect(url(controller='admin', action='edit_user', id=id))
Example #5
0
def setup_app(command, conf, vars):
    """Place any commands to setup troppotardi here"""
    config = load_environment(conf.global_conf, conf.local_conf)
    
    print "Syncing the couchdb database..."
    db = Database(config['couchdb_uri'])
    ViewDefinition.sync_many(db, [
            Image.pending_by_time, Image.by_day, Image.deleted_by_time,
            User.by_time, User.by_username,
            Email.by_time,
            ])

    if not list(User.by_username(db)):
        print "Creating first user - username and password \"admin\""
        admin = User()
        admin.username = "******"
        admin.password = "******"
        admin.email = "*****@*****.**"
        admin.role = "Admin"
        admin.store(db, revised_by=False)

    print "Done."
Example #6
0
    def _doadduser(self):
        user = User()
        
        user.username = c.username = request.params.getone('username')
        user.email = request.params.getone('email')
        user.role = request.params.getone('role')
        
        c.password = generate_password()
        user.password = c.password

        # Sends the email
        send_email(render('/emails/registration.mako'),
                   'Welcome to troppotardi',
                   [user.email])
        
        user.store(self.db)
        
        flash('User added successfully, an email has been sent with the password.')
        redirect(url(controller='admin', action='adduser'))
Example #7
0
    def delete_user(self, id):
        User.load(self.db, id).delete(self.db)

        flash('User deleted.')

        redirect(url(controller='admin', action='users'))
Example #8
0
    def edit_user(self, id):
        c.user = User.load(self.db, id)
        c.roles = User.roles

        return render('/admin/edit_user.mako')
Example #9
0
 def users(self):
     c.users = User.by_username(self.db, descending=True)
     
     return render('/admin/users.mako')