Пример #1
0
def livestatus(request):
    """ Returns a new pynag.Parsers.mk_livestatus() object with authauser automatically set from request.META['remoteuser']
    """

    if request is None:
        authuser = None
    elif adagios.settings.enable_authorization and not adagios.auth.has_role(request, 'administrators') and not adagios.auth.has_role(request, 'operators'):
        authuser = request.META.get('REMOTE_USER', None)
    else:
        authuser = None
    
    backends = get_all_backends()
    # we remove the disabled backends
    if backends is not None:
        try:
            user = userdata.User(request)
            if user.disabled_backends is not None:
                backends = [x for x in backends if x not in user.disabled_backends]
            clear_notification("userdata problem")
        except Exception as e:
            message = "%s: %s" % (type(e), str(e))
            add_notification(level="warning", notification_id="userdata problem", message=message)

    livestatus = pynag.Parsers.MultiSite(
        nagios_cfg_file=adagios.settings.nagios_config,
        livestatus_socket_path=adagios.settings.livestatus_path,
        authuser=authuser)
    
    for i in backends:
        livestatus.add_backend(path=i, name=i)
    
    return livestatus
Пример #2
0
def delete_saved_search(request, name):
    """Delete one specific saved search for this user."""
    user = userdata.User(request)
    user_data = user.to_dict()
    saved_searches = user_data.get(userdata.User.SAVED_SEARCHES, {})
    saved_searches.pop(name, None)
    user.set_pref(userdata.User.SAVED_SEARCHES, saved_searches)
    user.save()
Пример #3
0
def set_user_preference(request, **kwargs):
    try:
        user = userdata.User(request)
    except Exception as e:
        raise e

    for (k, v) in kwargs.iteritems():
        if not k.startswith('_'):
            user.set_pref(k, v)
    user.save()
Пример #4
0
def save_search(request, name, url):
    """Create a new saved search, which will be accessible from main menu."""
    user = userdata.User(request)
    user_data = user.to_dict()
    if not name:
        raise ValueError("You must provide a name for this search")
    if not url:
        raise ValueError("You must provide a url for this search")
    url = url.strip('#')
    saved_searches = user_data.get(userdata.User.SAVED_SEARCHES, {})
    saved_searches[name] = url
    user.set_pref(userdata.User.SAVED_SEARCHES, saved_searches)
    user.save()
Пример #5
0
def get_user_preferences(request):
    """ Loads the preferences for the logged-in user. """
    def theme_to_themepath(theme):
        return os.path.join(settings.THEMES_FOLDER,
                            theme,
                            settings.THEME_ENTRY_POINT)
    try:
        user = userdata.User(request)
        user.trigger_hooks()
        results = user.to_dict()
    except Exception:
        results = adagios.settings.PREFS_DEFAULT

    theme = results.get('theme', 'default')
    results['theme_path'] = theme_to_themepath(theme)
    return {'user_data': results}
Пример #6
0
def toggle_backend_visibility(request, backend_name):
    """ Toggles a backend in user preferences.

    Args:
      request: a Django request
      backend_name (str): The name of the backend.
    """
    user = userdata.User(request)
    if not user.disabled_backends:
        user.disabled_backends = []
    if backend_name in user.disabled_backends:
        user.disabled_backends.remove(backend_name)
    else:
        user.disabled_backends.append(backend_name)

    user.save()
Пример #7
0
def preferences(request):
    c = {}
    c['messages'] = []
    c.update(csrf(request))

    user = userdata.User(request)

    if request.method == 'POST':
        c['form'] = forms.UserdataForm(data=request.POST)
        if c['form'].is_valid():
            for k, v in c['form'].cleaned_data.iteritems():
                user.set_pref(k, v)
            user.save()  # will save in json and trigger the hooks
            c['messages'].append(_('Preferences have been saved.'))
    else:
        c['form'] = forms.UserdataForm(initial=user.to_dict())

    return render_to_response('userdata.html',
                              c,
                              context_instance=RequestContext(request))
Пример #8
0
def get_user_preferences(request):
    try:
        user = userdata.User(request)
    except Exception as e:
        raise e
    return user.to_dict()