Exemplo n.º 1
0
    def get(self, vanity_url=None, operation=None, provider_key=None):
        provider = db.get_provider_from_vanity_url(vanity_url)
        error_message = None
        success_message = None
        
        if operation == 'accept':
            provider_network_connection = ndb.Key(urlsafe=provider_key).get()
            source_provider_key = provider_network_connection.source_provider
            source_provider = source_provider_key.get()
            
            if provider_network_connection.confirmed:

                # already connected
                msg = _('You are already connected to')
                success_message = msg + " %s %s" % (source_provider.first_name, source_provider.last_name)
            else:
                target_provider_key = provider.key
                
                if source_provider_key == target_provider_key:
                    success_message = _("You can't connect to yourself!")
                
                else:
                    provider_network_connection = db.get_provider_network_connection(source_provider_key, target_provider_key)
                    if provider_network_connection:
                        provider_network_connection.confirmed = True
                        provider_network_connection.rejected = False
                        
                        try:
                            provider_network_connection.put()
                            msg = _('You are now connected to')
                            success_message = msg + " %s %s" % (source_provider.first_name, source_provider.last_name)
                        except Exception as e:
                            error_message = 'Error making connection: ' + e.message
                    else:
                        error_message = _('No connection found')
                
        if operation == 'reject':
            provider_network_connection = ndb.Key(urlsafe=provider_key).get()
            source_provider_key = provider_network_connection.source_provider
            source_provider = source_provider_key.get()
            target_provider_key = provider.key
            
            # keep the connection around just mark it as rejected
            provider_network_connection = db.get_provider_network_connection(source_provider_key, target_provider_key)
            provider_network_connection.rejected = True
            provider_network_connection.rejection_count += 1
            provider_network_connection.put()
            
            msg = _("You have rejected")
            success_message = msg + " %s %s" % (source_provider.first_name, source_provider.last_name)
        
        provider_invite_form = ProviderInviteForm().get_form()
        
        self.render_template("provider/network.html", provider=provider, provider_invite_form=provider_invite_form, success_message=success_message, error_message=error_message)
Exemplo n.º 2
0
    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())
Exemplo n.º 3
0
    def get(self, vanity_url=None, operation=None, provider_key=None):
        provider = db.get_provider_from_vanity_url(vanity_url)
        error_message = None
        success_message = None

        if operation == 'accept':
            provider_network_connection = ndb.Key(urlsafe=provider_key).get()
            source_provider_key = provider_network_connection.source_provider
            source_provider = source_provider_key.get()

            if provider_network_connection.confirmed:

                # already connected
                msg = _('You are already connected to')
                success_message = msg + " %s %s" % (source_provider.first_name,
                                                    source_provider.last_name)
            else:
                target_provider_key = provider.key

                if source_provider_key == target_provider_key:
                    success_message = _("You can't connect to yourself!")

                else:
                    provider_network_connection = db.get_provider_network_connection(
                        source_provider_key, target_provider_key)
                    if provider_network_connection:
                        provider_network_connection.confirmed = True
                        provider_network_connection.rejected = False

                        try:
                            provider_network_connection.put()
                            msg = _('You are now connected to')
                            success_message = msg + " %s %s" % (
                                source_provider.first_name,
                                source_provider.last_name)
                        except Exception as e:
                            error_message = 'Error making connection: ' + e.message
                    else:
                        error_message = _('No connection found')

        if operation == 'reject':
            provider_network_connection = ndb.Key(urlsafe=provider_key).get()
            source_provider_key = provider_network_connection.source_provider
            source_provider = source_provider_key.get()
            target_provider_key = provider.key

            # keep the connection around just mark it as rejected
            provider_network_connection = db.get_provider_network_connection(
                source_provider_key, target_provider_key)
            provider_network_connection.rejected = True
            provider_network_connection.rejection_count += 1
            provider_network_connection.put()

            msg = _("You have rejected")
            success_message = msg + " %s %s" % (source_provider.first_name,
                                                source_provider.last_name)

        provider_invite_form = ProviderInviteForm().get_form()

        self.render_template("provider/network.html",
                             provider=provider,
                             provider_invite_form=provider_invite_form,
                             success_message=success_message,
                             error_message=error_message)
Exemplo n.º 4
0
    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())