提交 7e1f9d3f 编写于 作者: S Sercan

resolves #113

上级 24f0d270
......@@ -6,7 +6,8 @@
</a>
<form role="search" class="navbar-form-custom">
<div class="form-group">
<input type="text" disabled="true" placeholder="Search for something..." class="form-control" name="top-search"
<input type="text" disabled="true" placeholder="Search for something..." class="form-control"
name="top-search"
id="top-search">
</div>
</form>
......@@ -154,7 +155,8 @@
class="form-control">
</div>
</div>
<div class="form-group"><label class="col-lg-2 control-label">Read From SECONDARY
<div class="form-group"><label class="col-lg-2 control-label">Read From
SECONDARY
</label>
<div id="divReadFromSecondary" class="col-lg-10">
<input id="inputReadFromSecondary" type="checkbox"
......@@ -277,6 +279,23 @@
</div>
</div>
</div>
<div class="form-group"><label class="col-lg-2 control-label">Use x509</label>
<div id="divUseX509" class="col-lg-10">
<input id="inputUseX509" type="checkbox"
class="form-control"
checked=""
style="position: absolute; opacity: 0;"/>
</div>
</div>
<div id="divX509Username" class="form-group" style="display: none">
<label class="col-lg-2 control-label">x509 Username</label>
<div class="col-lg-10"><input id="inputX509Username" type="text"
placeholder="x509 Username"
class="form-control">
</div>
</div>
</form>
</div>
</div>
......
......@@ -122,6 +122,15 @@ Template.topNavbar.events({
var connection = Connections.findOne({_id: Session.get(Template.strSessionConnection)});
Template.topNavbar.clearAllFieldsOfConnectionModal();
if (connection.x509Username) {
$('#divX509Username').show();
$('#inputUseX509').iCheck('check');
$('#inputX509Username').val(connection.x509Username);
} else {
$('#inputUseX509').iCheck('uncheck');
$('#divX509Username').hide();
}
if (connection.readFromSecondary) {
$('#inputReadFromSecondary').iCheck('check');
} else {
......@@ -235,6 +244,9 @@ Template.topNavbar.events({
var inputCertificatePathSelector = $('#inputCertificatePath');
var rootCertificatePathSelector = $("#inputRootCaPath");
var inputCertificateKeyPathSelector = $('#inputCertificateKeyPath');
var cmbSShAuthTypeSelector = $('#cmbSshAuthType');
var inputSShPassPhraseSelector = $('#inputSshPassPhrase');
var inputSshCertificatePathSelector = $('#inputSshCertificatePath');
var connection = {};
connection.readFromSecondary = $('#inputReadFromSecondary').iCheck('update')[0].checked;
......@@ -244,15 +256,15 @@ Template.topNavbar.events({
connection.sshPort = $('#inputSshPort').val();
connection.sshUser = $('#inputSshUsername').val();
if ($('#cmbSshAuthType').val() == 'Password') {
if (cmbSShAuthTypeSelector.val() == 'Password') {
connection.sshPassword = $('#inputSshPassword').val();
}
else if ($('#cmbSshAuthType').val() == 'Key File') {
if ($('#inputSshCertificatePath').val()) {
connection.sshCertificatePath = $('#inputSshCertificatePath').val();
else if (cmbSShAuthTypeSelector.val() == 'Key File') {
if (inputSshCertificatePathSelector.val()) {
connection.sshCertificatePath = inputSshCertificatePathSelector.val();
}
if ($('#inputSshPassPhrase').val()) {
connection.sshPassPhrase = $('#inputSshPassPhrase').val();
if (inputSShPassPhraseSelector.val()) {
connection.sshPassPhrase = inputSShPassPhraseSelector.val();
}
}
}
......@@ -268,6 +280,10 @@ Template.topNavbar.events({
connection.databaseName = $('#inputDatabaseName').val();
if ($('#inputAuthCertificate').iCheck('update')[0].checked) {
if ($('#inputUseX509').iCheck('update')[0].checked && $('#inputX509Username').val()) {
connection.x509Username = $('#inputX509Username').val();
}
if (inputCertificatePathSelector.val()) {
connection.sslCertificatePath = inputCertificatePathSelector.val();
connection.passPhrase = $("#inputPassPhrase").val();
......@@ -368,6 +384,9 @@ Template.topNavbar.clearAllFieldsOfConnectionModal = function () {
$("#inputSshCertificatePath").val('');
$("#inputSshPassPhrase").val('');
$("#inputSshPassword").val('');
$('#inputX509Username').val('');
$('#divX509Username').hide();
$('#inputUseX509').iCheck('uncheck');
$('#inputUseUrl').iCheck('uncheck');
$('#inputUseSsh').iCheck('uncheck');
$('#inputUseSSL').iCheck('uncheck');
......@@ -615,11 +634,12 @@ Template.topNavbar.initIChecks = function () {
var anchorTab2Selector = $('#anchorTab2');
var inputUseUriSelector = $("#inputUseUrl");
var inputUseSshSelector = $("#inputUseSsh");
var inputUseX509Username = $("#inputUseX509");
var inputReadFromSecondary = $("#inputReadFromSecondary");
inputAuthStandardSelector.iCheck('check');
$('#divUseSSL, #divUseSsh, #divUseUrl, #divReadFromSecondary').iCheck({
$('#divUseSSL, #divUseSsh, #divUseUrl, #divReadFromSecondary, #divUseX509').iCheck({
checkboxClass: 'icheckbox_square-green'
});
......@@ -636,6 +656,18 @@ Template.topNavbar.initIChecks = function () {
inputReadFromSecondary.iCheck('uncheck');
inputUseX509Username.iCheck('uncheck');
inputUseX509Username.on('ifChanged', function (event) {
var divX509UsernameSelector = $('#divX509Username');
var isChecked = event.currentTarget.checked;
if (isChecked) {
divX509UsernameSelector.show();
} else {
divX509UsernameSelector.hide();
}
});
inputUseUriSelector.iCheck('uncheck');
inputUseUriSelector.on('ifChanged', function (event) {
var inputUriSelector = $('#inputUrl');
......
......@@ -23,6 +23,10 @@ Connections.attachSchema(new SimpleSchema({
type: "String",
optional: true
},
'x509Username': {
type: "String",
optional: true
},
'sshCertificate': {
type: "String",
optional: true
......
......@@ -9,13 +9,25 @@ getConnectionUrl = function (connection) {
var connectionUrl = 'mongodb://';
if (connection.user && connection.password) {
connectionUrl += connection.user + ':' + encodeURIComponent(connection.password) + '@';
} else if (connection.x509Username) {
connectionUrl += encodeURIComponent(connection.x509Username) + '@'
}
connectionUrl += connection.host + ':' + connection.port + '/' + connection.databaseName;
if (connection.readFromSecondary) {
connectionUrl += '?readPreference=secondary';
}
if (connection.x509Username) {
if (connectionUrl.indexOf('?') != -1) {
connectionUrl += '&authMechanism=MONGODB-X509';
} else {
connectionUrl += '?authMechanism=MONGODB-X509';
}
}
if (connection.authDatabaseName) {
if (connectionUrl.indexOf('?') != -1) {
connectionUrl += '&authSource=' + connection.authDatabaseName;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册