def login_and_store_credentials_in_session(request, *args, **kwargs): '''Custom login view. Calls the standard Django authentication, but on successful login, stores encrypted user credentials in order to allow accessing the Fedora repository with the credentials of the currently-logged in user (e.g., when the application and Fedora share a common authentication system, such as LDAP). In order for :class:`~eulcore.django.fedora.server.Repository` to pick up user credentials, you must pass the request object in (so it will have access to the session). Example:: from eulcore.django.fedora.server import Repository def my_view(rqst): repo = Repository(request=rqst) Any arguments supported by :meth:`django.contrib.auth.views.login` can be specified and they will be passed along for the standard login functionality. **This is not a terribly secure. Do NOT use this method unless you need the functionality.** ''' response = authviews.login(request, *args, **kwargs) if request.method == "POST" and request.user.is_authenticated(): # on successful login, encrypt and store user's password to use for fedora access request.session[FEDORA_PASSWORD_SESSION_KEY] = encrypt(request.POST.get('password')) return response
def login_and_store_credentials_in_session(request, *args, **kwargs): '''Custom login view. Calls the standard Django authentication, but on successful login, stores encrypted user credentials in order to allow accessing the Fedora repository with the credentials of the currently-logged in user (e.g., when the application and Fedora share a common authentication system, such as LDAP). In order for :class:`~eulcore.django.fedora.server.Repository` to pick up user credentials, you must pass the request object in (so it will have access to the session). Example:: from eulcore.django.fedora.server import Repository def my_view(rqst): repo = Repository(request=rqst) Any arguments supported by :meth:`django.contrib.auth.views.login` can be specified and they will be passed along for the standard login functionality. **This is not a terribly secure. Do NOT use this method unless you need the functionality.** ''' response = authviews.login(request, *args, **kwargs) if request.method == "POST" and request.user.is_authenticated(): # on successful login, encrypt and store user's password to use for fedora access request.session[FEDORA_PASSWORD_SESSION_KEY] = encrypt( request.POST.get('password')) return response
def test_encrypt_decrypt(text): encrypted = cryptutil.encrypt(text) self.assertNotEqual(text, encrypted, "encrypted text should not match original") decrypted = cryptutil.decrypt(encrypted) self.assertEqual(text, force_text(decrypted), "decrypted text (%s) should match original encrypted text (%s)" % (force_text(decrypted), text))
def test_encrypt_decrypt(text): encrypted = cryptutil.encrypt(text) self.assertNotEqual(text, encrypted, "encrypted text should not match original") decrypted = cryptutil.decrypt(encrypted) self.assertEqual( text, force_text(decrypted), "decrypted text (%s) should match original encrypted text (%s)" % (force_text(decrypted), text))