summaryrefslogtreecommitdiffstats
path: root/freeradius3-viewpasswdfile-html.lsp
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2014-09-14 00:29:35 +0000
committerTed Trask <ttrask01@yahoo.com>2014-09-14 00:29:35 +0000
commitabaa1ce203d44749ca6073cb55c2016b6787deb0 (patch)
tree6632012da7a8e775c3e9646b167ed941644065e5 /freeradius3-viewpasswdfile-html.lsp
parent3449c5940995b0486cddc8ff8389a381649b961a (diff)
downloadacf-freeradius3-abaa1ce203d44749ca6073cb55c2016b6787deb0.tar.bz2
acf-freeradius3-abaa1ce203d44749ca6073cb55c2016b6787deb0.tar.xz
Add listpasswdfiles, viewpasswdfile, and editpasswdentry actions for managing passwd files
We obtain the config by running 'radiusd -XC' and parsing the result passwd files are parsed/displayed based upon the format defined in freeradius config Use posix.crypt to set encrypted password generating salt from /dev/urandom, defaulting to SHA-512
Diffstat (limited to 'freeradius3-viewpasswdfile-html.lsp')
-rw-r--r--freeradius3-viewpasswdfile-html.lsp58
1 files changed, 58 insertions, 0 deletions
diff --git a/freeradius3-viewpasswdfile-html.lsp b/freeradius3-viewpasswdfile-html.lsp
new file mode 100644
index 0000000..b4e8ce5
--- /dev/null
+++ b/freeradius3-viewpasswdfile-html.lsp
@@ -0,0 +1,58 @@
+<% local view, viewlibrary, page_info, session = ...
+htmlviewfunctions = require("htmlviewfunctions")
+html = require("acf.html")
+%>
+
+<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>
+
+<% htmlviewfunctions.displaycommandresults({"editpasswdentry"}, session) %>
+
+<% local header_level = htmlviewfunctions.displaysectionstart(view, page_info) %>
+<% htmlviewfunctions.displayitem(view.value.filename) %>
+<% if view.value.data then %>
+<table id="list" class="tablesorter"><thead>
+ <tr>
+ <th>Action</th>
+<% for i,f in ipairs(view.value.fields.value) do %>
+ <th><%= html.html_escape(f) %></th>
+<% end %>
+ </tr>
+</thead><tbody>
+<% local filename = cfe({ type="hidden", value=view.value.filename.value }) %>
+<% local entry = cfe({ type="hidden", value="" }) %>
+<% local redir = cfe({ type="hidden", value=page_info.orig_action }) %>
+<% -- This is a hack to redirect back to viewing the same file
+redir.value = redir.value.."?filename="..html.url_encode(view.value.filename.value)
+%>
+<% for i,r in ipairs( view.value.data.value ) do %>
+ <tr>
+ <td>
+ <% entry.value = i %>
+ <% if viewlibrary.check_permission("editpasswdentry") then %>
+ <% htmlviewfunctions.displayitem(cfe({type="link", value={filename=filename, entry=entry, redir=redir}, label="", option="Edit", action="editpasswdentry"}), page_info, -1) %>
+ <% end %>
+ </td>
+<% for j,f in ipairs(r) do %>
+ <td><%= html.html_escape(f) %></td>
+<% end %>
+ </tr>
+<% end %>
+</tbody></table>
+<% end %>
+<% htmlviewfunctions.displaysectionend(header_level) %>