Example #1
0
    def _load_group(self):
        request = self.request
        group_name = self.name

        page = Page(request, group_name)
        if page.exists():
            arena = 'pagegroups'
            key = wikiutil.quoteWikinameFS(group_name)
            cache = caching.CacheEntry(request,
                                       arena,
                                       key,
                                       scope='wiki',
                                       use_pickle=True)
            try:
                cache_mtime = cache.mtime()
                page_mtime = wikiutil.version2timestamp(page.mtime_usecs())
                # TODO: fix up-to-date check mtime granularity problems.
                #
                # cache_mtime is float while page_mtime is integer
                # The comparision needs to be done on the lowest type of both
                if int(cache_mtime) > int(page_mtime):
                    # cache is uptodate
                    return cache.content()
                else:
                    raise caching.CacheError
            except caching.CacheError:
                # either cache does not exist, is erroneous or not uptodate: recreate it
                members, member_groups = super(WikiGroup, self)._load_group()
                cache.update((members, member_groups))
                return members, member_groups
        else:
            raise GroupDoesNotExistError(group_name)
Example #2
0
 def _load_group(self):
     group_name = self.name
     if flaskg.unprotected_storage.has_item(group_name):
         members, member_groups = super(WikiGroup, self)._load_group()
         return members, member_groups
     else:
         raise GroupDoesNotExistError(group_name)
Example #3
0
 def __getitem__(self, group_name):
     """
     Get a group by its name. First match counts.
     """
     for backend in self._backends:
         try:
             return backend[group_name]
         except GroupDoesNotExistError:
             pass
     raise GroupDoesNotExistError(group_name)
Example #4
0
 def _retrieve_members(self, group_name):
     try:
         return self._groups[group_name]
     except KeyError:
         raise GroupDoesNotExistError(group_name)
Example #5
0
def search_group(group_name):
    groups = flaskg.groups
    if groups[group_name]:
            return groups[group_name]
    else:
        raise GroupDoesNotExistError(group_name)