Пример #1
0
def get_social_autologin(request, discussion=None, next_view=None):
    """Look for a mandatory social login"""
    discussion = discussion or discussion_from_request(request)
    if discussion:
        preferences = discussion.preferences
    else:
        preferences = Preferences.get_default_preferences()
    auto_login_backend = preferences['authorization_server_backend']
    landing_page = preferences['landing_page']
    if not auto_login_backend:
        return None
    next_view = next_view or request.params.get('next', None)
    if discussion and not next_view:
        if landing_page:
            next_view = request.route_path('new_home',
                                           discussion_slug=discussion.slug)
        else:
            next_view = request.route_path('home',
                                           discussion_slug=discussion.slug)
    query = {"next": next_view}
    if ":" in auto_login_backend:
        auto_login_backend, provider = auto_login_backend.split(":", 1)
        query['idp'] = provider
    if discussion:
        return request.route_url(
            "contextual_social.auth",
            discussion_slug=discussion.slug,
            backend=auto_login_backend,
            _query=query)
    else:
        return request.route_url(
            "social.auth",
            backend=auto_login_backend,
            _query=query)
Пример #2
0
def default_preferences(request, test_session, base_registry):
    """A Preference fixture with default settings"""
    from assembl.models import Preferences
    from assembl.auth.social_auth import adjust_settings
    settings = base_registry.settings
    adjust_settings(settings)
    Preferences.init_from_settings(settings)
    prefs = Preferences.get_default_preferences()
    test_session.add(prefs)
    test_session.flush()

    def fin():
        print "finalizer default_preferences"
        test_session.delete(prefs)
        test_session.flush()
    request.addfinalizer(fin)
    return prefs
Пример #3
0
def default_preferences(request, test_session, base_registry):
    """A Preference fixture with default settings"""
    from assembl.models import Preferences
    from assembl.auth.social_auth import adjust_settings
    settings = base_registry.settings
    adjust_settings(settings)
    Preferences.init_from_settings(settings)
    prefs = Preferences.get_default_preferences()
    test_session.add(prefs)
    test_session.flush()

    def fin():
        print("finalizer default_preferences")
        test_session.delete(prefs)
        test_session.flush()
    request.addfinalizer(fin)
    return prefs
Пример #4
0
def default_preferences(request, test_session):
    from assembl.models import Preferences
    prefs = Preferences.get_default_preferences()
    test_session.add(prefs)
    test_session.flush()

    def fin():
        print "finalizer default_preferences"
        test_session.delete(prefs)
        test_session.flush()
    request.addfinalizer(fin)
    return prefs
Пример #5
0
def default_preferences(request, test_session):
    from assembl.models import Preferences
    prefs = Preferences.get_default_preferences()
    test_session.add(prefs)
    test_session.flush()

    def fin():
        print "finalizer default_preferences"
        test_session.delete(prefs)
        test_session.flush()
    request.addfinalizer(fin)
    return prefs
Пример #6
0
def default_preferences(request, test_session):
    """A Preference fixture with default settings"""
    from assembl.models import Preferences
    prefs = Preferences.get_default_preferences()
    test_session.add(prefs)
    test_session.flush()

    def fin():
        print("finalizer default_preferences")
        test_session.delete(prefs)
        test_session.flush()
    request.addfinalizer(fin)
    return prefs
Пример #7
0
def get_social_autologin(request, discussion=None, next_view=None):
    """Look for a mandatory social login

    :param discussion: The discussion object
    :param next_view: None|Boolean|string The potential next_view to be appended
    """
    discussion = discussion or discussion_from_request(request)
    if discussion:
        preferences = discussion.preferences
    else:
        preferences = Preferences.get_default_preferences()
    auto_login_backend = preferences['authorization_server_backend']
    landing_page = preferences['landing_page']
    if not auto_login_backend:
        return None
    use_next_view = True
    if next_view is False:
        use_next_view = False
    next_view = sanitize_next_view(next_view
                                   or request.params.get('next', None))
    if discussion and not next_view and use_next_view:
        if landing_page:
            next_view = request.route_path('new_home',
                                           discussion_slug=discussion.slug)
        # TODO: This path should be removed
        else:
            next_view = request.route_path('home',
                                           discussion_slug=discussion.slug)
    if use_next_view:
        query = {"next": next_view}
    else:
        query = {}
    if ":" in auto_login_backend:
        auto_login_backend, provider = auto_login_backend.split(":", 1)
        query['idp'] = provider
    if discussion:
        return request.route_url("contextual_social.auth",
                                 discussion_slug=discussion.slug,
                                 backend=auto_login_backend,
                                 _query=query)
    else:
        return request.route_url("social.auth",
                                 backend=auto_login_backend,
                                 _query=query)
Пример #8
0
def get_social_autologin(request, discussion=None, next_view=None):
    """Look for a mandatory social login

    :param discussion: The discussion object
    :param next_view: None|Boolean|string The potential next_view to be appended
    """
    discussion = discussion or discussion_from_request(request)
    if discussion:
        preferences = discussion.preferences
    else:
        preferences = Preferences.get_default_preferences()
    auto_login_backend = preferences['authorization_server_backend']
    landing_page = preferences['landing_page']
    if not auto_login_backend:
        return None
    use_next_view = True
    if next_view is False:
        use_next_view = False
    next_view = sanitize_next_view(next_view or request.params.get('next', None))
    if discussion and not next_view and use_next_view:
        if landing_page:
            next_view = request.route_path('new_home',
                                           discussion_slug=discussion.slug)
        else:
            next_view = request.route_path('home',
                                           discussion_slug=discussion.slug)
    if use_next_view:
        query = {"next": next_view}
    else:
        query = {}
    if ":" in auto_login_backend:
        auto_login_backend, provider = auto_login_backend.split(":", 1)
        query['idp'] = provider
    if discussion:
        return request.route_url(
            "contextual_social.auth",
            discussion_slug=discussion.slug,
            backend=auto_login_backend,
            _query=query)
    else:
        return request.route_url(
            "social.auth",
            backend=auto_login_backend,
            _query=query)
Пример #9
0
class PseudoDiscussion(object):
    id = 0
    topic = "Administration"
    slug = "admin"
    homepage_url = None
    logo = None
    preferences = Preferences()

    def translation_service(self):
        return None

    def get_base_url(self, *args):
        return get_global_base_url(True)

    def get_url(self, *args):
        return get_global_base_url(True)

    def get_all_agents_preload(self, user):
        return []
Пример #10
0
def base_admin_view(request):
    """The Base admin view, for frontend urls"""
    user_id = authenticated_userid(request) or Everyone
    if user_id == Everyone:
        raise HTTPUnauthorized()
    context = get_default_context(request)

    session = Discussion.default_db
    preferences = Preferences.get_default_preferences(session)
    user = User.get(user_id)

    if '_LOCALE_' in request.cookies:
        locale = request.cookies['_LOCALE_']
        process_locale(locale, user, session, LanguagePreferenceOrder.Cookie)

    elif '_LOCALE_' in request.params:
        locale = request.params['_LOCALE_']
        process_locale(locale, user, session,
                       LanguagePreferenceOrder.Parameter)
    else:
        locale = request.locale_name
        process_locale(locale, user, session,
                       LanguagePreferenceOrder.OS_Default)

    target_locale = strip_country(locale)
    locale_labels = json.dumps(
        DummyGoogleTranslationService.target_locale_labels_cls(target_locale))
    context['translation_locale_names_json'] = locale_labels

    role_names = [x for (x, ) in session.query(Role.name).all()]
    permission_names = [x for (x, ) in session.query(Permission.name).all()]
    context['role_names'] = json.dumps(role_names)
    context['permission_names'] = json.dumps(permission_names)
    context['discussion'] = PseudoDiscussion()

    response = render_to_response('../../templates/adminIndex.jinja2',
                                  context,
                                  request=request)
    # Prevent caching the home, especially for proper login/logout
    response.cache_control.max_age = 0
    response.cache_control.prevent_auto = True
    return response
Пример #11
0
 def get_preferences(self):
     discussion = discussion_from_request(self.request)
     if discussion:
         return discussion.preferences
     else:
         return Preferences.get_default_preferences()
Пример #12
0
 def get_preferences(self):
     discussion = discussion_from_request(self.request)
     if discussion:
         return discussion.preferences
     else:
         return Preferences.get_default_preferences()