Пример #1
0
def user_view(user_id):
    current_user = session.get('current_user')
    user = api_oauth.get('{base}user/{user_id}'.format(
        base=app.config['J4OAUTH']['base_url'],
        user_id=user_id
    )).json()['user']
    if user['corporation'] != current_user['corporation'] or not session['admin']:
        flash('You are not authorized to view this user', 'danger')
        app.logger.error('Unauthorize access to {user}\'s profile by {by}'.format(
            user=user_id,
            by=current_user['user_id']
        ))
        return redirect('admin.index')
    report = mongo.db.reports.find_one({'user_id': user_id})
    user_notes = mongo.db.notes.find_one({'user_id': user_id})
    return render_template(
        'auth_user.html',
        user=user,
        report=report,
        user_notes=user_notes
    )
Пример #2
0
def auth_report(report):
    """
    Report that use the J4OAuth API to generate the report
    """

    eve = EveTools()

    # Resetting report
    report['characters'] = []
    report['errors'] = []
    # Get full character info
    auth_info = api_oauth.get('{base}user/{username}'.format(
        base=app.config['J4OAUTH']['base_url'],
        username=report['user_id'])).json()['user']
    if auth_info['auth_status'] != 'Internal':
        raise Exception(
            'User {user} is not a current member of the alliance, aborting...'.
            format(user=report['user_id']))

    for eve_character in auth_info['characters']:
        character = api_oauth.get(
            '{base}user/{username}/{character_id}/sheet'.format(
                base=app.config['J4OAUTH']['base_url'],
                username=report['user_id'],
                character_id=eve_character['character_id'])).json()['sheet']
        character['history'] = []
        for eve_corporation in character['employmentHistory']:
            corporation = EveTools.auto_to_dict(
                eve.safe_request(
                    'corp/CorporationSheet', True,
                    {'corporationID': eve_corporation['corporationID']}))
            sleep(1)
            character['history'].append({
                'corporation_id':
                corporation['corporationID'],
                'corporation_name':
                corporation['corporationName'],
                'ticker':
                'BR',
                'alliance_id':
                corporation['allianceID']
                if 'allianceID' in corporation else None,
                'alliance_name':
                corporation['allianceName']
                if 'allianceName' in corporation else None,
                'start_date':
                datetime.datetime.utcfromtimestamp(
                    eve_corporation['startDate'])
            })

        # Contact list
        contacts = api_oauth.get(
            '{base}user/{username}/{character_id}/contacts'.format(
                base=app.config['J4OAUTH']['base_url'],
                username=report['user_id'],
                character_id=character['characterID'])).json()['contacts']
        character['contacts'] = [
            contact for contact in contacts if contact['contactID'] > 3020000
        ]

        # Standings
        character['standings'] = api_oauth.get(
            '{base}user/{username}/{character_id}/standings'.format(
                base=app.config['J4OAUTH']['base_url'],
                username=report['user_id'],
                character_id=character['characterID'])).json()['standings']

        # Wallet
        character['wallet'] = api_oauth.get(
            '{base}user/{username}/{character_id}/wallet'.format(
                base=app.config['J4OAUTH']['base_url'],
                username=report['user_id'],
                character_id=character['characterID'])).json()['wallet']

        # Assets time !
        assets = api_oauth.get(
            '{base}user/{username}/{character_id}/assets'.format(
                base=app.config['J4OAUTH']['base_url'],
                username=report['user_id'],
                character_id=character['characterID'])).json()['assets']
        character['assets'] = EveTools.parse_assets(assets)

        report['characters'].append(character)

    return report
Пример #3
0
def users():
    user = session.get('current_user')
    users = api_oauth.get('{}corporation/{}/users'.format(
                app.config['J4OAUTH']['base_url'],
                user['corporation']))
    return render_template('users.html', users=users.json()['users'])
Пример #4
0
def auth_report(report):
    """
    Report that use the J4OAuth API to generate the report
    """

    eve = EveTools()

    # Resetting report
    report['characters'] = []
    report['errors'] = []
    # Get full character info
    auth_info = api_oauth.get('{base}user/{username}'.format(
        base=app.config['J4OAUTH']['base_url'],
        username=report['user_id']
    )).json()['user']
    if auth_info['auth_status'] != 'Internal':
        raise Exception('User {user} is not a current member of the alliance, aborting...'.format(user=report['user_id']))

    for eve_character in auth_info['characters']:
        character = api_oauth.get('{base}user/{username}/{character_id}/sheet'.format(
            base=app.config['J4OAUTH']['base_url'],
            username=report['user_id'],
            character_id=eve_character['character_id']
        )).json()['sheet']
        character['history'] = []
        for eve_corporation in character['employmentHistory']:
            corporation = EveTools.auto_to_dict(eve.safe_request('corp/CorporationSheet', True, {'corporationID': eve_corporation['corporationID']}))
            sleep(1)
            character['history'].append({
                'corporation_id': corporation['corporationID'],
                'corporation_name': corporation['corporationName'],
                'ticker': 'BR',
                'alliance_id': corporation['allianceID'] if 'allianceID' in corporation else None,
                'alliance_name': corporation['allianceName'] if 'allianceName' in corporation else None,
                'start_date': datetime.datetime.utcfromtimestamp(eve_corporation['startDate'])
            })

        # Contact list
        contacts = api_oauth.get('{base}user/{username}/{character_id}/contacts'.format(
            base=app.config['J4OAUTH']['base_url'],
            username=report['user_id'],
            character_id=character['characterID']
        )).json()['contacts']
        character['contacts'] = [contact for contact in contacts
                                 if contact['contactID'] > 3020000]

        # Standings
        character['standings'] = api_oauth.get('{base}user/{username}/{character_id}/standings'.format(
            base=app.config['J4OAUTH']['base_url'],
            username=report['user_id'],
            character_id=character['characterID']
        )).json()['standings']

        # Wallet
        character['wallet'] = api_oauth.get('{base}user/{username}/{character_id}/wallet'.format(
            base=app.config['J4OAUTH']['base_url'],
            username=report['user_id'],
            character_id=character['characterID']
        )).json()['wallet']

        # Assets time !
        assets = api_oauth.get('{base}user/{username}/{character_id}/assets'.format(
            base=app.config['J4OAUTH']['base_url'],
            username=report['user_id'],
            character_id=character['characterID']
        )).json()['assets']
        character['assets'] = EveTools.parse_assets(assets)

        report['characters'].append(character)

    return report