2012-06-04 13:27:32 +00:00
|
|
|
from django.core.cache import cache
|
|
|
|
|
2012-05-02 12:58:06 +00:00
|
|
|
from seaserv import get_binding_peerids
|
2011-10-29 03:50:58 +00:00
|
|
|
|
2012-06-04 13:27:32 +00:00
|
|
|
from seahub.notifications.models import Notification
|
|
|
|
from seahub.notifications.utils import refresh_cache
|
|
|
|
|
2011-10-29 03:50:58 +00:00
|
|
|
class UseridMiddleware(object):
|
2012-04-02 15:56:41 +00:00
|
|
|
"""Store ccnet user ids in request.user.userid_list"""
|
2011-10-29 03:50:58 +00:00
|
|
|
|
|
|
|
def process_request(self, request):
|
|
|
|
if not request.user.is_authenticated():
|
|
|
|
return None
|
|
|
|
|
|
|
|
try:
|
2012-05-02 12:58:06 +00:00
|
|
|
request.user.userid_list = get_binding_peerids(request.user.username)
|
2012-04-01 13:55:33 +00:00
|
|
|
except:
|
2012-04-02 15:56:41 +00:00
|
|
|
request.user.userid_list = []
|
2011-10-29 03:50:58 +00:00
|
|
|
|
|
|
|
return None
|
|
|
|
|
|
|
|
def process_response(self, request, response):
|
|
|
|
return response
|
2012-06-04 13:27:32 +00:00
|
|
|
|
|
|
|
class InfobarMiddleware(object):
|
|
|
|
"""Query info bar close status, and store into reqeust."""
|
|
|
|
|
|
|
|
def get_from_db(self):
|
|
|
|
ret = Notification.objects.all().filter(primary=1)
|
|
|
|
refresh_cache()
|
|
|
|
return ret
|
|
|
|
|
|
|
|
def process_request(self, request):
|
|
|
|
topinfo_close = request.COOKIES.get('topinfo', '')
|
|
|
|
|
|
|
|
cur_note = cache.get('CUR_TOPINFO') if cache.get('CUR_TOPINFO') else \
|
|
|
|
self.get_from_db()
|
|
|
|
if not cur_note:
|
|
|
|
request.cur_note = None
|
|
|
|
else:
|
|
|
|
if str(cur_note[0].id) in topinfo_close.split(','):
|
|
|
|
request.cur_note = None
|
|
|
|
else:
|
|
|
|
request.cur_note = cur_note[0]
|
|
|
|
|
|
|
|
return None
|
|
|
|
|
|
|
|
def process_response(self, request, response):
|
|
|
|
return response
|
|
|
|
|