# HG changeset patch # User Sverre Rabbelier # Date 1233152100 0 # Node ID 71ff49dbb4b6cf3c831b8d8cc6a2f2da9aa89f89 # Parent ed83d42d1ed735cc42cf4969407671e9ada3e6fa Also flush the user's ACL's when flushing the sidebar It is pretty pointless to flush the sidebar if the same ACL's will be re-used anyway, so make sure the ACL's are flushed as well. Patch by: Sverre Rabbelier diff -r ed83d42d1ed7 -r 71ff49dbb4b6 app/soc/cache/rights.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/soc/cache/rights.py Wed Jan 28 14:15:00 2009 +0000 @@ -0,0 +1,54 @@ +#!/usr/bin/python2.5 +# +# Copyright 2008 the Melange authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Module contains rights memcache functions. +""" + +__authors__ = [ + '"Sverre Rabbelier" ', + ] + + +from google.appengine.api import memcache + + +RIGHTS = [ + 'checkIsLoggedIn', + 'checkNotLoggedIn', + 'checkIsUser', + 'checkIsDeveloper', + 'checkCanMakeRequestToGroup', + 'checkCanCreateFromRequest', + 'checkCanProcessRequest', + 'checkIsMyGroupAcceptedRequest', + 'checkIsHost', + 'checkIsHostForSponsor', + 'checkIsClubAdminForClub', + 'checkIsApplicationAccepted', + 'checkIsMyNotification', + 'checkIsMyApplication', + 'checkIsMyActiveRole', + 'checkHasPickGetArgs', + 'checkIsDocumentPublic', + ] + + +def flush(id): + """Flushes all ACL's for the specified account. + """ + + key_prefix = '%s.' % id + memcache.delete_multi(RIGHTS, key_prefix=key_prefix) diff -r ed83d42d1ed7 -r 71ff49dbb4b6 app/soc/cache/sidebar.py --- a/app/soc/cache/sidebar.py Wed Jan 28 11:26:47 2009 +0000 +++ b/app/soc/cache/sidebar.py Wed Jan 28 14:15:00 2009 +0000 @@ -26,6 +26,7 @@ from google.appengine.api import users import soc.cache.base +import soc.cache.rights def key(id): @@ -57,18 +58,21 @@ memcache.add(memcache_key, sidebar, retention) -def flush(user=None): +def flush(id=None): """Removes the sidebar for the current user from the memcache. + Also calls soc.cache.rights.flush for the specified user. + Args: - user: defaults to the current user if not set + id: defaults to the current account if not set """ - if not user: - user = users.get_current_user() + if not id: + id = users.get_current_user() - memcache_key = key(user) + memcache_key = key(id) memcache.delete(memcache_key) + soc.cache.rights.flush(id) # define the cache function