2017-08-16 21:37:37 +00:00
|
|
|
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
2016-04-16 18:39:43 +00:00
|
|
|
// See License.txt for license information.
|
|
|
|
|
|
|
|
package einterfaces
|
|
|
|
|
|
|
|
import (
|
2018-02-08 23:11:04 +00:00
|
|
|
"github.com/mattermost/mattermost-server/model"
|
2016-04-16 18:39:43 +00:00
|
|
|
"io"
|
|
|
|
)
|
|
|
|
|
|
|
|
type OauthProvider interface {
|
|
|
|
GetIdentifier() string
|
|
|
|
GetUserFromJson(data io.Reader) *model.User
|
|
|
|
GetAuthDataFromJson(data io.Reader) string
|
|
|
|
}
|
|
|
|
|
|
|
|
var oauthProviders = make(map[string]OauthProvider)
|
|
|
|
|
|
|
|
func RegisterOauthProvider(name string, newProvider OauthProvider) {
|
|
|
|
oauthProviders[name] = newProvider
|
|
|
|
}
|
|
|
|
|
|
|
|
func GetOauthProvider(name string) OauthProvider {
|
|
|
|
provider, ok := oauthProviders[name]
|
|
|
|
if ok {
|
|
|
|
return provider
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|