sdh.otl

Django one time link generator and processor


License
Other
Install
pip install sdh.otl==1.0.0

Documentation

Django tool for create ont time links

Installation

For integrate with Django need to add sdh.otl to the list of installed app:

INSTALLED_APPS += (
    'sdh.otl')

and put into a root urls.py next line:

url(r'^l/', include('sdh.otl.urls'))

Using

You can use OneTimeLink with several scenario:

  • redirect to view with django backresolve (with support callback)
  • redirect to direct URL (with support callback)
  • using view to redner response

Redirects

There are two way to pass resulted link to OneTimeLink object:

  • pass url resolve point with kwargs
  • pass rendered link
from sdh.otl import OneTimeLink

link = OneTimeLink.create(resolve_name='django-url-name', resolve_kwargs={'value': 1})
link.save(expire=3600)

Example with callback and authorization:

from sdh.otl import OntTimeLink

def auth_callback(request, user_email):
    user = get_object_or_404(User,
                             email=user_email)
    login(request, user)

@login_required
def password_restore(request):
    ....

def send_restore_passwortd(request):
    link = OneTimeLink.create(resolve_name='url-password-reset')
    link['user_email'] = request.POST.get('user_email')

    link.save(callback=auth_callback,
              expire=3600,
              count=1)

    return HttpResponse("http://127.0.0.1:8000%s" % link.url)