def get_indicator_config(): try: doc = cache_core.cached_open_doc(get_db(), "INDICATOR_CONFIGURATION") except ResourceNotFound: return {} else: return doc.get("namespaces", {})
def get_indicator_config(): try: doc = cache_core.cached_open_doc(get_db(), 'INDICATOR_CONFIGURATION') except ResourceNotFound: return {} else: return doc.get('namespaces', {})
def get_adm_enabled_domains(): try: domains = cache_core.cached_open_doc(get_db(), 'ADM_ENABLED_DOMAINS').get( 'domains', {}) except ResourceNotFound: domains = [] return domains
def get_domain_module_map(): hardcoded = getattr(settings, 'DOMAIN_MODULE_MAP', {}) try: dynamic = cache_core.cached_open_doc(get_db(), 'DOMAIN_MODULE_CONFIG').get('module_map', {}) except ResourceNotFound: dynamic = {} hardcoded.update(dynamic) return hardcoded
def get_domain_module_map(): hardcoded = getattr(settings, 'DOMAIN_MODULE_MAP', {}) try: dynamic = cache_core.cached_open_doc(get_db(), 'DOMAIN_MODULE_CONFIG').get( 'module_map', {}) except ResourceNotFound: dynamic = {} hardcoded.update(dynamic) return hardcoded
def process_view(self, request, view_func, view_args, view_kwargs): if 'domain' in view_kwargs: request.domain = view_kwargs['domain'] if 'org' in view_kwargs: request.org = view_kwargs['org'] if request.user and hasattr(request.user, 'get_profile'): sessionid = request.COOKIES.get('sessionid', None) if sessionid: # roundabout way to keep doc_id based caching consistent. # get user doc_id from session_id MISSING = object() INTERRUPTED = object() try: cached_user_doc_id = rcache.get( SESSION_USER_KEY_PREFIX % sessionid, MISSING) except ConnectionInterrumped: cached_user_doc_id = INTERRUPTED # disable session based couch user caching - to be enabled later. if cached_user_doc_id not in (MISSING, INTERRUPTED): # cache hit couch_user = CouchUser.wrap_correctly( cache_core.cached_open_doc(CouchUser.get_db(), cached_user_doc_id)) else: # cache miss, write to cache couch_user = CouchUser.from_django_user(request.user) if couch_user: cache_core.do_cache_doc(couch_user.to_json()) if cached_user_doc_id is not INTERRUPTED: rcache.set(SESSION_USER_KEY_PREFIX % sessionid, couch_user.get_id) request.couch_user = couch_user if 'domain' in view_kwargs: domain = request.domain if not request.couch_user: couch_domain = Domain.view( "domain/domains", key=domain, reduce=False, include_docs=True, ).one() if couch_domain and couch_domain.is_public: request.couch_user = PublicUser(domain) else: request.couch_user = InvalidUser() if request.couch_user: request.couch_user.current_domain = domain return None
def process_view(self, request, view_func, view_args, view_kwargs): if 'domain' in view_kwargs: request.domain = view_kwargs['domain'] if 'org' in view_kwargs: request.org = view_kwargs['org'] if request.user and hasattr(request.user, 'get_profile'): sessionid = request.COOKIES.get('sessionid', None) if sessionid: # roundabout way to keep doc_id based caching consistent. # get user doc_id from session_id MISSING = object() INTERRUPTED = object() try: cached_user_doc_id = rcache.get(SESSION_USER_KEY_PREFIX % sessionid, MISSING) except ConnectionInterrumped: cached_user_doc_id = INTERRUPTED # disable session based couch user caching - to be enabled later. if cached_user_doc_id not in (MISSING, INTERRUPTED): # cache hit couch_user = CouchUser.wrap_correctly( cache_core.cached_open_doc( CouchUser.get_db(), cached_user_doc_id ) ) else: # cache miss, write to cache couch_user = CouchUser.from_django_user(request.user) if couch_user: cache_core.do_cache_doc(couch_user.to_json()) if cached_user_doc_id is not INTERRUPTED: rcache.set(SESSION_USER_KEY_PREFIX % sessionid, couch_user.get_id) request.couch_user = couch_user if 'domain' in view_kwargs: domain = request.domain if not request.couch_user: couch_domain = Domain.view("domain/domains", key=domain, reduce=False, include_docs=True, ).one() if couch_domain and couch_domain.is_public: request.couch_user = PublicUser(domain) else: request.couch_user = InvalidUser() if request.couch_user: request.couch_user.current_domain = domain return None
def get(cls, docid, rev=None, db=None, dynamic_properties=True): if rev is None and db is None and dynamic_properties: doc_json = cached_open_doc(cls.get_db(), docid) return cls.wrap(doc_json) else: return super(CachedCouchDocumentMixin, cls).get(docid, rev, db, dynamic_properties)
def get_adm_enabled_domains(): try: domains = cache_core.cached_open_doc(get_db(), 'ADM_ENABLED_DOMAINS').get('domains', {}) except ResourceNotFound: domains = [] return domains
def get_indicator_config(): try: return cache_core.cached_open_doc(get_db(), 'INDICATOR_CONFIGURATION').get('namespaces', {}) except ResourceNotFound: pass return {}