예제 #1
0
 def inner_dispatch(self):
     self.user = StoreUser.by_id_or_name(self.request.route_args[0])
     if self.user is None:
         self.user = StoreUser.by_email(self.request.route_args[0])
     if self.user is not None:
         super(UserFindingHandler, self).inner_dispatch()
     else:
         self.flash("No user with email '%s' could be found." %
                    self.request.route_args[0])
         self.redirect('/')
 def get(self):
     user=StoreUser.by_email(self.request.get('email'))
     if user:
         self.redirect(user.url())
     else:
         self.flash("There is no registered user with the email address: '%s'"%self.request.get('email'))
         self.redirect('/admin/')
 def get(self):
     self.response.headers['Content-Type']='application/json'
     self.response.write(json.dumps(map(lambda com:dict(title=com.title
         ,unread=com.last_message_sent>=com.last_read_by(self.current_user),
         id=com.key().id_or_name(),
         user_map=generate_user_map(com),
         users=map(lambda user_id: StoreUser.get(user_id).nickname,com.users)),sorted(map(lambda uc:uc.communique,UserCommunique.all().ancestor(self.current_user).run()),key=lambda com_x: com_x.last_message_sent,reverse=True))))
 def post(self,communique_id):
     self.response.headers['Content-Type']='text/plain'
     u=StoreUser.by_id_or_name(self.request.get('user'))
     if u.key() in self.communique.users:
         return halt(400)
     self.communique.users.append(u.key())
     self.communique.put()
     UserCommunique(parent=u,communique=self.communique).put()
예제 #5
0
 def get(self):
     user = StoreUser.by_email(self.request.get('email'))
     if user:
         self.redirect(user.url())
     else:
         self.flash(
             "There is no registered user with the email address: '%s'" %
             self.request.get('email'))
         self.redirect('/admin/')
 def get(self,communique_id):
     self.response.headers['Content-Type']='application/json'
     out={}
     off=int(self.request.get('offset') or 0)
     out['more_messages']=self.communique.messages().count(limit=1,offset=off+MessagingListHandler.MESSAGES_PER_PAGE+1)
     out['messages']=map(lambda x: dict(user=x.user.key().id_or_name(),contents=x.contents,time=x.time.isoformat()),self.communique.messages().run(limit=MessagingListHandler.MESSAGES_PER_PAGE,offset=off))
     out['messages'].reverse()
     if not self.request.get('onlymessages'):
         out['user_map']=generate_user_map(self.communique)
         out['id']=int(communique_id)
         out['unread']=self.communique.last_message_sent>=self.communique.last_read_by(self.current_user)
         out['title']=self.communique.title
         #TODO: nicer way to do the following:
         for key in out['users'].keys():
             outs['users'][key]=StoreUser.by_id_or_name(key).nickname
     self.response.write(json.dumps(out))
예제 #7
0
 def dispatch(self):
     if not ModelInitializer.initialized():
         ModelInitializer.initialize()
     self.session_store=sessions.get_store(request=self.request)
     try:
         if self.request.method not in ['GET','HEAD']:
             csrf_token=self.session.get('csrf_token')
             if (not csrf_token) or csrf_token!=self.request.get('csrf_token'):
                 self.abort(403)
         elif not self.session.get('csrf_token'):
             self.session['csrf_token']=generate_random_string(48)
         self.current_user=StoreUser.current_user()
         if self.current_user and self.current_user.deactivated and not hasattr(self,'accessible_by_deactivated_users'):
             self.response.set_status(403)
             self.render_template('deactivated-account.html')
             return
         self.inner_dispatch()
     finally:
         self.session_store.save_sessions(self.response)
예제 #8
0
 def dispatch(self):
     if not ModelInitializer.initialized():
         ModelInitializer.initialize()
     self.session_store = sessions.get_store(request=self.request)
     try:
         if self.request.method not in ['GET', 'HEAD']:
             csrf_token = self.session.get('csrf_token')
             if (not csrf_token
                 ) or csrf_token != self.request.get('csrf_token'):
                 self.abort(403)
         elif not self.session.get('csrf_token'):
             self.session['csrf_token'] = generate_random_string(48)
         self.current_user = StoreUser.current_user()
         if self.current_user and self.current_user.deactivated and not hasattr(
                 self, 'accessible_by_deactivated_users'):
             self.response.set_status(403)
             self.render_template('deactivated-account.html')
             return
         self.inner_dispatch()
     finally:
         self.session_store.save_sessions(self.response)
def generate_user_map(com):
    d=dict()
    for user in com.users:
        d[user.id_or_name()]=StoreUser.get(user).nickname
    return d
 def post(self):
     results=StoreUser.all().filter('channel_tokens =',self.request.get('from')).fetch(limit=1)
     if results and len(results):
         user=results[0]
         user.channel_tokens.remove(self.request.get('from'))
         user.put()
 def post(self):
     user=StoreUser.by_id_or_name(self.request.get('from').split('_')[0])
     user.channel_tokens.append(self.request.get('from'))
     user.put()
예제 #12
0
 def inner_dispatch(self):
     user = StoreUser.current_user()
     if not user or not user.admin: self.abort(403)
     #BaseHandler.inner_dispatch(self)
     super(AdminHandler, self).inner_dispatch()
예제 #13
0
 def inner_dispatch(self):
     user=StoreUser.current_user()
     if not user or not user.admin: self.abort(403)
     #BaseHandler.inner_dispatch(self)
     super(AdminHandler,self).inner_dispatch()