Example #1
0
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)
Example #2
0
 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()
Example #3
0
 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()
Example #4
0
def init():
    "Initialize all parts of the system"
    indexer = get_loom_indexer()
    indexer.configure()
    Role.create_defaults()
    session.commit()
Example #5
0
File: cli.py Project: occrp/spindle
def init():
    "Initialize all parts of the system"
    indexer = get_loom_indexer()
    indexer.configure()
    Role.create_defaults()
    session.commit()