def before_request(): from travispy import TravisPy from database import users g.user = None g.travispy = None if 'user_id' in session: g.user = users.find_one({'_id': ObjectId(session['user_id'])}) if g.user is not None: g.travispy = TravisPy.github_auth(g.user['github_access_token'])
def authorized(access_token): from database import users next_url = request.args.get('next') or url_for('index') if access_token is None: return redirect(next_url) user = users.find_one({'github_access_token': access_token}) if user is None: user = {'github_access_token': access_token} user_id = users.insert(user) else: user_id = user['_id'] session['user_id'] = str(user_id) return redirect(url_for('index'))
def run_newest_build(user_id, repo_id): ''' Method responsible for restarting newest build for the given repo_id. Given user_id must have access to the repository. ''' from database import users, jobs user_id = ObjectId(user_id) user = users.find_one({'_id': user_id}) travispy = TravisPy.github_auth(user['github_access_token']) # When GitHub token is invalid user and jobs created under such token will be removed. if travispy is None: for job in jobs.find({'user_id': user_id, 'repo_id': repo_id}): remove_job(str(job['_id'])) users.remove(user_id) return # Run newest build. builds = travispy.builds(repository_id=repo_id) if builds: builds[0].restart()
def get_user_by_email(email): return users.find_one({"email": email})
def has_perm(user, perm): user = users.find_one({"name":user}) return perm in user.perms
def get_perms(username): return users.find_one({"username":user})["perms"]