mirror of
https://github.com/casdoor/casdoor.git
synced 2025-07-02 03:00:18 +08:00
Refactor GetProviderFromContext().
This commit is contained in:
@ -64,31 +64,6 @@ func (c *ApiController) AddResource() {
|
|||||||
c.ServeJSON()
|
c.ServeJSON()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *ApiController) GetProviderParam() (*object.Provider, *object.User, bool) {
|
|
||||||
providerName := c.Input().Get("provider")
|
|
||||||
if providerName != "" {
|
|
||||||
provider := object.GetProvider(util.GetId(providerName))
|
|
||||||
if provider == nil {
|
|
||||||
c.ResponseError(fmt.Sprintf("The provider: %s is not found", providerName))
|
|
||||||
return nil, nil, false
|
|
||||||
}
|
|
||||||
return provider, nil, true
|
|
||||||
}
|
|
||||||
|
|
||||||
userId, ok := c.RequireSignedIn()
|
|
||||||
if !ok {
|
|
||||||
return nil, nil, false
|
|
||||||
}
|
|
||||||
|
|
||||||
application, user := object.GetApplicationByUserId(userId)
|
|
||||||
provider := application.GetStorageProvider()
|
|
||||||
if provider == nil {
|
|
||||||
c.ResponseError(fmt.Sprintf("No storage provider is found for application: %s", application.Name))
|
|
||||||
return nil, nil, false
|
|
||||||
}
|
|
||||||
return provider, user, true
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *ApiController) DeleteResource() {
|
func (c *ApiController) DeleteResource() {
|
||||||
var resource object.Resource
|
var resource object.Resource
|
||||||
err := json.Unmarshal(c.Ctx.Input.RequestBody, &resource)
|
err := json.Unmarshal(c.Ctx.Input.RequestBody, &resource)
|
||||||
@ -96,7 +71,7 @@ func (c *ApiController) DeleteResource() {
|
|||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
provider, _, ok := c.GetProviderParam()
|
provider, _, ok := c.GetProviderFromContext("Storage")
|
||||||
if !ok {
|
if !ok {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -132,7 +107,7 @@ func (c *ApiController) UploadResource() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
provider, user, ok := c.GetProviderParam()
|
provider, user, ok := c.GetProviderFromContext("Storage")
|
||||||
if !ok {
|
if !ok {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -15,9 +15,12 @@
|
|||||||
package controllers
|
package controllers
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
"github.com/astaxie/beego"
|
"github.com/astaxie/beego"
|
||||||
|
"github.com/casbin/casdoor/object"
|
||||||
|
"github.com/casbin/casdoor/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ResponseOk ...
|
// ResponseOk ...
|
||||||
@ -66,3 +69,28 @@ func getInitScore() int {
|
|||||||
|
|
||||||
return score
|
return score
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *ApiController) GetProviderFromContext(category string) (*object.Provider, *object.User, bool) {
|
||||||
|
providerName := c.Input().Get("provider")
|
||||||
|
if providerName != "" {
|
||||||
|
provider := object.GetProvider(util.GetId(providerName))
|
||||||
|
if provider == nil {
|
||||||
|
c.ResponseError(fmt.Sprintf("The provider: %s is not found", providerName))
|
||||||
|
return nil, nil, false
|
||||||
|
}
|
||||||
|
return provider, nil, true
|
||||||
|
}
|
||||||
|
|
||||||
|
userId, ok := c.RequireSignedIn()
|
||||||
|
if !ok {
|
||||||
|
return nil, nil, false
|
||||||
|
}
|
||||||
|
|
||||||
|
application, user := object.GetApplicationByUserId(userId)
|
||||||
|
provider := application.GetProviderByCategory(category)
|
||||||
|
if provider == nil {
|
||||||
|
c.ResponseError(fmt.Sprintf("No provider for category: \"%s\" is found for application: %s", category, application.Name))
|
||||||
|
return nil, nil, false
|
||||||
|
}
|
||||||
|
return provider, user, true
|
||||||
|
}
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
package object
|
package object
|
||||||
|
|
||||||
func (application *Application) getProviderByCategory(category string) *Provider {
|
func (application *Application) GetProviderByCategory(category string) *Provider {
|
||||||
providers := GetProviders(application.Owner)
|
providers := GetProviders(application.Owner)
|
||||||
m := map[string]*Provider{}
|
m := map[string]*Provider{}
|
||||||
for _, provider := range providers {
|
for _, provider := range providers {
|
||||||
@ -35,15 +35,15 @@ func (application *Application) getProviderByCategory(category string) *Provider
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (application *Application) GetEmailProvider() *Provider {
|
func (application *Application) GetEmailProvider() *Provider {
|
||||||
return application.getProviderByCategory("Email")
|
return application.GetProviderByCategory("Email")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (application *Application) GetSmsProvider() *Provider {
|
func (application *Application) GetSmsProvider() *Provider {
|
||||||
return application.getProviderByCategory("SMS")
|
return application.GetProviderByCategory("SMS")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (application *Application) GetStorageProvider() *Provider {
|
func (application *Application) GetStorageProvider() *Provider {
|
||||||
return application.getProviderByCategory("Storage")
|
return application.GetProviderByCategory("Storage")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (application *Application) getSignupItem(itemName string) *SignupItem {
|
func (application *Application) getSignupItem(itemName string) *SignupItem {
|
||||||
|
@ -18,7 +18,7 @@ package object
|
|||||||
|
|
||||||
import "github.com/go-gomail/gomail"
|
import "github.com/go-gomail/gomail"
|
||||||
|
|
||||||
func SendEmail(provider *Provider, title, content, dest, sender string) error {
|
func SendEmail(provider *Provider, title string, content string, dest string, sender string) error {
|
||||||
dialer := gomail.NewDialer(provider.Host, provider.Port, provider.ClientId, provider.ClientSecret)
|
dialer := gomail.NewDialer(provider.Host, provider.Port, provider.ClientId, provider.ClientSecret)
|
||||||
|
|
||||||
message := gomail.NewMessage()
|
message := gomail.NewMessage()
|
||||||
|
Reference in New Issue
Block a user