From e69dcc433b5d727a7f317df7d8560c01ea89c82b Mon Sep 17 00:00:00 2001 From: Zhuang Date: Sat, 21 Apr 2018 12:29:00 +0800 Subject: [PATCH 1/4] reload grant value to db when add/delete provider --- .../config/functions/bootstrap.js | 89 ++++++++++--------- 1 file changed, 46 insertions(+), 43 deletions(-) diff --git a/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js b/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js index e9cccfba65..d2a3ec3819 100644 --- a/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js +++ b/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js @@ -34,49 +34,52 @@ module.exports = async cb => { name: 'users-permissions' }); - if (!await pluginStore.get({key: 'grant'})) { - const value = { - email: { - enabled: true, - icon: 'envelope' - }, - facebook: { - enabled: false, - icon: 'facebook-official', - key: '', - secret: '', - callback: '/auth/facebook/callback', - scope: ['email'] - }, - google: { - enabled: false, - icon: 'google', - key: '', - secret: '', - callback: '/auth/google/callback', - scope: ['email'] - }, - github: { - enabled: false, - icon: 'github', - key: '', - secret: '', - redirect_uri: '/auth/github/callback', - scope: [ - 'user', - 'user:email' - ] - }, - twitter: { - enabled: false, - icon: 'twitter', - key: '', - secret: '', - callback: '/auth/twitter/callback' - } - }; - - await pluginStore.set({key: 'grant', value}); + const grantValue = { + email: { + enabled: true, + icon: 'envelope' + }, + facebook: { + enabled: false, + icon: 'facebook-official', + key: '', + secret: '', + callback: '/auth/facebook/callback', + scope: ['email'] + }, + google: { + enabled: false, + icon: 'google', + key: '', + secret: '', + callback: '/auth/google/callback', + scope: ['email'] + }, + github: { + enabled: false, + icon: 'github', + key: '', + secret: '', + redirect_uri: '/auth/github/callback', + scope: [ + 'user', + 'user:email' + ] + }, + twitter: { + enabled: false, + icon: 'twitter', + key: '', + secret: '', + callback: '/auth/twitter/callback' + } + }; + const prevGrantValue = await pluginStore.get({key: 'grant'}) + // store grant auth config to db + // when plugin_users-permissions_grant is not existed in db + // or we have added/deleted provider here. + if (!prevGrantValue || !_.isEqual(_.keys(prevGrantValue), _.keys(grantValue))) { + await pluginStore.set({key: 'grant', value: grantValue}); } if (!await pluginStore.get({key: 'email'})) { From 43357bf49b696583dbdfc67465f931bb75374fe4 Mon Sep 17 00:00:00 2001 From: XcrossD Date: Mon, 23 Apr 2018 11:20:14 +0800 Subject: [PATCH 2/4] Update LeftMenuFooter style --- .../admin/src/components/LeftMenuFooter/styles.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/strapi-admin/admin/src/components/LeftMenuFooter/styles.scss b/packages/strapi-admin/admin/src/components/LeftMenuFooter/styles.scss index 5f77a12720..b66674e62a 100755 --- a/packages/strapi-admin/admin/src/components/LeftMenuFooter/styles.scss +++ b/packages/strapi-admin/admin/src/components/LeftMenuFooter/styles.scss @@ -3,7 +3,7 @@ .leftMenuFooter { /* stylelint-disable */ position: absolute; - width: 100%; + width: calc(100% - 2 * 15px); bottom: 0; height: 3rem; padding-left: 15px; From 0db8f05e8be6806c0c3ce0d3a1c7824a9a1e2674 Mon Sep 17 00:00:00 2001 From: Herbert Lin Date: Tue, 24 Apr 2018 17:59:30 +0800 Subject: [PATCH 3/4] Temp fix for LeftMenuFooter style. --- .../admin/src/components/LeftMenuFooter/index.js | 6 ++++-- .../admin/src/components/LeftMenuFooter/styles.scss | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/strapi-admin/admin/src/components/LeftMenuFooter/index.js b/packages/strapi-admin/admin/src/components/LeftMenuFooter/index.js index 7973f87d61..6e7ecf6961 100755 --- a/packages/strapi-admin/admin/src/components/LeftMenuFooter/index.js +++ b/packages/strapi-admin/admin/src/components/LeftMenuFooter/index.js @@ -17,8 +17,10 @@ defineMessages(messages); function LeftMenuFooter({ version }) { // eslint-disable-line react/prefer-stateless-function return (
- - v{version} +
+ + v{version} +
); diff --git a/packages/strapi-admin/admin/src/components/LeftMenuFooter/styles.scss b/packages/strapi-admin/admin/src/components/LeftMenuFooter/styles.scss index b66674e62a..f885e4e5a7 100755 --- a/packages/strapi-admin/admin/src/components/LeftMenuFooter/styles.scss +++ b/packages/strapi-admin/admin/src/components/LeftMenuFooter/styles.scss @@ -4,6 +4,8 @@ .leftMenuFooter { /* stylelint-disable */ position: absolute; width: calc(100% - 2 * 15px); + display: flex; + justify-content: space-between; bottom: 0; height: 3rem; padding-left: 15px; From d23ebfeaf0757b091a4e292002d450a717a70044 Mon Sep 17 00:00:00 2001 From: Zhuang Date: Tue, 24 Apr 2018 22:18:21 +0800 Subject: [PATCH 4/4] merge the previous provider config --- .../config/functions/bootstrap.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js b/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js index d2a3ec3819..902bd075f4 100644 --- a/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js +++ b/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js @@ -34,7 +34,7 @@ module.exports = async cb => { name: 'users-permissions' }); - const grantValue = { + const grantConfig = { email: { enabled: true, icon: 'envelope' @@ -74,12 +74,18 @@ module.exports = async cb => { callback: '/auth/twitter/callback' } }; - const prevGrantValue = await pluginStore.get({key: 'grant'}) + const prevGrantConfig = await pluginStore.get({key: 'grant'}) // store grant auth config to db // when plugin_users-permissions_grant is not existed in db // or we have added/deleted provider here. - if (!prevGrantValue || !_.isEqual(_.keys(prevGrantValue), _.keys(grantValue))) { - await pluginStore.set({key: 'grant', value: grantValue}); + if (!prevGrantConfig || !_.isEqual(_.keys(prevGrantConfig), _.keys(grantConfig))) { + // merge with the previous provider config. + _.keys(grantConfig).forEach((key) => { + if (key in prevGrantConfig) { + grantConfig[key] = _.merge(grantConfig[key], prevGrantConfig[key]); + } + }); + await pluginStore.set({key: 'grant', value: grantConfig}); } if (!await pluginStore.get({key: 'email'})) {