diff options
Diffstat (limited to 'applications/luci-app-samba4/luasrc')
-rw-r--r-- | applications/luci-app-samba4/luasrc/controller/samba4.lua | 14 | ||||
-rw-r--r-- | applications/luci-app-samba4/luasrc/model/cbi/samba4.lua | 90 |
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 |