def callback(): next_url = url_for('base.index') resp = oauth_provider.authorized_response() if resp is None or isinstance(resp, OAuthException): # FIXME: notify the user, somehow. return redirect(next_url) session['oauth'] = resp Role.create_defaults() session['roles'] = [Role.SYSTEM_GUEST, Role.SYSTEM_USER] if 'googleapis.com' in oauth_provider.base_url: me = oauth_provider.get('userinfo') user_id = 'google:%s' % me.data.get('id') role = Role.load_or_create(user_id, Role.USER, me.data.get('name'), email=me.data.get('email')) elif 'occrp.org' in oauth_provider.base_url or \ 'investigativedashboard.org' in oauth_provider.base_url: me = oauth_provider.get('api/2/accounts/profile/') user_id = 'idashboard:user:%s' % me.data.get('id') role = Role.load_or_create(user_id, Role.USER, me.data.get('display_name'), email=me.data.get('email'), is_admin=me.data.get('is_admin')) for group in me.data.get('groups', []): group_id = 'idashboard:%s' % group.get('id') Role.load_or_create(group_id, Role.GROUP, group.get('name')) session['roles'].append(group_id) else: raise RuntimeError("Unknown OAuth URL: %r" % oauth_provider.base_url) session['roles'].append(user_id) session['user'] = role.id session['is_admin'] = role.is_admin db_session.commit() return redirect(next_url)
def setUp(self): Role.create_defaults() self.config = self.app.loom_config if not BA_FIXTURES['resolver']: schema_dir = os.path.join(FIXTURES, 'schema') load_local_schema(self.config.resolver, schema_dir=schema_dir) BA_FIXTURES['resolver'] = self.config.resolver self.config._resolver = BA_FIXTURES['resolver'] self.es = get_es() get_loom_indexer().configure()
def init(): "Initialize all parts of the system" indexer = get_loom_indexer() indexer.configure() Role.create_defaults() session.commit()