forked from gergely/calendar-social
		
	Create the @beta decorator
This commit is contained in:
		@@ -18,6 +18,11 @@
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
from contextlib import contextmanager
 | 
			
		||||
from functools import wraps
 | 
			
		||||
 | 
			
		||||
from flask import flash, redirect, url_for
 | 
			
		||||
from flask_babelex import gettext as _
 | 
			
		||||
from flask_security import current_user
 | 
			
		||||
 | 
			
		||||
@contextmanager
 | 
			
		||||
def force_locale(locale):
 | 
			
		||||
@@ -119,3 +124,19 @@ class RoutedMixin:
 | 
			
		||||
            return func
 | 
			
		||||
 | 
			
		||||
        return decorator
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def beta(func):
 | 
			
		||||
    """Decorator to hide beta features from non-beta testers
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
    @wraps(func)
 | 
			
		||||
    def decorated(*args, **kwargs):  # pylint: disable=missing-docstring
 | 
			
		||||
        if current_user.settings['beta'] != 'True':
 | 
			
		||||
            flash(_('Join the beta testers to enable this functionality!'))
 | 
			
		||||
 | 
			
		||||
            return redirect(url_for('account.settings'))
 | 
			
		||||
 | 
			
		||||
        return func(*args, **kwargs)
 | 
			
		||||
 | 
			
		||||
    return decorated
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user