def api_key(request): ''' Allows the user to generate an API key for the REST API ''' context = {} context.update(csrf(request)) try: key = ApiKey.objects.get(user=request.user) except ApiKey.DoesNotExist: key = False if request.GET.get('new_key'): if key: key.delete() key = ApiKey() key.user = request.user key.save() # Redirect to get rid of the GET parameter return HttpResponseRedirect(reverse('core:api-key')) context['key'] = key return render(request, 'user/api_key.html', context)
def handle(self, *args, **options): from tastypie.models import ApiKey users = User.objects.all() for user in users: try: key = user.api_key except ApiKey.DoesNotExist: print('Creating API key for {}'.format(user.username)) k = ApiKey() k.user = user k.save()
def vw_login_page(request): mesage = None error = None #redirect_to = request.REQUEST.get('next', '') redirect_to = "" if not redirect_to: redirect_to = 'homepage' if request.user.is_authenticated(): print("is_authenticated") print(request.user) return HttpResponseRedirect(reverse('homepage')) else: if request.method == 'POST': print("NOT is_authenticated - POST") form = login_form(request.POST) if form.is_valid(): f = form.cleaned_data try: user = auth.authenticate(username=f['user'], password=f['password']) print("user - POST ") except: user = None pass if user is not None and user.is_active: print("log login") #log try: lo = mdlLog() lo.user = user lo.content_type = ContentType.objects.get(model='user') lo.object_id = user.id lo.action = 'login' lo.save() except Exception as e: logging.error(e) #request.session.set_expiry(timedelta(days=settings.KEEP_LOGGED_DURATION)) try: from tastypie.models import ApiKey #we create an api key api = ApiKey() api.user = user api.save() except Exception as e: logging.error(e) if request.session.test_cookie_worked(): request.session.delete_test_cookie() print("auth login") auth.login(request, user) request.session['welcome_msg'] = _( 'Welcome ') + user.username + '.' return HttpResponseRedirect(reverse('homepage')) else: error = _('User or password not in our systems') return render( request, 'login/login.html', { 'form': form, 'mesage': mesage, 'error': error, 'redirect_to': redirect_to, }) else: error = _('User or password not in our systems') return render( request, 'login/login.html', { 'form': form, 'mesage': mesage, 'error': error, 'redirect_to': redirect_to, }) else: print("NOT is_authenticated - NOT POST") form = login_form() return render( request, 'login/login.html', { 'form': form, 'mesage': mesage, 'error': error, 'redirect_to': redirect_to, })