__init__.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. # GNU MediaGoblin -- federated, autonomous media hosting
  2. # Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
  3. #
  4. # This program is free software: you can redistribute it and/or modify
  5. # it under the terms of the GNU Affero General Public License as published by
  6. # the Free Software Foundation, either version 3 of the License, or
  7. # (at your option) any later version.
  8. #
  9. # This program is distributed in the hope that it will be useful,
  10. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. # GNU Affero General Public License for more details.
  13. #
  14. # You should have received a copy of the GNU Affero General Public License
  15. # along with this program. If not, see <http://www.gnu.org/licenses/>.
  16. import os
  17. from mediagoblin.auth.tools import create_basic_user
  18. from mediagoblin.tools import pluginapi
  19. PLUGIN_DIR = os.path.dirname(__file__)
  20. def setup_plugin():
  21. config = pluginapi.get_config('mediagoblin.plugins.ldap')
  22. routes = [
  23. ('mediagoblin.plugins.ldap.register',
  24. '/auth/ldap/register/',
  25. 'mediagoblin.plugins.ldap.views:register'),
  26. ('mediagoblin.plugins.ldap.login',
  27. '/auth/ldap/login/',
  28. 'mediagoblin.plugins.ldap.views:login')]
  29. pluginapi.register_routes(routes)
  30. pluginapi.register_template_path(os.path.join(PLUGIN_DIR, 'templates'))
  31. pluginapi.register_template_hooks(
  32. {'create_account': 'mediagoblin/plugins/ldap/create_account_link.html'})
  33. def create_user(register_form):
  34. if 'username' in register_form and 'password' not in register_form:
  35. return create_basic_user(register_form)
  36. def no_pass_redirect():
  37. return 'ldap'
  38. def auth():
  39. return True
  40. hooks = {
  41. 'setup': setup_plugin,
  42. 'authentication': auth,
  43. 'auth_no_pass_redirect': no_pass_redirect,
  44. 'auth_create_user': create_user,
  45. }