summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederic Guillot <fred@kanboard.net>2015-08-01 16:48:58 -0400
committerFrederic Guillot <fred@kanboard.net>2015-08-01 16:48:58 -0400
commitea24cfb07c38e121613980e35aa8b1d2d65ac72c (patch)
tree5f7043baacbc93a0eda90bf9f525de5a187786f1
parent80a0c9f56075bb5cc9ece781d33d15abae75ede2 (diff)
Enable support for Github Enterprise when using Github Authentication
-rw-r--r--ChangeLog4
-rw-r--r--app/Auth/Github.php6
-rw-r--r--app/constants.php3
-rw-r--r--config.default.php9
-rw-r--r--docs/freebsd-installation.markdown1
-rw-r--r--docs/github-authentication.markdown19
6 files changed, 38 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index a9f64112..61fda5dd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -9,6 +9,10 @@ New features:
* Add config parameter to define session duration
* Add config parameter to disable/enable RememberMe authentication
+Improvements:
+
+* Enable support for Github Enterprise when using Github Authentication
+
Bug fixes:
* Wrong template name for subtasks tooltip due to previous refactoring
diff --git a/app/Auth/Github.php b/app/Auth/Github.php
index 44bcc6c8..021ea77d 100644
--- a/app/Auth/Github.php
+++ b/app/Auth/Github.php
@@ -94,8 +94,8 @@ class Github extends Base
GITHUB_CLIENT_ID,
GITHUB_CLIENT_SECRET,
$this->helper->url->to('oauth', 'github', array(), '', true),
- 'https://github.com/login/oauth/authorize',
- 'https://github.com/login/oauth/access_token',
+ GITHUB_OAUTH_AUTHORIZE_URL,
+ GITHUB_OAUTH_TOKEN_URL,
array()
);
}
@@ -115,7 +115,7 @@ class Github extends Base
$this->getService()->getAccessToken($code);
return $this->httpClient->getJson(
- 'https://api.github.com/user',
+ GITHUB_API_URL.'user',
array($this->getService()->getAuthorizationHeader())
);
}
diff --git a/app/constants.php b/app/constants.php
index 61dfa10a..072db543 100644
--- a/app/constants.php
+++ b/app/constants.php
@@ -46,6 +46,9 @@ defined('GOOGLE_CLIENT_SECRET') or define('GOOGLE_CLIENT_SECRET', '');
defined('GITHUB_AUTH') or define('GITHUB_AUTH', false);
defined('GITHUB_CLIENT_ID') or define('GITHUB_CLIENT_ID', '');
defined('GITHUB_CLIENT_SECRET') or define('GITHUB_CLIENT_SECRET', '');
+defined('GITHUB_OAUTH_AUTHORIZE_URL') or define('GITHUB_OAUTH_AUTHORIZE_URL', 'https://github.com/login/oauth/authorize');
+defined('GITHUB_OAUTH_TOKEN_URL') or define('GITHUB_OAUTH_TOKEN_URL', 'https://github.com/login/oauth/access_token');
+defined('GITHUB_API_URL') or define('GITHUB_API_URL', 'https://api.github.com/');
// Proxy authentication
defined('REVERSE_PROXY_AUTH') or define('REVERSE_PROXY_AUTH', false);
diff --git a/config.default.php b/config.default.php
index 9c1a833d..baa9267d 100644
--- a/config.default.php
+++ b/config.default.php
@@ -130,6 +130,15 @@ define('GITHUB_CLIENT_ID', '');
// GitHub client secret key (Copy it from your settings -> Applications -> Developer applications)
define('GITHUB_CLIENT_SECRET', '');
+// Github oauth2 authorize url
+define('GITHUB_OAUTH_AUTHORIZE_URL', 'https://github.com/login/oauth/authorize');
+
+// Github oauth2 token url
+define('GITHUB_OAUTH_TOKEN_URL', 'https://github.com/login/oauth/access_token');
+
+// Github API url (don't forget the slash at the end)
+define('GITHUB_API_URL', 'https://api.github.com/');
+
// Enable/disable the reverse proxy authentication
define('REVERSE_PROXY_AUTH', false);
diff --git a/docs/freebsd-installation.markdown b/docs/freebsd-installation.markdown
index 0f9a04c9..399afb4c 100644
--- a/docs/freebsd-installation.markdown
+++ b/docs/freebsd-installation.markdown
@@ -116,3 +116,4 @@ Please note
Port is being hosted on [bitbucket](https://bitbucket.org/if0/freebsd-kanboard/). Feel free to comment,
fork and suggest updates!
+ \ No newline at end of file
diff --git a/docs/github-authentication.markdown b/docs/github-authentication.markdown
index 8c3b622d..efefffc0 100644
--- a/docs/github-authentication.markdown
+++ b/docs/github-authentication.markdown
@@ -11,7 +11,7 @@ How does this work?
The Github authentication in Kanboard uses the [OAuth 2.0](http://oauth.net/2/) protocol, so any user of Kanboard can be linked to a Github account.
-When that is done, they no longer need to manually login with their Kanboard account, but can simply automatically login with their Github account.
+That means you can use your Github account to connect to Kanboard.
How to link a Github account
----------------------------
@@ -51,6 +51,23 @@ define('GITHUB_CLIENT_ID', 'YOUR_GITHUB_CLIENT_ID');
define('GITHUB_CLIENT_SECRET', 'YOUR_GITHUB_CLIENT_SECRET');
```
+### Github Entreprise
+
+To use this authentication method with Github Enterprise you have to change the default urls.
+
+Replace these values by your self-hosted instance of Github:
+
+```php
+// Github oauth2 authorize url
+define('GITHUB_OAUTH_AUTHORIZE_URL', 'https://github.com/login/oauth/authorize');
+
+// Github oauth2 token url
+define('GITHUB_OAUTH_TOKEN_URL', 'https://github.com/login/oauth/access_token');
+
+// Github API url (don't forget the slash at the end)
+define('GITHUB_API_URL', 'https://api.github.com/');
+```
+
Notes
-----