From 33e20b874e9709fc8d9e45ffb8d0c2357bc79e8d Mon Sep 17 00:00:00 2001 From: enahum Date: Tue, 20 Sep 2016 13:02:08 -0300 Subject: PLT-4202 fix javascript error manage OAuth2 apps (#4039) * PLT-4202 fix javascript error manage OAuth2 apps * Fix unit tests --- api/oauth.go | 1 + api/oauth_test.go | 4 ++-- model/authorization.go | 1 + .../integrations/components/installed_oauth_apps.jsx | 19 ++++++++++++------- 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/api/oauth.go b/api/oauth.go index 18a9979f6..233ae0879 100644 --- a/api/oauth.go +++ b/api/oauth.go @@ -102,6 +102,7 @@ func getOAuthApps(c *Context, w http.ResponseWriter, r *http.Request) { if HasPermissionToContext(c, model.PERMISSION_MANAGE_SYSTEM_WIDE_OAUTH) { ochan = Srv.Store.OAuth().GetApps() } else { + c.Err = nil ochan = Srv.Store.OAuth().GetAppByUser(c.Session.UserId) } diff --git a/api/oauth_test.go b/api/oauth_test.go index da069aefe..1dcdd55e3 100644 --- a/api/oauth_test.go +++ b/api/oauth_test.go @@ -156,8 +156,8 @@ func TestGetOAuthAppsByUser(t *testing.T) { utils.Cfg.ServiceSettings.EnableOAuthServiceProvider = true - if _, err := Client.GetOAuthAppsByUser(); err == nil { - t.Fatal("Should have failed. only admin is permitted") + if _, err := Client.GetOAuthAppsByUser(); err != nil { + t.Fatal("Should have passed.") } *utils.Cfg.ServiceSettings.EnableOnlyAdminIntegrations = false diff --git a/model/authorization.go b/model/authorization.go index a4d8bed86..75aebf55c 100644 --- a/model/authorization.go +++ b/model/authorization.go @@ -311,6 +311,7 @@ func InitalizeRoles() { []string{ PERMISSION_CREATE_DIRECT_CHANNEL.Id, PERMISSION_PERMANENT_DELETE_USER.Id, + PERMISSION_MANAGE_OAUTH.Id, }, } BuiltInRoles[ROLE_SYSTEM_USER.Id] = ROLE_SYSTEM_USER diff --git a/webapp/components/integrations/components/installed_oauth_apps.jsx b/webapp/components/integrations/components/installed_oauth_apps.jsx index 39ef347e2..322c95511 100644 --- a/webapp/components/integrations/components/installed_oauth_apps.jsx +++ b/webapp/components/integrations/components/installed_oauth_apps.jsx @@ -71,6 +71,17 @@ export default class InstalledOAuthApps extends React.Component { ); }); + const isSystemAdmin = UserStore.isSystemAdminForCurrentUser(); + const config = global.mm_config; + const integrationsEnabled = (config.EnableOAuthServiceProvider === 'true' && (isSystemAdmin || config.EnableOnlyAdminIntegrations !== 'true')); + let props; + if (integrationsEnabled) { + props = { + addLink: '/' + this.props.team.name + '/integrations/oauth2-apps/add', + addText: localizeMessage('installed_oauth_apps.add', 'Add OAuth 2.0 Application') + }; + } + return ( } - addText={ - - } - addLink={'/' + this.props.team.name + '/integrations/oauth2-apps/add'} emptyText={ {oauthApps} -- cgit v1.2.3-1-g7c22