Example #1
0
def delete_credential(profile):
    """Delete credential for current user profile"""
    storage = Storage(EdmodoCredential, 'profile', profile, 'credential')
    credential = storage.get()    
    if credential is None:
        raise Exception('Edmodo credential not found')
    storage.delete()
Example #2
0
def auth_return(request):

  if not xsrfutil.validate_token(settings.SECRET_KEY, request.REQUEST['state'],
                                 request.user):
    return  HttpResponseBadRequest()
  credential = FLOW.step2_exchange(request.REQUEST)
  storage = Storage(CredentialsModel, 'id_user', request.user, 'credential')
  storage.delete()
  storage = Storage(CredentialsModel, 'id_user', request.user, 'credential')
  storage.put(credential)

  userP = userProfile.objects.get(user=request.user)
  if userP.id_drive_folder is None:
  	try:
		storage = Storage(CredentialsModel, 'id_user', request.user, 'credential')
		credential = storage.get()
		http = httplib2.Http()
		http = credential.authorize(http)
		drive_service = build('drive', 'v2', http=http, developerKey="hbP6_4UJIKe-m74yLd8tQDfT")

		body = {
          'title': 'Soft System Manager',
          'mimeType': "application/vnd.google-apps.folder"
        }
		folder = drive_service.files().insert(body = body).execute()
		userP.id_drive_folder = folder.get('id')
		userP.save()
	except:
		return redirect('vista_logout')

  return HttpResponseRedirect("/principal")
Example #3
0
def logout(request):
    username = request.session.get('username', None)
    if username is not None:
        storage = Storage(CredentialModel, 'user', username, 'credential')
        storage.delete()
        request.session['username'] = None
    return HttpResponseRedirect('/')
Example #4
0
def syncGoogleAccount(request):
    if request.method == 'POST':
        oldUserID = request.POST['oldUserID']
        newUserID = request.POST['newUserID']

	if User.objects.filter(id=oldUserID):
	    resetThisUser = User.objects.get(id=oldUserID)
	else:
	    return HttpResponse(json.dumps({'error':'Sorry, we are having an issue linking your google account.'}))
	    	
	if User.objects.filter(id=newUserID):
	    deleteThisUser = User.objects.get(id=newUserID)
	else:
	    return HttpResponse(json.dumps({'error':'Sorry, we are having an issue linking your google account.'}))
	    
	    
	#reset google account to oldUserID and delete newUserID
	if GoogleUserInfo.objects.filter(user=deleteThisUser):
	    googleAccount = GoogleUserInfo.objects.get(user=deleteThisUser)
	    
	    #get the storage from deleteUser
	    oldStorage = Storage(CredentialsModel, 'id', deleteThisUser, 'credential')
	    credential = oldStorage.get()
	    
	    #create a new storage for resetUser
	    newStorage = Storage(CredentialsModel, 'id', resetThisUser, 'credential')
	    newStorage.put(credential)
	    
	    #delete old credential for deleteUser
	    oldStorage.delete()
	    
	    #reset email from deleteUser to resetUser to make them the same
	    resetThisUser.email = deleteThisUser.email
	    resetThisUser.save()
	    
	    
	    #log in resetUser
	    resetThisUser.backend = 'django.contrib.auth.backends.ModelBackend'
	    login(request, resetThisUser)
		
	    #set new userID for session
	    request.session['user_id'] = resetThisUser.id
	    request.session.set_expiry(604800)
	    
	    
	    #set to old account
	    googleAccount.user = resetThisUser
	    googleAccount.save()
	    
	    #delete deleteUser
	    deleteThisUser.delete()
	    data = {'success':'success'}
	else:
	    return HttpResponse(json.dumps({'error':'Sorry, we are having an issue linking your google account.'}))
    else:
        data = {'error':'Did not post correctly'}
    return HttpResponse(json.dumps(data))
Example #5
0
def logout(request):
    u = request.user
    f = FlowModel.objects.get(id=u.id)
    f.delete()
    c = CredentialsModel.objects.get(id=u.id)
    c.delete()
    storage = Storage(CredentialsModel, 'id', u, 'credential')
    storage.delete()
    return HttpResponseRedirect("http://accounts.google.com/logout")
Example #6
0
def deauth(request):
    user = request.user
    credential = None
    storage = Storage(CredentialsModel, 'id', user, 'credential')
    storage.delete()
    if 'group' in request.GET:
        group_name = request.GET['group']
        return HttpResponseRedirect("authorize?group=" + group_name)
    else:
        return HttpResponseRedirect("authorize")
Example #7
0
def deauth(request):
    user = request.user
    credential = None
    storage = Storage(CredentialsModel, 'id', user, 'credential')
    storage.delete()
    if 'group' in request.GET:
        group_name = request.GET['group']
        return HttpResponseRedirect("authorize?group=" + group_name)
    else:
        return HttpResponseRedirect("authorize")
Example #8
0
def gloebit_callback(request):
    credential = MERCHANT.exchange_for_user_credential(request.GET)

    if 'user' in MERCHANT.scope:
        gbinfo = MERCHANT.user_info(credential)
        print "gbinfo: %s\n" % str(gbinfo)
        username = gbinfo['name']
        request.session['username'] = username
    else:
        username = str(uuid.uuid4())
        request.session['username'] = username

    print "user: %s\n" %username
    storage = Storage(CredentialModel, 'user', username, 'credential')
    storage.delete()  # Get rid of stale token, if any
    storage.put(credential)

    inventory = MERCHANT.user_products(credential)
    request.session['inventory'] = inventory

    return HttpResponseRedirect(reverse('GloebitEx:index'))
Example #9
0
def removeUserOAuth(request):
    """initiates OAuth revocation"""
    user = request.user
    calUser = CalendarUser.objects.get(user=user)
    if not calUser.isOAuthed:
        return redirect(reverse('editprofile'))
    storage = Storage(CredentialsModel, 'id', user, 'credential')
    credential = storage.get()
    if credential is None or credential.invalid is True:
        return redirect(reverse('editprofile'))
    http = httplib2.Http()
    try:
        credential.revoke(http)
    except TokenRevokeError, e:
        print e
    storage.delete()
    calUser.isOAuthed = False
    calUser.save()
    return redirect(reverse('editprofile'))


@login_required
def checkAuth(request):
    """Checks OAuth status of user, if not 
    initiates exchange with google's OAuth server
    """
    REDIRECT_URI = "http://%s%s" % (request.get_host(),
                                    reverse("oauth2return"))
    FLOW = flow_from_clientsecrets(
        CLIENT_SECRETS,
        scope='https://www.googleapis.com/auth/calendar.readonly',