浏览代码

HUE-8675 [core] Fix external users created as superuser

Ying Chen 7 年之前
父节点
当前提交
5fa75c3

+ 1 - 1
apps/useradmin/src/useradmin/old_migrations/0001_permissions_and_profiles.py

@@ -32,7 +32,7 @@ class Migration(DataMigration):
             # LDAP == 1
             # HUE == 0
             if up.creation_method == '1':
-              up.creation_method = UserProfile.CreationMethod.EXTERNAL
+              up.creation_method = UserProfile.CreationMethod.EXTERNAL.name
             elif up.creation_method == '0':
               up.creation_method = UserProfile.CreationMethod.HUE
             up.save()

+ 4 - 4
desktop/core/src/desktop/auth/backend.py

@@ -340,7 +340,7 @@ class PamBackend(DesktopBackendBase):
         user = find_or_create_user(username, None)
         if user is not None and user.is_active:
           profile = get_profile(user)
-          profile.creation_method = UserProfile.CreationMethod.EXTERNAL
+          profile.creation_method = UserProfile.CreationMethod.EXTERNAL.name
           profile.save()
           user.is_superuser = is_super
 
@@ -492,7 +492,7 @@ class LdapBackend(object):
 
     if user is not None and user.is_active:
       profile = get_profile(user)
-      profile.creation_method = UserProfile.CreationMethod.EXTERNAL
+      profile.creation_method = UserProfile.CreationMethod.EXTERNAL.name
       profile.save()
       user.is_superuser = is_super
       user = rewrite_user(user)
@@ -577,7 +577,7 @@ class SpnegoDjangoBackend(django.contrib.auth.backends.ModelBackend):
       user = find_or_create_user(username, None)
       if user is not None and user.is_active:
         profile = get_profile(user)
-        profile.creation_method = UserProfile.CreationMethod.EXTERNAL
+        profile.creation_method = UserProfile.CreationMethod.EXTERNAL.name
         profile.save()
         user.is_superuser = is_super
 
@@ -622,7 +622,7 @@ class RemoteUserDjangoBackend(django.contrib.auth.backends.RemoteUserBackend):
       user = find_or_create_user(username, None)
       if user is not None and user.is_active:
         profile = get_profile(user)
-        profile.creation_method = UserProfile.CreationMethod.EXTERNAL
+        profile.creation_method = UserProfile.CreationMethod.EXTERNAL.name
         profile.save()
         user.is_superuser = is_super
 

+ 4 - 1
desktop/core/src/desktop/auth/views.py

@@ -46,7 +46,7 @@ from desktop.conf import OAUTH
 from desktop.settings import LOAD_BALANCER_COOKIE
 
 from hadoop.fs.exceptions import WebHdfsException
-from useradmin.models import get_profile
+from useradmin.models import get_profile, UserProfile
 from useradmin.views import ensure_home_directory, require_change_password
 from notebook.connectors.base import get_api
 
@@ -139,6 +139,9 @@ def dt_login(request, from_modal=False):
 
         userprofile.first_login = False
         userprofile.last_activity = datetime.now()
+        # This is to fix a bug in Hue 4.3
+        if userprofile.creation_method == UserProfile.CreationMethod.EXTERNAL:
+          userprofile.creation_method = UserProfile.CreationMethod.EXTERNAL.name
         userprofile.save()
 
         msg = 'Successful login for user: %s' % user.username

+ 1 - 1
desktop/libs/liboauth/src/liboauth/backend.py

@@ -67,7 +67,7 @@ class OAuthBackend(DesktopBackendBase):
       user = find_or_create_user(username, password)
 
       profile = get_profile(user)
-      profile.creation_method = UserProfile.CreationMethod.EXTERNAL
+      profile.creation_method = UserProfile.CreationMethod.EXTERNAL.name
       profile.save()
 
       user.is_superuser = is_super

+ 1 - 1
desktop/libs/libopenid/src/libopenid/backend.py

@@ -67,7 +67,7 @@ class OpenIDBackend(_OpenIDBackend):
 
     if user is not None and user.is_active:
       profile = get_profile(user)
-      profile.creation_method = UserProfile.CreationMethod.EXTERNAL
+      profile.creation_method = UserProfile.CreationMethod.EXTERNAL.name
       profile.save()
       user.is_superuser = is_super
       user = rewrite_user(user)

+ 1 - 1
desktop/libs/libsaml/src/libsaml/backend.py

@@ -90,7 +90,7 @@ class SAML2Backend(_Saml2Backend):
     if user is not None and user.is_active:
       user.username = force_username_case(user.username)
       profile = get_profile(user)
-      profile.creation_method = UserProfile.CreationMethod.EXTERNAL
+      profile.creation_method = UserProfile.CreationMethod.EXTERNAL.name
       profile.save()
       user.is_superuser = is_super
       user = rewrite_user(user)