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
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()
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()
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()
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}
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()
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))
def get_user_preferences(request): try: user = userdata.User(request) except Exception as e: raise e return user.to_dict()