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')))
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))
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'))
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