118 lines
3.8 KiB
JavaScript
118 lines
3.8 KiB
JavaScript
'use strict';
|
|
'require view';
|
|
'require fs';
|
|
'require form';
|
|
'require tools.widgets as widgets';
|
|
|
|
return view.extend({
|
|
load: function() {
|
|
return Promise.all([
|
|
L.resolveDefault(fs.stat('/sbin/block'), null),
|
|
L.resolveDefault(fs.stat('/etc/config/fstab'), null),
|
|
L.resolveDefault(fs.exec('/usr/sbin/ksmbd.mountd', ['-V']), {}).then(function(res) { return L.toArray((res.stdout || '').match(/version : (\S+)/))[1] }),
|
|
L.resolveDefault(fs.exec('/sbin/modinfo', ['ksmbd']), {}).then(function(res) { return L.toArray((res.stdout || '').match(/version:\t(\S+)/))[1] }),
|
|
]);
|
|
},
|
|
render: function(stats) {
|
|
var m, s, o, v, v2;
|
|
v = '?';
|
|
v2 = '?';
|
|
|
|
m = new form.Map('ksmbd', _('Network Shares'));
|
|
|
|
if (stats[2])
|
|
v = stats[2].trim();
|
|
if (stats[3])
|
|
v2 = stats[3].trim();
|
|
if (v != v2)
|
|
v = v +'/'+ v2;
|
|
s = m.section(form.TypedSection, 'globals', 'Ksmbd/Kmod Version ' + v);
|
|
s.anonymous = true;
|
|
|
|
s.tab('general', _('General Settings'));
|
|
s.tab('template', _('Edit Template'), _('Edit the template that is used for generating the ksmbd configuration.'));
|
|
|
|
s.taboption('general', widgets.NetworkSelect, 'interface', _('Interface'),
|
|
_('Listen only on the given interface or, if unspecified, on lan'));
|
|
|
|
o = s.taboption('general', form.Value, 'workgroup', _('Workgroup'));
|
|
o.placeholder = 'WORKGROUP';
|
|
|
|
o = s.taboption('general', form.Value, 'description', _('Description'));
|
|
o.placeholder = 'Ksmbd on OpenWrt';
|
|
|
|
o = s.taboption('general', form.Flag, 'allow_legacy_protocols', _('Allow legacy (insecure) protocols/authentication.'),
|
|
_('Allow legacy smb(v1)/Lanman connections, needed for older devices without smb(v2.1/3) support.'));
|
|
|
|
o = s.taboption('template', form.TextValue, '_tmpl',
|
|
null,
|
|
_("This is the content of the file '/etc/ksmbd/ksmbd.conf.template' from which your ksmbd configuration will be generated. \
|
|
Values enclosed by pipe symbols ('|') should not be changed. They get their values from the 'General Settings' tab."));
|
|
o.rows = 20;
|
|
o.cfgvalue = function(section_id) {
|
|
return fs.trimmed('/etc/ksmbd/ksmbd.conf.template');
|
|
};
|
|
o.write = function(section_id, formvalue) {
|
|
return fs.write('/etc/ksmbd/ksmbd.conf.template', formvalue.trim().replace(/\r\n/g, '\n') + '\n');
|
|
};
|
|
|
|
|
|
s = m.section(form.TableSection, 'share', _('Shared Directories'),
|
|
_('Please add directories to share. Each directory refers to a folder on a mounted device.'));
|
|
s.anonymous = true;
|
|
s.addremove = true;
|
|
|
|
s.option(form.Value, 'name', _('Name'));
|
|
o = s.option(form.Value, 'path', _('Path'));
|
|
if (stats[0] && stats[1]) {
|
|
o.titleref = L.url('admin', 'system', 'mounts');
|
|
}
|
|
|
|
o = s.option(form.Flag, 'browseable', _('Browse-able'));
|
|
o.enabled = 'yes';
|
|
o.disabled = 'no';
|
|
o.default = 'yes';
|
|
|
|
o = s.option(form.Flag, 'read_only', _('Read-only'));
|
|
o.enabled = 'yes';
|
|
o.disabled = 'no';
|
|
o.default = 'no'; // ksmbd.conf default is 'yes'
|
|
o.rmempty = false;
|
|
|
|
s.option(form.Flag, 'force_root', _('Force Root'));
|
|
|
|
o = s.option(form.Value, 'users', _('Allowed users'));
|
|
o.rmempty = true;
|
|
|
|
o = s.option(form.Flag, 'guest_ok', _('Allow guests'));
|
|
o.enabled = 'yes';
|
|
o.disabled = 'no';
|
|
o.default = 'yes'; // ksmbd.conf default is 'no'
|
|
o.rmempty = false;
|
|
|
|
o = s.option(form.Flag, 'inherit_owner', _('Inherit owner'));
|
|
o.enabled = 'yes';
|
|
o.disabled = 'no';
|
|
o.default = 'no';
|
|
|
|
o = s.option(form.Flag, 'hide_dot_files', _('Hide dot files'));
|
|
o.enabled = 'yes';
|
|
o.disabled = 'no';
|
|
o.default = 'yes';
|
|
|
|
o = s.option(form.Value, 'create_mask', _('Create mask'));
|
|
o.maxlength = 4;
|
|
o.default = '0666'; // ksmbd.conf default is '0744'
|
|
o.placeholder = '0666';
|
|
o.rmempty = false;
|
|
|
|
o = s.option(form.Value, 'dir_mask', _('Directory mask'));
|
|
o.maxlength = 4;
|
|
o.default = '0777'; // ksmbd.conf default is '0755'
|
|
o.placeholder = '0777';
|
|
o.rmempty = false;
|
|
|
|
return m.render();
|
|
}
|
|
});
|