matterbridge/vendor/github.com/mattermost/mattermost-server/einterfaces/oauthproviders.go

30 lines
642 B
Go
Raw Normal View History

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
}