summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-app-samba4/luasrc
diff options
context:
space:
mode:
authorAndy Walsh <andy.walsh44+github@gmail.com>2018-07-22 17:04:40 +0200
committerAndy Walsh <andy.walsh44+github@gmail.com>2018-07-24 13:18:25 +0200
commit5c5dc024415a4086a4563131dfcec1643ba580cd (patch)
tree12f1786d921b5657a99e719372798501262b7205 /applications/luci-app-samba4/luasrc
parenta8a5b2feb23f0b3662f03d9fa71f211ab30fe6d9 (diff)
luci-app-samba4: add new application
* updated version for the samba4 package Signed-off-by: Andy Walsh <andy.walsh44+github@gmail.com>
Diffstat (limited to 'applications/luci-app-samba4/luasrc')
-rw-r--r--applications/luci-app-samba4/luasrc/controller/samba4.lua14
-rw-r--r--applications/luci-app-samba4/luasrc/model/cbi/samba4.lua90
2 files changed, 104 insertions, 0 deletions
diff --git a/applications/luci-app-samba4/luasrc/controller/samba4.lua b/applications/luci-app-samba4/luasrc/controller/samba4.lua
new file mode 100644
index 0000000000..8ad0e52e36
--- /dev/null
+++ b/applications/luci-app-samba4/luasrc/controller/samba4.lua
@@ -0,0 +1,14 @@
+-- Licensed to the public under the Apache License 2.0.
+
+module("luci.controller.samba4", package.seeall)
+
+function index()
+ if not nixio.fs.access("/etc/config/samba4") then
+ return
+ end
+
+ local page
+
+ page = entry({"admin", "services", "samba4"}, cbi("samba4"), _("Network Shares"))
+ page.dependent = true
+end
diff --git a/applications/luci-app-samba4/luasrc/model/cbi/samba4.lua b/applications/luci-app-samba4/luasrc/model/cbi/samba4.lua
new file mode 100644
index 0000000000..e5c0a1bed0
--- /dev/null
+++ b/applications/luci-app-samba4/luasrc/model/cbi/samba4.lua
@@ -0,0 +1,90 @@
+-- Licensed to the public under the Apache License 2.0.
+
+m = Map("samba4", translate("Network Shares"))
+
+s = m:section(TypedSection, "samba", "Samba")
+s.anonymous = true
+
+s:tab("general", translate("General Settings"))
+s:tab("template", translate("Edit Template"))
+
+s:taboption("general", Value, "name", translate("Hostname"))
+s:taboption("general", Value, "description", translate("Description"))
+s:taboption("general", Value, "workgroup", translate("Workgroup"))
+h = s:taboption("general", Flag, "homes", translate("Share home-directories"),
+ translate("Allow system users to reach their home directories via " ..
+ "network shares"))
+h.rmempty = false
+s:taboption("general", Flag, "disable_netbios", translate("Disable Netbios"))
+s:taboption("general", Flag, "disable_ad_dc", translate("Disable Active Directory Domain Controller"))
+s:taboption("general", Flag, "disable_winbind", translate("Disable Winbind"))
+
+tmpl = s:taboption("template", Value, "_tmpl",
+ translate("Edit the template that is used for generating the samba configuration."),
+ translate("This is the content of the file '/etc/samba/smb.conf.template' from which your samba configuration will be generated. " ..
+ "Values enclosed by pipe symbols ('|') should not be changed. They get their values from the 'General Settings' tab."))
+
+tmpl.template = "cbi/tvalue"
+tmpl.rows = 20
+
+function tmpl.cfgvalue(self, section)
+ return nixio.fs.readfile("/etc/samba/smb.conf.template")
+end
+
+function tmpl.write(self, section, value)
+ value = value:gsub("\r\n?", "\n")
+ nixio.fs.writefile("/etc/samba/smb.conf.template", value)
+end
+
+
+s = m:section(TypedSection, "sambashare", translate("Shared Directories")
+ , translate("Please add directories to share. Each directory refers to a folder on a mounted device."))
+s.anonymous = true
+s.addremove = true
+s.template = "cbi/tblsection"
+
+s:option(Value, "name", translate("Name"))
+pth = s:option(Value, "path", translate("Path"))
+if nixio.fs.access("/etc/config/fstab") then
+ pth.titleref = luci.dispatcher.build_url("admin", "system", "fstab")
+end
+
+s:option(Value, "users", translate("Allowed users")).rmempty = true
+
+ro = s:option(Flag, "read_only", translate("Read-only"))
+ro.rmempty = false
+ro.enabled = "yes"
+ro.disabled = "no"
+
+br = s:option(Flag, "browseable", translate("Browseable"))
+br.rmempty = false
+br.default = "yes"
+br.enabled = "yes"
+br.disabled = "no"
+
+go = s:option(Flag, "guest_ok", translate("Allow guests"))
+go.rmempty = false
+go.enabled = "yes"
+go.disabled = "no"
+
+gon = s:option(Flag, "guest_only", translate("Guests only"))
+gon.rmempty = false
+gon.enabled = "yes"
+gon.disabled = "no"
+
+io = s:option(Flag, "inherit_owner", translate("Inherit owner"))
+io.rmempty = false
+io.enabled = "yes"
+io.disabled = "no"
+
+cm = s:option(Value, "create_mask", translate("Create mask"))
+cm.rmempty = true
+cm.size = 4
+
+dm = s:option(Value, "dir_mask", translate("Directory mask"))
+dm.rmempty = true
+dm.size = 4
+
+s:option(Value, "vfs_objects", translate("Vfs objects")).rmempty = true
+
+return m