Fixed SSH authentication + uploads folder check

This commit is contained in:
NGPixel 2017-02-11 16:21:50 -05:00
parent c6853a0315
commit 3b5c0a9b74
5 changed files with 32 additions and 15 deletions

View File

@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/). This project adheres to [Semantic Versioning](http://semver.org/).
## [Unreleased] ## [Unreleased]
### Fixed
- Fixed folder name typo during uploads folder permissions check
- Fixed SSH authentication for Git
### Changed
- Removed separate OAuth authentication option. Select basic authentication to use tokens.
## [v1.0-beta.3] - 2017-02-10 ## [v1.0-beta.3] - 2017-02-10
### Added ### Added

View File

@ -22,8 +22,8 @@ defaults:
public: false public: false
auth: auth:
local: local:
enabled: true enabled: true
microsoft: microsoft:
enabled: false enabled: false
google: google:
enabled: false enabled: false
@ -39,10 +39,9 @@ defaults:
type: basic type: basic
username: null username: null
password: null password: null
publicKey: null
privateKey: null privateKey: null
sslVerify: true sslVerify: true
signature: signature:
name: Wiki name: Wiki
email: wiki@example.com email: wiki@example.com
# --------------------------------- # ---------------------------------

View File

@ -100,18 +100,17 @@ git:
branch: master branch: master
auth: auth:
# Type: basic, oauth or ssh # Type: basic or ssh
type: ssh type: ssh
# Only for Basic authentication:
username: marty username: marty
# Password, OAuth token or private key passphrase:
password: MartyMcFly88 password: MartyMcFly88
# Only for SSH authentication: # Only for SSH authentication:
publicKey: /etc/wiki/keys/git.pem
privateKey: /etc/wiki/keys/git.pem privateKey: /etc/wiki/keys/git.pem
sslVerify: true sslVerify: true
signature: signature:
name: Marty name: Marty
email: marty@example.com email: marty@example.com

View File

@ -89,19 +89,32 @@ module.exports = {
// Initialize remote // Initialize remote
let urlObj = URL.parse(appconfig.git.url) let urlObj = URL.parse(appconfig.git.url)
urlObj.auth = appconfig.git.auth.username + ((appconfig.git.auth.type !== 'ssh') ? ':' + appconfig.git.auth.password : '') if (appconfig.git.auth.type !== 'ssh') {
urlObj.auth = appconfig.git.auth.username + ':' + appconfig.git.auth.password
}
self._url = URL.format(urlObj) self._url = URL.format(urlObj)
let gitConfigs = [
() => { return self._git.exec('config', ['--local', 'user.name', self._signature.name]) },
() => { return self._git.exec('config', ['--local', 'user.email', self._signature.email]) },
() => { return self._git.exec('config', ['--local', '--bool', 'http.sslVerify', _.toString(appconfig.git.auth.sslVerify)]) }
]
if (appconfig.git.auth.type === 'ssh') {
gitConfigs.push(() => {
return self._git.exec('config', ['--local', 'core.sshCommand', 'ssh -i "' + appconfig.git.auth.privateKey + '" -o StrictHostKeyChecking=no'])
})
}
return self._git.exec('remote', 'show').then((cProc) => { return self._git.exec('remote', 'show').then((cProc) => {
let out = cProc.stdout.toString() let out = cProc.stdout.toString()
if (_.includes(out, 'origin')) { if (_.includes(out, 'origin')) {
return true return true
} else { } else {
return Promise.join( return Promise.each(gitConfigs, fn => { return fn() }).then(() => {
self._git.exec('config', ['--local', 'user.name', self._signature.name]),
self._git.exec('config', ['--local', 'user.email', self._signature.email])
).then(() => {
return self._git.exec('remote', ['add', 'origin', self._url]) return self._git.exec('remote', ['add', 'origin', self._url])
}).catch(err => {
winston.error(err)
}) })
} }
}) })

View File

@ -114,7 +114,7 @@ module.exports = {
fs.ensureDirSync(path.resolve(ROOTPATH, appconfig.paths.repo, './uploads')) fs.ensureDirSync(path.resolve(ROOTPATH, appconfig.paths.repo, './uploads'))
if (os.type() !== 'Windows_NT') { if (os.type() !== 'Windows_NT') {
fs.chmodSync(path.resolve(ROOTPATH, appconfig.paths.repo, './upload'), '644') fs.chmodSync(path.resolve(ROOTPATH, appconfig.paths.repo, './uploads'), '644')
} }
} catch (err) { } catch (err) {
winston.error(err) winston.error(err)