From 2755527d28d4e4d3dd3670c9b59fcf6383bb221a Mon Sep 17 00:00:00 2001 From: baron_l Date: Thu, 7 Feb 2019 19:32:02 +0100 Subject: [PATCH] feat(oauth): default team for user on oauth settings --- api/portainer.go | 1 + .../oauth-settings/oauth-settings.html | 24 +++++++++++++++++++ .../oauth-settings/oauth-settings.js | 3 ++- app/portainer/models/settings.js | 1 + .../settingsAuthentication.html | 2 +- .../settingsAuthenticationController.js | 13 ++++++---- 6 files changed, 37 insertions(+), 7 deletions(-) diff --git a/api/portainer.go b/api/portainer.go index 6f71dc176..de2511b37 100644 --- a/api/portainer.go +++ b/api/portainer.go @@ -67,6 +67,7 @@ type ( UserIdentifier string `json:"UserIdentifier"` Scopes string `json:"Scopes"` OAuthAutoCreateUsers bool `json:"OAuthAutoCreateUsers"` + DefaultTeamID TeamID `json:"DefaultTeamID"` } // TLSConfiguration represents a TLS configuration diff --git a/app/extensions/oauth/components/oauth-settings/oauth-settings.html b/app/extensions/oauth/components/oauth-settings/oauth-settings.html index e2a5217e0..1a51eac59 100644 --- a/app/extensions/oauth/components/oauth-settings/oauth-settings.html +++ b/app/extensions/oauth/components/oauth-settings/oauth-settings.html @@ -149,6 +149,9 @@ +
+ Automatic user provisioning +
With automatic user provisioning enabled, Portainer will create user(s) automatically with standard user role. If @@ -163,4 +166,25 @@
+ +
+
+ + The users created by the automatic provisioning feature can be added to a default team on creation. This setting is optional. + +
+
+ +
+ +
+
+ +
+
+
diff --git a/app/extensions/oauth/components/oauth-settings/oauth-settings.js b/app/extensions/oauth/components/oauth-settings/oauth-settings.js index d5031d187..51a9ec553 100644 --- a/app/extensions/oauth/components/oauth-settings/oauth-settings.js +++ b/app/extensions/oauth/components/oauth-settings/oauth-settings.js @@ -1,6 +1,7 @@ angular.module('portainer.extensions.oauth').component('oauthSettings', { templateUrl: 'app/extensions/oauth/components/oauth-settings/oauth-settings.html', bindings: { - settings: '<' + settings: '<', + teams: '<' } }); diff --git a/app/portainer/models/settings.js b/app/portainer/models/settings.js index 930ae4da5..bdb8b8713 100644 --- a/app/portainer/models/settings.js +++ b/app/portainer/models/settings.js @@ -53,4 +53,5 @@ function OAuthSettingsViewModel(data) { this.UserIdentifier = data.UserIdentifier; this.Scopes = data.Scopes; this.OAuthAutoCreateUsers = data.OAuthAutoCreateUsers; + this.DefaultTeamID = data.DefaultTeamID; } \ No newline at end of file diff --git a/app/portainer/views/settings/authentication/settingsAuthentication.html b/app/portainer/views/settings/authentication/settingsAuthentication.html index d7427269c..f47d02032 100644 --- a/app/portainer/views/settings/authentication/settingsAuthentication.html +++ b/app/portainer/views/settings/authentication/settingsAuthentication.html @@ -322,7 +322,7 @@ - +
diff --git a/app/portainer/views/settings/authentication/settingsAuthenticationController.js b/app/portainer/views/settings/authentication/settingsAuthenticationController.js index dc74a3b54..8a22d1783 100644 --- a/app/portainer/views/settings/authentication/settingsAuthenticationController.js +++ b/app/portainer/views/settings/authentication/settingsAuthenticationController.js @@ -1,6 +1,6 @@ angular.module('portainer.app') -.controller('SettingsAuthenticationController', ['$q', '$scope', 'Notifications', 'SettingsService', 'FileUploadService', -function ($q, $scope, Notifications, SettingsService, FileUploadService) { +.controller('SettingsAuthenticationController', ['$q', '$scope', 'Notifications', 'SettingsService', 'FileUploadService', 'TeamService', +function ($q, $scope, Notifications, SettingsService, FileUploadService, TeamService) { $scope.state = { successfulConnectivityCheck: false, @@ -96,9 +96,12 @@ function ($q, $scope, Notifications, SettingsService, FileUploadService) { } function initView() { - SettingsService.settings() - .then(function success(data) { - var settings = data; + $q.all({ + settings: SettingsService.settings(), + teams: TeamService.teams() + }).then(function success(data) { + var settings = data.settings; + $scope.teams = data.teams; $scope.settings = settings; $scope.LDAPSettings = settings.LDAPSettings; $scope.OAuthSettings = settings.OAuthSettings;