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()
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")
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('/')
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))
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")
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")
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'))
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',