コード例 #1
0
ファイル: auth.py プロジェクト: Sagelt/dungeon-world-codex
 def get(self):
   """HTML GET handler.
   
   Check login status and redirect appropriately."""
   
   user = users.get_current_user()
   if user:
     profile = Profile.for_user(user)
     if profile:
       self.redirect(self.uri_for('home'))
     else:
       self.redirect(self.uri_for('profile.edit'))
   else:
     self.redirect(users.create_login_url(self.uri_for('login')))
コード例 #2
0
ファイル: profile.py プロジェクト: Sagelt/dungeon-world-codex
 def post(self):
   """HTML POST handler.
   
   Setup profile."""
   user = users.get_current_user()
   if user:
     profile = Profile.for_user(user)
     if not profile:
       profile = Profile()
     profile.display_name = self.request.get('display_name')
     profile.account = user
     profile.put()
     return self.redirect(self.uri_for('profile.me'))
   else:
     return self.redirect(users.create_login_url(self.request.uri))
コード例 #3
0
ファイル: profile.py プロジェクト: Sagelt/dungeon-world-codex
 def get(self, access_code=None):
   """HTML GET handler.
   
   Check the query parameters for the access code and grant access to that
   product."""
   
   user = users.get_current_user()
   profile = Profile.for_user(user)
   if not profile:
     return self.forbidden()
   if not access_code:
     return self.forbidden()
     
   product = Product.get_by_access_code(access_code)
   if not product:
     return self.not_found()
     
   profile.products.append(product.key().id())
   profile.put()
   
   return self.redirect(self.uri_for('profile.edit'))
コード例 #4
0
ファイル: base.py プロジェクト: Sagelt/dungeon-world-codex
 def build_template_values(self):
   template_values = {}
   template_values[USER_KEY] = users.get_current_user()
   if not template_values[USER_KEY]:
     template_values[LOGIN_URL_KEY] = users.create_login_url(self.uri_for('login'))
     template_values[PROFILE_KEY] = None
   else:
     template_values[PROFILE_KEY] = Profile.for_user(template_values[USER_KEY])
   
   common_urls = {}
   common_urls['home_url'] = self.uri_for('home')
   common_urls['create_url'] = self.uri_for('monster.create')
   common_urls['profile_url'] = self.uri_for('profile.me')
   common_urls['login_url'] = self.uri_for('login')
   common_urls['logout_url'] = self.uri_for('logout')
   common_urls['search_url'] = self.uri_for('search')
   common_urls['product_create_url'] = self.uri_for('product.create')
   common_urls['browse_url'] = self.uri_for('monster.all')
   template_values['common_urls'] = common_urls
   
   format_urls = {}
   format_urls['monster_url'] = self.uri_for('monster', entity_id=r'%d')
   format_urls['monster.edit_url'] = self.uri_for('monster.edit', entity_id=r'%d')
   format_urls['monster.delete_url'] = self.uri_for('monster.delete', entity_id=r'%d')
   format_urls['monster.up_url'] = self.uri_for('monster.upvote', entity_id=r'%d')
   format_urls['monster.down_url'] = self.uri_for('monster.downvote', entity_id=r'%d')
   format_urls['profile'] = self.uri_for('profile', profile_id=r'%d')
   format_urls['product'] = self.uri_for('product', entity_id=r'%d')
   format_urls['product.update'] = self.uri_for('product.update', entity_id=r'%d')
   format_urls['profile.add'] = self.uri_for('profile.add', access_code=r'%s')
   template_values['format_urls'] = format_urls
   
   template_values['licenses'] = configuration.site.licenses
   
   self.template_values = template_values
   return template_values