def get(self, vanity_url=None): provider_target = db.get_provider_from_vanity_url(vanity_url) user_source = self.get_current_user() if user_source and auth.PROVIDER_ROLE in user_source.roles: provider_source = db.get_provider_from_user(user_source) # check if there is already a pending request if provider_source in provider_target.get_provider_network_pending(): message = _("Connection pending...") self.render_public_profile(provider=provider_target, success_message=message) elif provider_source in provider_target.get_provider_network(): message = _("Already connected!") self.render_public_profile(provider=provider_target, success_message=message) elif provider_source == provider_target: message = _("You can't connect to yourself!") self.render_public_profile(provider=provider_target, success_message=message) else: provider_network_connection = None if provider_source in provider_target.get_provider_network_rejected(): # this connection was rejected before. provider_network_connection = db.get_provider_network_connection(provider_source.key, provider_target.key) # what the hell...let them try again! provider_network_connection.rejected = False else: # no pending request, let's make one provider_network_connection = ProviderNetworkConnection() provider_network_connection.source_provider = provider_source.key provider_network_connection.target_provider = provider_target.key provider_network_connection.confirmed = False try: provider_network_connection.put() message = _("Connection requested") self.render_public_profile(provider=provider_target, success_message=message) # now send out an email # the url for accepting for target_provider url_obj = urlparse.urlparse(self.request.url) accept_url = urlparse.urlunparse((url_obj.scheme, url_obj.netloc, '/login/accept/' + provider_network_connection.key.urlsafe(), '', '', '')) mail.email_connect_request(self.jinja2, from_provider=provider_source, target_provider=provider_target, accept_url=accept_url) except Exception as e: error_message = 'Error making connection: ' + e.message self.render_public_profile(provider=provider_target, error_message=error_message) else: # redirect to login page if not logged in, then send back here after creditials are verified self.redirect("/login/connect/" + provider_target.key.urlsafe())
def post(self, vanity_url=None): provider = db.get_provider_from_vanity_url(vanity_url) target_provider_email = self.request.get('email') if target_provider_email: target_provider = db.get_provider_from_email(target_provider_email) provider_network_connection = ProviderNetworkConnection() provider_network_connection.source_provider = provider.key provider_network_connection.target_provider = target_provider.key provider_network_connection.confirmed = True provider_network_connection.rejected = False provider_network_connection.forced_by_admin = True provider_network_connection.put() logging.info("(ProviderForceFriendsHandler) Provider %s forcing connection to %s" % (provider.email, provider.vanity_domain)) self.redirect('/admin/provider/admin/' + provider.vanity_url)
def post(self, vanity_url=None): provider = db.get_provider_from_vanity_url(vanity_url) target_provider_email = self.request.get('email') if target_provider_email: target_provider = db.get_provider_from_email(target_provider_email) provider_network_connection = ProviderNetworkConnection() provider_network_connection.source_provider = provider.key provider_network_connection.target_provider = target_provider.key provider_network_connection.confirmed = True provider_network_connection.rejected = False provider_network_connection.forced_by_admin = True provider_network_connection.put() logging.info( "(ProviderForceFriendsHandler) Provider %s forcing connection to %s" % (provider.email, provider.vanity_domain)) self.redirect('/admin/provider/admin/' + provider.vanity_url)
def post(self): provider_signup_form2 = forms.user.ProviderSignupForm2().get_form( self.request.POST, request_webob=self.request) # check for double submit # if the first submit worked, a user should have been created and logged in user = self.get_current_user() if user: provider = db.get_provider_from_user(user) if provider: email = provider_signup_form2['email'].data if email == provider.email == user.get_email(): # someone is already logged in with the address being submitted # probably a double submit... self.redirect('/provider/welcome/' + provider.vanity_url) return if provider_signup_form2.validate(): # init the provider provider = Provider() provider_signup_form2.populate_obj(provider) # pre-populate vanity_url with first name + last name + number if collision first_name = provider.first_name last_name = provider.last_name vanity_url = first_name + last_name provider.vanity_url = validate_vanity_url(vanity_url) provider.domain = self.get_domain() # set location info from request if "X-AppEngine-Country" in self.request.headers: provider.gae_country = self.request.headers[ "X-AppEngine-Country"] if "X-AppEngine-Region" in self.request.headers: provider.gae_region = self.request.headers[ "X-AppEngine-Region"] if "X-AppEngine-City" in self.request.headers: provider.gae_city = self.request.headers["X-AppEngine-City"] if "X-AppEngine-CityLatLong" in self.request.headers: provider.gae_city_lat_long = self.request.headers[ "X-AppEngine-CityLatLong"] # save provider provider.put() # check if an invitation was associated to this invite = db.get_invite_from_email(provider.email) if invite: invite.profile_created = True invite.token = None invite.put() # connect this provider to invite_provider provider_network_connection = ProviderNetworkConnection() provider_network_connection.invite = invite.key provider_network_connection.source_provider = invite.provider provider_network_connection.target_provider = provider.key provider_network_connection.confirmed = True provider_network_connection.put() # now create an empty user for the provider user = self.create_empty_user_for_provider(provider) user.language = self.get_language() user.last_login = datetime.datetime.now() provider.profile_language = user.language provider.put() # set the password for the user password = provider_signup_form2.password.data password_hash = security.generate_password_hash(password, length=12) user.password = password_hash user.put() # login with new password self.login_user(user.get_email(), password) # new user logging.info( '(PasswordHandler.post) New user just set their password: %s' % user.get_email()) self.redirect('/provider/welcome/' + provider.vanity_url) self.log_event(user, "New account created for user" ) # create a signup token for new user # remove partial provider partial_provider = db.get_partial_provider_from_email( provider.email) if partial_provider: partial_provider.key.delete() # Send welcome email to provider welcome_email_enabled = db.get_site_config().welcome_email_enabled if welcome_email_enabled: mail.email_provider_welcome(self.jinja2, provider) else: self.render_template('user/signup_provider_2.html', provider_signup_form2=provider_signup_form2)
def get(self, vanity_url=None): provider_target = db.get_provider_from_vanity_url(vanity_url) user_source = self.get_current_user() if user_source and auth.PROVIDER_ROLE in user_source.roles: provider_source = db.get_provider_from_user(user_source) # check if there is already a pending request if provider_source in provider_target.get_provider_network_pending( ): message = _("Connection pending...") self.render_public_profile(provider=provider_target, success_message=message) elif provider_source in provider_target.get_provider_network(): message = _("Already connected!") self.render_public_profile(provider=provider_target, success_message=message) elif provider_source == provider_target: message = _("You can't connect to yourself!") self.render_public_profile(provider=provider_target, success_message=message) else: provider_network_connection = None if provider_source in provider_target.get_provider_network_rejected( ): # this connection was rejected before. provider_network_connection = db.get_provider_network_connection( provider_source.key, provider_target.key) # what the hell...let them try again! provider_network_connection.rejected = False else: # no pending request, let's make one provider_network_connection = ProviderNetworkConnection() provider_network_connection.source_provider = provider_source.key provider_network_connection.target_provider = provider_target.key provider_network_connection.confirmed = False try: provider_network_connection.put() message = _("Connection requested") self.render_public_profile(provider=provider_target, success_message=message) # now send out an email # the url for accepting for target_provider url_obj = urlparse.urlparse(self.request.url) accept_url = urlparse.urlunparse( (url_obj.scheme, url_obj.netloc, '/login/accept/' + provider_network_connection.key.urlsafe(), '', '', '')) mail.email_connect_request(self.jinja2, from_provider=provider_source, target_provider=provider_target, accept_url=accept_url) except Exception as e: error_message = 'Error making connection: ' + e.message self.render_public_profile(provider=provider_target, error_message=error_message) else: # redirect to login page if not logged in, then send back here after creditials are verified self.redirect("/login/connect/" + provider_target.key.urlsafe())
def post(self): provider_signup_form2 = forms.user.ProviderSignupForm2().get_form(self.request.POST, request_webob=self.request) # check for double submit # if the first submit worked, a user should have been created and logged in user = self.get_current_user() if user: provider = db.get_provider_from_user(user) if provider: email = provider_signup_form2['email'].data if email == provider.email == user.get_email(): # someone is already logged in with the address being submitted # probably a double submit... self.redirect('/provider/welcome/' + provider.vanity_url) return if provider_signup_form2.validate(): # init the provider provider = Provider() provider_signup_form2.populate_obj(provider) # pre-populate vanity_url with first name + last name + number if collision first_name = provider.first_name last_name = provider.last_name vanity_url = first_name + last_name provider.vanity_url = validate_vanity_url(vanity_url) provider.domain = self.get_domain() # set location info from request if "X-AppEngine-Country" in self.request.headers: provider.gae_country = self.request.headers["X-AppEngine-Country"] if "X-AppEngine-Region" in self.request.headers: provider.gae_region = self.request.headers["X-AppEngine-Region"] if "X-AppEngine-City" in self.request.headers: provider.gae_city = self.request.headers["X-AppEngine-City"] if "X-AppEngine-CityLatLong" in self.request.headers: provider.gae_city_lat_long = self.request.headers["X-AppEngine-CityLatLong"] # save provider provider.put() # check if an invitation was associated to this invite = db.get_invite_from_email(provider.email) if invite: invite.profile_created = True invite.token = None invite.put() # connect this provider to invite_provider provider_network_connection = ProviderNetworkConnection() provider_network_connection.invite = invite.key provider_network_connection.source_provider = invite.provider provider_network_connection.target_provider = provider.key provider_network_connection.confirmed = True provider_network_connection.put() # now create an empty user for the provider user = self.create_empty_user_for_provider(provider) user.language = self.get_language() user.last_login = datetime.datetime.now() provider.profile_language = user.language provider.put() # set the password for the user password = provider_signup_form2.password.data password_hash = security.generate_password_hash(password, length=12) user.password = password_hash user.put() # login with new password self.login_user(user.get_email(), password) # new user logging.info('(PasswordHandler.post) New user just set their password: %s' % user.get_email()) self.redirect('/provider/welcome/' + provider.vanity_url) self.log_event(user, "New account created for user") # create a signup token for new user # remove partial provider partial_provider = db.get_partial_provider_from_email(provider.email) if partial_provider: partial_provider.key.delete() # Send welcome email to provider welcome_email_enabled = db.get_site_config().welcome_email_enabled if welcome_email_enabled: mail.email_provider_welcome(self.jinja2, provider) else: self.render_template('user/signup_provider_2.html', provider_signup_form2=provider_signup_form2)