diff options
author | Ted Trask <ttrask01@yahoo.com> | 2014-09-15 18:08:14 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2014-09-15 18:08:14 +0000 |
commit | 2e34d7b6a7eeea84694a987606758bce3d3994ed (patch) | |
tree | d0ca8ffbfcb2724a031a5e3632fdc6a887ac6914 | |
parent | bb693ddd74d12f55487b16eab7da40fc2ff13988 (diff) | |
download | acf-freeradius3-2e34d7b6a7eeea84694a987606758bce3d3994ed.tar.bz2 acf-freeradius3-2e34d7b6a7eeea84694a987606758bce3d3994ed.tar.xz |
Implemented listmacauthfiles action
Points to to-be-implemented editmacauthfile action
-rw-r--r-- | freeradius3-controller.lua | 4 | ||||
-rw-r--r-- | freeradius3-listmacauthfiles-html.lsp | 63 | ||||
-rw-r--r-- | freeradius3-model.lua | 45 | ||||
-rw-r--r-- | freeradius3.menu | 1 | ||||
-rw-r--r-- | freeradius3.roles | 4 |
5 files changed, 115 insertions, 2 deletions
diff --git a/freeradius3-controller.lua b/freeradius3-controller.lua index f8fc742..a107b21 100644 --- a/freeradius3-controller.lua +++ b/freeradius3-controller.lua @@ -50,4 +50,8 @@ function mymodule.editpasswd(self) return self.handle_form(self, self.model.get_passwd, self.model.update_passwd, self.clientdata, "Save", "Edit Password", "Password Saved") end +function mymodule.listmacauthfiles(self) + return self.model.list_macauth_files() +end + return mymodule diff --git a/freeradius3-listmacauthfiles-html.lsp b/freeradius3-listmacauthfiles-html.lsp new file mode 100644 index 0000000..a70a207 --- /dev/null +++ b/freeradius3-listmacauthfiles-html.lsp @@ -0,0 +1,63 @@ +<% local view, viewlibrary, page_info, session = ... +htmlviewfunctions = require("htmlviewfunctions") +html = require("acf.html") +%> + +<% +function convertsize(size) + if string.find(size, "k$") then + return tonumber(string.match(size, "[%d.]*")) * 1024.0 + elseif string.find(size, "M$") then + return tonumber(string.match(size, "[%d.]*")) * 1024.0 * 1024.0 + elseif string.find(size, "G$") then + return tonumber(string.match(size, "[%d.]*")) + 1024.0 * 1024.0 * 1024.0 + else + return tonumber(string.match(size, "[%d.]*")) + end +end +%> + +<script type="text/javascript"> + if (typeof jQuery == 'undefined') { + document.write('<script type="text/javascript" src="<%= html.html_escape(page_info.wwwprefix) %>/js/jquery-latest.js"><\/script>'); + } +</script> + +<script type="text/javascript"> + if (typeof $.tablesorter == 'undefined') { + document.write('<script type="text/javascript" src="<%= html.html_escape(page_info.wwwprefix) %>/js/jquery.tablesorter.js"><\/script>'); + } +</script> + +<script type="text/javascript"> + $(document).ready(function() { + $("#list").tablesorter({headers: {0:{sorter: false}}, widgets: ['zebra']}); + }); +</script> + +<% local header_level = htmlviewfunctions.displaysectionstart(cfe({label="MAC Authentication Configuration"}), page_info) %> +<table id="list" class="tablesorter"><thead> + <tr> + <th>Action</th> + <th>File</th> + <th>Size</th> + <th>Last Modified</th> + </tr> +</thead><tbody> +<% local filename = cfe({ type="hidden", value="" }) %> +<% local redir = cfe({ type="hidden", value=page_info.orig_action }) %> +<% for k,v in ipairs( view.value ) do %> + <tr> + <td> + <% filename.value = v.filename %> + <% if viewlibrary.check_permission("editmacauthfile") then %> + <% htmlviewfunctions.displayitem(cfe({type="link", value={filename=filename, redir=redir}, label="", option="Edit", action="editmacauthfile"}), page_info, -1) %> + <% end %> + </td> + <td><%= html.html_escape(v.filename) %></td> + <td><span class="hide"><%= convertsize(v.size) %>b</span><%= html.html_escape(v.size) %></td> + <td><%= html.html_escape(v.mtime) %></td> + </tr> +<% end %> +</tbody></table> +<% htmlviewfunctions.displaysectionend(header_level) %> diff --git a/freeradius3-model.lua b/freeradius3-model.lua index d3c9ca8..1606971 100644 --- a/freeradius3-model.lua +++ b/freeradius3-model.lua @@ -296,6 +296,36 @@ local update_passwd_entry_private = function(self, entry, create) return entry end +local get_macauth_files = function() + local files + local result,errtxt = get_config() + if result then + -- Find the files by searching for modules / files / usersfile where key="%{Calling-Station-Id}" + files = {} + for i,first in ipairs(configtable) do + if string.find(first.name, "^modules$") then + for j,second in ipairs(first.value) do + if string.find(second.name, "^files ") then + local key,file + for k,third in ipairs(second.value) do + if string.find(third.name, "^usersfile$") then + file = third.value + elseif string.find(third.name, "^key$") and string.find(third.value, format.escapemagiccharacters("%{Calling-Station-Id}")) then + key = true + end + if key and file then + files[#files+1] = file + break + end + end + end + end + end + end + end + return files, errtxt +end + -- ################################################################################ -- PUBLIC FUNCTIONS @@ -557,4 +587,19 @@ function mymodule.update_passwd(self, passwd) return passwd end +function mymodule.list_macauth_files() + local retval = {} + local files,errtxt = get_macauth_files() + if files then + for i,file in ipairs(files) do + local details = fs.stat(file) + details.filename = file + table.insert(retval, details) + end + table.sort(retval, function(a,b) return a.filename < b.filename end) + end + + return cfe({ type="structure", value=retval, label="List of Freeradius MAC authentication files", errtxt=errtxt }) +end + return mymodule diff --git a/freeradius3.menu b/freeradius3.menu index 463ad8f..7095aa1 100644 --- a/freeradius3.menu +++ b/freeradius3.menu @@ -2,5 +2,6 @@ # Cat Group Tab Action Applications 15Freeradius Status status Applications 15Freeradius Passwd listpasswdfiles +Applications 15Freeradius MAC_Auth listmacauthfiles Applications 15Freeradius Expert listfiles Applications 15Freeradius Logfile logfile diff --git a/freeradius3.roles b/freeradius3.roles index d3fcc9b..bd204ac 100644 --- a/freeradius3.roles +++ b/freeradius3.roles @@ -1,3 +1,3 @@ USER=freeradius3:status,freeradius3:startstop,freeradius3:logfile -EXPERT=freeradius3:listfiles,freeradius3:editfile,freeradius3:createfile,freeradius3:deletefile,freeradius3:listpasswdfiles,freeradius3:viewpasswdfile,freeradius3:editpasswdentry,freeradius3:createpasswdentry,freeradius3:deletepasswdentry,freeradius3:editpasswd -ADMIN=freeradius3:status,freeradius3:startstop,freeradius3:logfile,freeradius3:listfiles,freeradius3:editfile,freeradius3:createfile,freeradius3:deletefile,freeradius3:listpasswdfiles,freeradius3:viewpasswdfile,freeradius3:editpasswdentry,freeradius3:createpasswdentry,freeradius3:deletepasswdentry,freeradius3:editpasswd +EXPERT=freeradius3:listfiles,freeradius3:editfile,freeradius3:createfile,freeradius3:deletefile,freeradius3:listpasswdfiles,freeradius3:viewpasswdfile,freeradius3:editpasswdentry,freeradius3:createpasswdentry,freeradius3:deletepasswdentry,freeradius3:editpasswd,freeradius3:listmacauthfiles +ADMIN=freeradius3:status,freeradius3:startstop,freeradius3:logfile,freeradius3:listfiles,freeradius3:editfile,freeradius3:createfile,freeradius3:deletefile,freeradius3:listpasswdfiles,freeradius3:viewpasswdfile,freeradius3:editpasswdentry,freeradius3:createpasswdentry,freeradius3:deletepasswdentry,freeradius3:editpasswd,freeradius3:listmacauthfiles |