From 7ea469e876edfdb8c09ec99f4e9d56a6f79a53d6 Mon Sep 17 00:00:00 2001 From: Yang Luo Date: Wed, 16 Jun 2021 00:18:56 +0800 Subject: [PATCH] Add provider_item.go --- controllers/account.go | 7 +++++++ object/application.go | 19 ++++--------------- object/provider.go | 22 +++++++++++++--------- object/provider_item.go | 33 +++++++++++++++++++++++++++++++++ 4 files changed, 57 insertions(+), 24 deletions(-) create mode 100644 object/provider_item.go diff --git a/controllers/account.go b/controllers/account.go index 14f52e49..c29422dd 100644 --- a/controllers/account.go +++ b/controllers/account.go @@ -179,6 +179,13 @@ func (c *ApiController) GetAccount() { var resp Response user := object.GetUser(userId) + if user == nil { + resp := Response{Status: "error", Msg: fmt.Sprintf("The user: %s doesn't exist", userId)} + c.Data["json"] = resp + c.ServeJSON() + return + } + organization := object.GetOrganizationByUser(user) resp = Response{Status: "ok", Msg: "", Data: user, Data2: organization} diff --git a/object/application.go b/object/application.go index 539a9e6c..768d8a62 100644 --- a/object/application.go +++ b/object/application.go @@ -54,26 +54,15 @@ func GetApplications(owner string) []*Application { return applications } -func (application *Application) GetProviderItem(providerName string) *ProviderItem { - for _, providerItem := range application.Providers { - if providerItem.Name == providerName { - return providerItem - } - } - return nil -} - func getProviderMap(owner string) map[string]*Provider { providers := GetProviders(owner) m := map[string]*Provider{} for _, provider := range providers { - if provider.Category != "OAuth" { - continue - } + //if provider.Category != "OAuth" { + // continue + //} - provider.ClientSecret = "" - provider.ProviderUrl = "" - m[provider.Name] = provider + m[provider.Name] = getMaskedProvider(provider) } return m } diff --git a/object/provider.go b/object/provider.go index 239aace2..e30e2695 100644 --- a/object/provider.go +++ b/object/provider.go @@ -19,15 +19,6 @@ import ( "xorm.io/core" ) -type ProviderItem struct { - Name string `json:"name"` - CanSignUp bool `json:"canSignUp"` - CanSignIn bool `json:"canSignIn"` - CanUnbind bool `json:"canUnbind"` - AlertType string `json:"alertType"` - Provider *Provider `json:"provider"` -} - type Provider struct { Owner string `xorm:"varchar(100) notnull pk" json:"owner"` Name string `xorm:"varchar(100) notnull pk" json:"name"` @@ -52,6 +43,19 @@ type Provider struct { ProviderUrl string `xorm:"varchar(200)" json:"providerUrl"` } +func getMaskedProvider(provider *Provider) *Provider { + p := &Provider{ + Owner: provider.Owner, + Name: provider.Name, + CreatedTime: provider.CreatedTime, + DisplayName: provider.DisplayName, + Category: provider.Category, + Type: provider.Type, + ClientId: provider.ClientId, + } + return p +} + func GetProviders(owner string) []*Provider { providers := []*Provider{} err := adapter.Engine.Desc("created_time").Find(&providers, &Provider{Owner: owner}) diff --git a/object/provider_item.go b/object/provider_item.go new file mode 100644 index 00000000..5434c888 --- /dev/null +++ b/object/provider_item.go @@ -0,0 +1,33 @@ +// Copyright 2021 The casbin Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package object + +type ProviderItem struct { + Name string `json:"name"` + CanSignUp bool `json:"canSignUp"` + CanSignIn bool `json:"canSignIn"` + CanUnbind bool `json:"canUnbind"` + AlertType string `json:"alertType"` + Provider *Provider `json:"provider"` +} + +func (application *Application) GetProviderItem(providerName string) *ProviderItem { + for _, providerItem := range application.Providers { + if providerItem.Name == providerName { + return providerItem + } + } + return nil +}