def page_links():
    over = [
        {
            "title": u"Forsiden",
            "path": "/"
        },
        {
            "title": u"Finn aktør",
            "path": "/organisations"
        }
    ]

    under = []

    if not current_user.is_authenticated() or current_user.is_idporten_user() or current_user.is_aktorregister_admin():
        over.append({
            "title": u"Registrer aktør",
            "path": "/register_org"
        })

    if current_user.is_authenticated():
        if current_user.is_aktorregister_admin():
            over.append({
                "title": u"Oppdater medlemsdata",
                "path": "/organisations/updatememberdata"
            })
            over.append({
                "title": u"Paraplyorganisasjoner",
                "path": "/umbrella_organisations"
            })

        if current_user.is_idporten_user():
            under.append(
                {
                    "title": u"Min profil",
                    "path": "/profile",
                    "right": True,
                    "requires_login": True,
                }
            )

    over.append({
        "title": u"Om Aktørbasen",
        "path": "https://www.trondheim.kommune.no/aktorbasen/",
        "external": True
    })

    links = {
        "over": over,
        "under": under
    }

    return links
def render_flod_template(template, **kwargs):
    stripped_user = None
    stripped_person = None

    user_mode = None

    if not current_user.is_anonymous():

        if current_user.is_idporten_user():
            person = authentication.get_current_person()
            stripped_person = {
                "name": person['name'],
                "uri": "/persons/%d" % person['person_id'],
                "id": person['person_id']
            }
            user_mode = 'soker'
        elif current_user.is_adfs_user() and current_user.is_aktorregister_admin():
            user_mode = 'admin'

        stripped_user = {
            "id": current_user.user_id,
            "private_id": current_user.private_id
        }

    return render_template(
        template,
        person=stripped_person,
        user=stripped_user,
        pages=page_links(),
        app_name=APP_NAME,
        user_mode=user_mode,
        **kwargs
    )
def register_org():
    if not (current_user.is_idporten_user() or current_user.is_aktorregister_admin()):
        abort(401)

    """Render home page."""
    try:
        recruiting_districts = repo.get_districts()
        districts = repo.get_districts_without_whole_trd()

        brreg_activity_codes = repo.get_brreg_activity_codes()

        return render_flod_template(
            'register_org.html',
            districts=json.dumps(districts),
            recruiting_districts=json.dumps(recruiting_districts),
            brreg_activity_codes=json.dumps(brreg_activity_codes)
        )
    except requests.exceptions.ConnectionError:
        app.logger.exception('Request failed')
        return "", 500
def render_org_template(template, organisation_id, requires_owner=True, **kwargs):
    try:
        is_member = True
        if current_user.is_authenticated() and current_user.is_idporten_user():
            organisations = repo.get_organisations_for_person(
                current_user.person_id,
                auth_token_username=current_user.user_id)
            try:
                org = next(org for org in organisations if org["id"] == organisation_id)
                is_member = True
            except StopIteration:
                if requires_owner:
                    abort(403)
                is_member = False

        return render_flod_template(
            template,
            organisation_id=organisation_id,
            is_member=is_member,
            **kwargs
        )
    except requests.exceptions.ConnectionError:
        app.logger.exception('Request failed')
        return "", 500
def home():
    """Render home page."""
    return render_flod_template(
        'home.html',
        can_register=not current_user.is_authenticated() or current_user.is_idporten_user() or current_user.is_aktorregister_admin()
    )