aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/auth/tools.py
diff options
context:
space:
mode:
authorRodney Ewing <ewing.rj@gmail.com>2013-05-14 16:14:19 -0700
committerRodney Ewing <ewing.rj@gmail.com>2013-05-24 16:52:48 -0700
commit744f1c83b9c94a82612c981ec56782f3db457357 (patch)
tree78502d15d31e62a4f42b73e208c6eeb49a439847 /mediagoblin/auth/tools.py
parentb56b6b1e77cc01aa1ebebd1c6c594ec79cb4d8c1 (diff)
downloadmediagoblin-744f1c83b9c94a82612c981ec56782f3db457357.tar.lz
mediagoblin-744f1c83b9c94a82612c981ec56782f3db457357.tar.xz
mediagoblin-744f1c83b9c94a82612c981ec56782f3db457357.zip
add a check for authentication plugin on startup and respond according to no_auth config option. allows instance to be run w/o authentication
Diffstat (limited to 'mediagoblin/auth/tools.py')
-rw-r--r--mediagoblin/auth/tools.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/mediagoblin/auth/tools.py b/mediagoblin/auth/tools.py
index 1b30a7d9..114cc7fb 100644
--- a/mediagoblin/auth/tools.py
+++ b/mediagoblin/auth/tools.py
@@ -14,10 +14,16 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+import logging
+import sys
import wtforms
+from mediagoblin import mg_globals
from mediagoblin.tools.mail import normalize_email
from mediagoblin.tools.translate import lazy_pass_to_ugettext as _
+from mediagoblin.tools.pluginapi import hook_handle
+
+_log = logging.getLogger(__name__)
def normalize_user_or_email_field(allow_email=True, allow_user=True):
@@ -48,3 +54,19 @@ def normalize_user_or_email_field(allow_email=True, allow_user=True):
if field.data is None: # should not happen, but be cautious anyway
raise wtforms.ValidationError(message)
return _normalize_field
+
+
+def check_auth_enabled():
+ no_auth = mg_globals.app_config['no_auth']
+ auth_plugin = True if hook_handle('auth') is not None else False
+
+ if no_auth == 'false' and not auth_plugin:
+ print 'No authentication plugin is enabled and no_auth = false in ' \
+ 'config! \n..Exiting'
+ sys.exit()
+
+ if no_auth == 'true' and not auth_plugin:
+ _log.warning('No authentication is enabled')
+ return False
+ else:
+ return True