Bläddra i källkod

HUE-8758 [auth] Style formatting of the views and user

Romain 6 år sedan
förälder
incheckning
ebd78772ca

+ 6 - 21
apps/useradmin/src/useradmin/models.py

@@ -47,17 +47,19 @@ from django.db import connection, models, transaction
 from django.contrib.auth import models as auth_models
 from django.contrib.auth.models import AbstractUser, BaseUserManager
 from django.core.cache import cache
+from django.utils import timezone as dtz
 from django.utils.translation import ugettext_lazy as _t
-import django.utils.timezone as dtz
 
 from desktop import appmanager
 from desktop.conf import ENABLE_ORGANIZATIONS
 from desktop.lib.exceptions_renderable import PopupException
 from desktop.lib.idbroker.conf import is_idbroker_enabled
+from desktop.monkey_patches import monkey_patch_username_validator
 from hadoop import cluster
 
 import useradmin.conf
 
+
 if ENABLE_ORGANIZATIONS.get():
   from useradmin.models2 import OrganizationUser as User, OrganizationGroup as Group, Organization, default_organization
 else:
@@ -66,7 +68,7 @@ else:
   def default_organization(): pass
   def get_organization(): pass
 
-from desktop.monkey_patches import monkey_patch_username_validator
+
 monkey_patch_username_validator()
 
 
@@ -75,24 +77,8 @@ LOG = logging.getLogger(__name__)
 
 class UserProfile(models.Model):
   """
-  WARNING: Some of the columns in the UserProfile object have been added
-  via south migration scripts. During an upgrade that modifies this model,
-  the columns in the django ORM database will not match the
-  actual object defined here, until the latest migration has been executed.
-  The code that does the actual UserProfile population must reside in the most
-  recent migration that modifies the UserProfile model.
-
-  for user in User.objects.all():
-    try:
-      p = orm.UserProfile.objects.get(user=user)
-    except orm.UserProfile.DoesNotExist:
-      create_profile_for_user(user)
-
-  IF ADDING A MIGRATION THAT MODIFIES THIS MODEL, MAKE SURE TO MOVE THIS CODE
-  OUT OF THE CURRENT MIGRATION, AND INTO THE NEW ONE, OR UPGRADES WILL NOT WORK
-  PROPERLY
+  Extra settings / properties to store for each user.
   """
-  # Enum for describing the creation method of a user.
   class CreationMethod(Enum):
     HUE = 1
     EXTERNAL = 2
@@ -100,8 +86,7 @@ class UserProfile(models.Model):
   user = models.OneToOneField(User, unique=True)
   home_directory = models.CharField(editable=True, max_length=1024, null=True)
   creation_method = models.CharField(editable=True, null=False, max_length=64, default=CreationMethod.HUE.name)
-  first_login = models.BooleanField(default=True, verbose_name=_t('First Login'),
-                                   help_text=_t('If this is users first login.'))
+  first_login = models.BooleanField(default=True, verbose_name=_t('First Login'), help_text=_t('If this is users first login.'))
   last_activity = models.DateTimeField(auto_now=True, db_index=True)
 
   def get_groups(self):

+ 1 - 1
apps/useradmin/src/useradmin/views.py

@@ -48,7 +48,7 @@ from desktop.views import antixss
 from hadoop.fs.exceptions import WebHdfsException
 
 from useradmin import ldap_access
-from useradmin.forms import SyncLdapUsersGroupsForm, AddLdapGroupsForm, AddLdapUsersForm,\
+from useradmin.forms import SyncLdapUsersGroupsForm, AddLdapGroupsForm, AddLdapUsersForm, \
   PermissionsEditForm, GroupEditForm, SuperUserChangeForm, validate_username, validate_first_name, \
   validate_last_name, PasswordChangeForm
 from useradmin.ldap_access import LdapBindException, LdapSearchException

+ 21 - 14
desktop/core/src/desktop/auth/views.py

@@ -50,7 +50,6 @@ from desktop.log.access import access_log, access_warn, last_access_map
 from desktop.settings import LOAD_BALANCER_COOKIE
 
 if sys.version_info[0] > 2:
-  import urllib.request, urllib.error
   from urllib.parse import urlencode as urllib_urlencode
 else:
   from urllib import urlencode as urllib_urlencode
@@ -73,7 +72,7 @@ def get_current_users():
     if uid is not None:
       try:
         userobj = User.objects.get(pk=uid)
-        current_users[userobj] = last_access_map.get(userobj.username, { })
+        current_users[userobj] = last_access_map.get(userobj.username, {})
       except User.DoesNotExist:
         LOG.debug("User with id=%d does not exist" % uid)
 
@@ -87,11 +86,14 @@ def first_login_ever():
       return True
   return False
 
-# We want unique method name to represent HUE-3 vs HUE-4 method call. This is required because of urlresolvers.reverse('desktop.auth.views.dt_login') below which needs uniqueness to work correctly
+
+# We want unique method name to represent HUE-3 vs HUE-4 method call.
+# This is required because of urlresolvers.reverse('desktop.auth.views.dt_login') below which needs uniqueness to work correctly.
 @login_notrequired
 def dt_login_old(request, from_modal=False):
   return dt_login(request, from_modal)
 
+
 @login_notrequired
 @watch_login
 def dt_login(request, from_modal=False):
@@ -102,8 +104,8 @@ def dt_login(request, from_modal=False):
   is_first_login_ever = first_login_ever()
   backend_names = auth_forms.get_backend_names()
   is_active_directory = auth_forms.is_active_directory()
-  is_ldap_option_selected = 'server' not in request.POST or request.POST.get('server') == 'LDAP' \
-                            or request.POST.get('server') in auth_forms.get_ldap_server_keys()
+  is_ldap_option_selected = 'server' not in request.POST or request.POST.get('server') == 'LDAP' or \
+      request.POST.get('server') in auth_forms.get_ldap_server_keys()
 
   if is_active_directory and is_ldap_option_selected:
     UserCreationForm = auth_forms.LdapUserCreationForm
@@ -132,7 +134,7 @@ def dt_login(request, from_modal=False):
       auth_form = AuthenticationForm(data=request.POST)
 
       if auth_form.is_valid():
-        # Must login by using the AuthenticationForm. It provides 'backends' on the User object.
+        # Must login by using the AuthenticationForm. It provides 'backend' on the User object.
         user = auth_form.get_user()
         userprofile = get_profile(user)
 
@@ -170,12 +172,14 @@ def dt_login(request, from_modal=False):
         access_warn(request, msg)
         if from_modal or request.GET.get('fromModal', 'false') == 'true':
           return JsonResponse({'auth': False})
-
   else:
     first_user_form = None
     auth_form = AuthenticationForm()
     # SAML/OIDC user is already authenticated in djangosaml2.views.login
-    if hasattr(request,'fs') and ('KnoxSpnegoDjangoBackend' in backend_names or 'SpnegoDjangoBackend' in backend_names or 'OIDCBackend' in backend_names or 'SAML2Backend' in backend_names) and request.user.is_authenticated():
+    if hasattr(request,'fs') and (
+        'KnoxSpnegoDjangoBackend' in backend_names or 'SpnegoDjangoBackend' in backend_names or 'OIDCBackend' in backend_names or
+        'SAML2Backend' in backend_names
+      ) and request.user.is_authenticated():
       try:
         ensure_home_directory(request.fs, request.user)
       except (IOError, WebHdfsException) as e:
@@ -184,7 +188,7 @@ def dt_login(request, from_modal=False):
       return HttpResponseRedirect(redirect_to)
 
   if is_active_directory and not is_ldap_option_selected and \
-                  request.method == 'POST' and request.user.username != request.POST.get('username'):
+      request.method == 'POST' and request.user.username != request.POST.get('username'):
     # local user login failed, give the right auth_form with 'server' field
     auth_form = auth_forms.LdapAuthenticationForm()
 
@@ -224,7 +228,7 @@ def dt_logout(request, next_page=None):
   # Close Impala session on logout
   session_app = "impala"
   if request.user.has_hue_permission(action='access', app=session_app):
-    session = {"type":session_app,"sourceMethod":"dt_logout"}
+    session = {"type": session_app, "sourceMethod":" dt_logout"}
     try:
       get_api(request, session).close_session(session)
     except Exception as e:
@@ -261,7 +265,8 @@ def _profile_dict(user):
     first_name=user.first_name,
     last_name=user.last_name,
     last_login=str(user.last_login), # datetime object needs to be converted
-    email=user.email)
+    email=user.email
+  )
 
 
 # OAuth is based on Twitter as example.
@@ -272,9 +277,10 @@ def oauth_login(request):
 
   consumer = oauth.Consumer(OAUTH.CONSUMER_KEY.get(), OAUTH.CONSUMER_SECRET.get())
   client = oauth.Client(consumer)
-  resp, content = client.request(OAUTH.REQUEST_TOKEN_URL.get(), "POST", body=urllib_urlencode({
-                      'oauth_callback': 'http://' + request.get_host() + '/login/oauth_authenticated/'
-                  }))
+  resp, content = client.request(
+      OAUTH.REQUEST_TOKEN_URL.get(), "POST", body=urllib_urlencode({
+      'oauth_callback': 'http://' + request.get_host() + '/login/oauth_authenticated/'
+  }))
 
   if resp['status'] != '200':
     raise Exception(_("Invalid response from OAuth provider: %s") % resp)
@@ -304,6 +310,7 @@ def oauth_authenticated(request):
   redirect_to = request.GET.get('next', '/')
   return HttpResponseRedirect(redirect_to)
 
+
 @login_notrequired
 def oidc_failed(request):
   if request.user.is_authenticated():