def db_for_read(self, model, **hints): request = get_current_request() if request is not None: host = request.get_host() database = lib.get_database_by_host(host) if database is not None: return database elif host in settings.DATABASES: return host
def get_all_permissions(self, user, obj=None): if user.is_anonymous(): return set() if not hasattr(user, C.GROUP_ACL_CACHE): site = AmpCmsSite.objects.get_by_request(get_current_request()) acl = Page.objects.filter(module__site=site).filter(group__user=user).values_list('module__name', 'name').order_by() acl_cache = set(["%s.%s" % (ct, name) for ct, name in acl]) acl_cache.update(self.get_group_permissions(user)) setattr(user, C.GROUP_ACL_CACHE, acl_cache) return getattr(user, C.GROUP_ACL_CACHE)
def get_group_permissions(self, user, obj=None): if not hasattr(user, C.GROUP_ACL_CACHE): site = AmpCmsSite.objects.get_by_request(get_current_request()) acl = Page.objects.filter(module__site=site).filter(user=user).values_list('module__name', 'name').order_by() setattr(user, C.GROUP_ACL_CACHE, set(["%s.%s" % (ct, name) for ct, name in acl])) return getattr(user, C.GROUP_ACL_CACHE)