Commit b4646b6c by Kevin Fitzpatrick

Allow users to use a generic oauth that conforms to the github style.

Enables users to set their own link text.
parent 603e5fe0
...@@ -27,6 +27,8 @@ func LoginView(c *middleware.Context) { ...@@ -27,6 +27,8 @@ func LoginView(c *middleware.Context) {
viewData.Settings["googleAuthEnabled"] = setting.OAuthService.Google viewData.Settings["googleAuthEnabled"] = setting.OAuthService.Google
viewData.Settings["githubAuthEnabled"] = setting.OAuthService.GitHub viewData.Settings["githubAuthEnabled"] = setting.OAuthService.GitHub
viewData.Settings["genericOAuthEnabled"] = setting.OAuthService.Generic
viewData.Settings["oauthProviderName"] = setting.OAuthService.OAuthProviderName
viewData.Settings["disableUserSignUp"] = !setting.AllowUserSignUp viewData.Settings["disableUserSignUp"] = !setting.AllowUserSignUp
viewData.Settings["loginHint"] = setting.LoginHint viewData.Settings["loginHint"] = setting.LoginHint
viewData.Settings["allowUserPassLogin"] = setting.AllowUserPassLogin viewData.Settings["allowUserPassLogin"] = setting.AllowUserPassLogin
......
...@@ -11,8 +11,9 @@ type OAuthInfo struct { ...@@ -11,8 +11,9 @@ type OAuthInfo struct {
} }
type OAuther struct { type OAuther struct {
GitHub, Google, Twitter bool GitHub, Google, Twitter, Generic bool
OAuthInfos map[string]*OAuthInfo OAuthInfos map[string]*OAuthInfo
OAuthProviderName string
} }
var OAuthService *OAuther var OAuthService *OAuther
...@@ -42,7 +42,7 @@ func NewOAuthService() { ...@@ -42,7 +42,7 @@ func NewOAuthService() {
setting.OAuthService = &setting.OAuther{} setting.OAuthService = &setting.OAuther{}
setting.OAuthService.OAuthInfos = make(map[string]*setting.OAuthInfo) setting.OAuthService.OAuthInfos = make(map[string]*setting.OAuthInfo)
allOauthes := []string{"github", "google"} allOauthes := []string{"github", "google", "generic-oauth"}
for _, name := range allOauthes { for _, name := range allOauthes {
sec := setting.Cfg.Section("auth." + name) sec := setting.Cfg.Section("auth." + name)
...@@ -98,6 +98,22 @@ func NewOAuthService() { ...@@ -98,6 +98,22 @@ func NewOAuthService() {
allowSignup: info.AllowSignup, allowSignup: info.AllowSignup,
} }
} }
// Generic - Uses the same scheme as Github.
if name == "generic-oauth" {
setting.OAuthService.Generic = true
setting.OAuthService.OAuthProviderName = sec.Key("oauth_provider_name").String()
teamIds := sec.Key("team_ids").Ints(",")
allowedOrganizations := sec.Key("allowed_organizations").Strings(" ")
SocialMap["generic-oauth"] = &SocialGithub{
Config: &config,
allowedDomains: info.AllowedDomains,
apiUrl: info.ApiUrl,
allowSignup: info.AllowSignup,
teamIds: teamIds,
allowedOrganizations: allowedOrganizations,
}
}
} }
} }
......
...@@ -17,8 +17,10 @@ function (angular, coreModule, config) { ...@@ -17,8 +17,10 @@ function (angular, coreModule, config) {
$scope.googleAuthEnabled = config.googleAuthEnabled; $scope.googleAuthEnabled = config.googleAuthEnabled;
$scope.githubAuthEnabled = config.githubAuthEnabled; $scope.githubAuthEnabled = config.githubAuthEnabled;
$scope.oauthEnabled = config.githubAuthEnabled || config.googleAuthEnabled; $scope.oauthEnabled = config.githubAuthEnabled || config.googleAuthEnabled || config.genericOAuthEnabled;
$scope.allowUserPassLogin = config.allowUserPassLogin; $scope.allowUserPassLogin = config.allowUserPassLogin;
$scope.genericOAuthEnabled = config.genericOAuthEnabled;
$scope.oauthProviderName = config.oauthProviderName;
$scope.disableUserSignUp = config.disableUserSignUp; $scope.disableUserSignUp = config.disableUserSignUp;
$scope.loginHint = config.loginHint; $scope.loginHint = config.loginHint;
......
...@@ -59,6 +59,10 @@ ...@@ -59,6 +59,10 @@
<i class="fa fa-github"></i> <i class="fa fa-github"></i>
with Github with Github
</a> </a>
<a class="btn btn-large btn-generic-oauth" href="login/generic-oauth" target="_self" ng-if="genericOAuthEnabled">
<i class="fa fa-gear"></i>
with {{oauthProviderName || "OAuth 2"}}
</a>
</div> </div>
</div> </div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment