def authentication(): """ Attempt HTTP authentication via API keys on a per-request basis. """ auth_header = request.headers.get('Authorization') api_key = request.args.get('api_key') if auth_header is not None: auth_type, api_key = auth_header.split(' ', 1) if api_key is not None: try: request.user = User.by_api_key(api_key) except: raise Unauthorized('Invalid API key.') elif 'user_id' in session: request.user = User.by_id(session['user_id']) else: request.user = None
def install(filename): """ Load or update a service configuration form a JSON configuration. """ with open(filename, 'rb') as fh: data = json.load(fh) service = Service.by_key(data.get('key')) if service is None: service = Service.create(data) else: service.update(data) events = [] for event_data in data.get('events', []): event_data['service'] = service event = Event.by_key(service, event_data['key']) if event is None: event = Event.create(event_data) else: event.update(event_data) events.append(event) service.events = events service.editors = [] for editor_id in data.get('editors', [1]): user = User.by_id(editor_id) service.editors.append(user) db.session.commit()
def get(id): user = obj_or_404(User.by_id(id)) #require.service.view(service) return jsonify(user)