Example #1
0
    def _login(self):
        """
        Logs the user in to box.net
        """
        if self.boxapi == None:
            self.boxapi = BoxDotNet()

        # login if not done yet, we only login once to prevent
        # the browser for popping up each time
        if not self.token:
            # get the ticket and open login url
            self._set_ticket()
            url = BoxDotNet.get_login_url(self.ticket)

            #wait for log in
            Web.LoginMagic("Log into Box.net", url, login_function=self._try_login)
Example #2
0
def box_login(request, extra_context=dict(), account_inactive_template='TODO'):
    box = BoxDotNet()
    
    # if initial visit of this page, redirect to the box login screen
    if not 'ticket' in request.GET:
        url = box.get_login_url(settings.BOX_API_KEY)
        return HttpResponseRedirect(url)
    
    # if we have a ticket, then get the auth token
    tokenNode = box.login(settings.BOX_API_KEY, request.GET['ticket'])
	
    token = tokenNode.auth_token[0].elementText
    user_id = tokenNode.user[0].user_id[0].elementText
    print user_id
    
    # authenticate the user using this auth token
    user = authenticate(box_user_id=user_id)
    
    if user is None:
        # we have a token but no user, create one
        user = User()
        user.email = tokenNode.user[0].email[0].elementText
        # use box.net user_id as username
        user.username = user_id
        user.save()
        
        user_profile = UserProfile()
        user_profile.user = user
        user_profile.token = token
        user_profile.box_user_id = user_id
        user_profile.save()
        
        user = authenticate(box_user_id=user_id)
    
    # here we will have valid user so login
    login(request, user)

    if not user.is_active:
        return render_to_response(account_inactive_template, extra_context,
             context_instance=RequestContext(request))
             
    # update user's auth token
    profile = user.get_profile()
    profile.token = token
    profile.save()
    
    return HttpResponseRedirect(_get_next(request))
Example #3
0
    def _login(self):
        """
        Logs the user in to box.net
        """
        if self.boxapi == None:
            self.boxapi = BoxDotNet()

        # login if not done yet, we only login once to prevent
        # the browser for popping up each time
        if not self.token:
            # get the ticket and open login url
            self._set_ticket()
            url = BoxDotNet.get_login_url(self.ticket)

            #wait for log in
            Web.LoginMagic("Log into Box.net",
                           url,
                           login_function=self._try_login)