diff options
author | Herb Lewis <herb@samba.org> | 1998-12-18 21:26:47 +0000 |
---|---|---|
committer | Herb Lewis <herb@samba.org> | 1998-12-18 21:26:47 +0000 |
commit | 0a55d813f1f56297cf9bc16d2fdf283343233fd2 (patch) | |
tree | db88e2a1dd243528534ac1be3a1aa040149ef8a5 | |
parent | 031168e027dcb1fed53588ca0c1352f63642bb59 (diff) | |
download | samba-0a55d813f1f56297cf9bc16d2fdf283343233fd2.tar.gz samba-0a55d813f1f56297cf9bc16d2fdf283343233fd2.tar.xz samba-0a55d813f1f56297cf9bc16d2fdf283343233fd2.zip |
swat.c 1. fixed bug where non-default parameters were not being
shown in basic view of shares and printers pages.
2. Rearranged shares and printers pages so delete button
is near dropdown (since it applies to value in dropdown)
Added Reset Values button when share is selected.
3. Added note at beginning of printers page and flagged
the auto loaded printers in the dropdown. Still need
reference in man page that explains options better.
4. Don't show create and delete options if don't have
write access in printers and shares page.
statuspage.c Don't show start/stop/restart buttons or kill button if
not root.
-rw-r--r-- | source/web/statuspage.c | 44 | ||||
-rw-r--r-- | source/web/swat.c | 46 |
2 files changed, 67 insertions, 23 deletions
diff --git a/source/web/statuspage.c b/source/web/statuspage.c index 94ca4525b1a..e8068f6b246 100644 --- a/source/web/statuspage.c +++ b/source/web/statuspage.c @@ -170,29 +170,39 @@ void status_page(void) printf("<tr><td>version:</td><td>%s</td></tr>",VERSION); fflush(stdout); - if (smbd_running()) { - printf("<tr><td>smbd:</td><td>running</td><td><input type=submit name=\"smbd_stop\" value=\"Stop smbd\"></td><td><input type=submit name=\"smbd_restart\" value=\"Restart smbd\"></td></tr>\n"); - } else { - printf("<tr><td>smbd:</td><td>not running</td><td><input type=submit name=\"smbd_start\" value=\"Start smbd\"></td><td><input type=submit name=\"smbd_restart\" value=\"Restart smbd\"></td></tr>\n"); + printf("<tr><td>smbd:</td><td>%srunning</td>\n",smbd_running()?"":"not "); + if (geteuid() == 0) { + if (smbd_running()) { + printf("<td><input type=submit name=\"smbd_stop\" value=\"Stop smbd\"></td>\n"); + } else { + printf("<td><input type=submit name=\"smbd_start\" value=\"Start smbd\"></td>\n"); + } + printf("<td><input type=submit name=\"smbd_restart\" value=\"Restart smbd\"></td>\n"); } + printf("</tr>\n"); fflush(stdout); - if (nmbd_running()) { - printf("<tr><td>nmbd:</td><td>running</td><td><input type=submit name=\"nmbd_stop\" value=\"Stop nmbd\"></td><td><input type=submit name=\"nmbd_restart\" value=\"Restart nmbd\"></td></tr>\n"); - } else { - printf("<tr><td>nmbd:</td><td>not running</td><td><input type=submit name=\"nmbd_start\" value=\"Start nmbd\"></td><td><input type=submit name=\"nmbd_restart\" value=\"Restart nmbd\"></td></tr>\n"); + printf("<tr><td>nmbd:</td><td>%srunning</td>\n",nmbd_running()?"":"not "); + if (geteuid() == 0) { + if (nmbd_running()) { + printf("<td><input type=submit name=\"nmbd_stop\" value=\"Stop nmbd\"></td>\n"); + } else { + printf("<td><input type=submit name=\"nmbd_start\" value=\"Start nmbd\"></td>\n"); + } + printf("<td><input type=submit name=\"nmbd_restart\" value=\"Restart nmbd\"></td>\n"); } + printf("</tr>\n"); printf("</table>\n"); fflush(stdout); - - if (geteuid() != 0) - printf("<b>NOTE: You are not logged in as root and won't be able to start/stop the server</b><p>\n"); - printf("<p><h3>Active Connections</h3>\n"); printf("<table border=1>\n"); - printf("<tr><th>PID</th><th>Client</th><th>IP address</th><th>Date</th><th>Kill</th></tr>\n"); + printf("<tr><th>PID</th><th>Client</th><th>IP address</th><th>Date</th>\n"); + if (geteuid() == 0) { + printf("<th>Kill</th>\n"); + } + printf("</tr>\n"); while (f && !feof(f)) { if (fread(&crec,sizeof(crec),1,f) != 1) @@ -200,11 +210,15 @@ void status_page(void) if (crec.magic == 0x280267 && crec.cnum == -1 && process_exists(crec.pid)) { - printf("<tr><td>%d</td><td>%s</td><td>%s</td><td>%s</td><td><input type=submit value=\"X\" name=\"kill_%d\"></td></tr>\n", + printf("<tr><td>%d</td><td>%s</td><td>%s</td><td>%s</td>\n", crec.pid, crec.machine,crec.addr, - tstring(crec.start), + tstring(crec.start)); + if (geteuid() == 0) { + printf("<td><input type=submit value=\"X\" name=\"kill_%d\"></td>\n", crec.pid); + } + printf("</tr>\n"); } } diff --git a/source/web/swat.c b/source/web/swat.c index f9949808ad5..3324b8d1ee0 100644 --- a/source/web/swat.c +++ b/source/web/swat.c @@ -262,6 +262,10 @@ static void show_parameters(int snum, int allparameters, int advanced, int print if (!(parm->flags & FLAG_BASIC)) { void *ptr = parm->ptr; + if (parm->class == P_LOCAL && snum >= 0) { + ptr = lp_local_ptr(snum, ptr); + } + switch (parm->type) { case P_CHAR: if (*(char *)ptr == (char)(parm->def.cvalue)) continue; @@ -544,7 +548,8 @@ static void shares_page(void) printf("<FORM name=\"swatform\" method=post>\n"); printf("<table>\n"); - printf("<tr><td><input type=submit name=selectshare value=\"Choose Share\"></td>\n"); + printf("<tr>\n"); + printf("<td><input type=submit name=selectshare value=\"Choose Share\"></td>\n"); printf("<td><select name=share>\n"); if (snum < 0) printf("<option value=\" \"> \n"); @@ -556,10 +561,18 @@ static void shares_page(void) s, s); } } - printf("</select></td></tr><p>"); - - printf("<tr><td><input type=submit name=createshare value=\"Create Share\"></td>\n"); - printf("<td><input type=text size=30 name=newshare></td></tr>\n"); + printf("</select></td>\n"); + if (have_write_access) { + printf("<td><input type=submit name=\"Delete\" value=\"Delete Share\"></td>\n"); + } + printf("</tr>\n"); + printf("</table>"); + printf("<table>"); + if (have_write_access) { + printf("<tr>\n"); + printf("<td><input type=submit name=createshare value=\"Create Share\"></td>\n"); + printf("<td><input type=text size=30 name=newshare></td></tr>\n"); + } printf("</table>"); @@ -568,7 +581,7 @@ static void shares_page(void) printf("<input type=submit name=\"Commit\" value=\"Commit Changes\">\n"); } - printf("<input type=submit name=\"Delete\" value=\"Delete Share\">\n"); + printf("<input type=reset name=\"Reset Values\" value=\"Reset Values\">\n"); if (advanced == 0) { printf("<input type=submit name=\"Advanced\" value=\"Advanced View\">\n"); } else { @@ -824,6 +837,12 @@ static void printers_page(void) printf("<H2>Printer Parameters</H2>\n"); + printf("<H3>Important Note:</H3>\n"); + printf("Printer names marked with [*] in the Choose Printer drop-down box "); + printf("are autoloaded printers from "); + printf("<A HREF=\"/swat/help/smb.conf.5.html#printcapname\" target=\"docs\">Printcap Name</A>.\n"); + printf("Attempting to delete these printers from SWAT will have no effect.\n"); + if (cgi_variable("Advanced") && !cgi_variable("Basic")) advanced = 1; @@ -862,12 +881,23 @@ static void printers_page(void) for (i=0;i<lp_numservices();i++) { s = lp_servicename(i); if (s && (*s) && strcmp(s,"IPC$") && lp_print_ok(i)) { + if (i >= iNumNonAutoPrintServices) + printf("<option %s value=\"%s\">[*]%s\n", + (share && strcmp(share,s)==0)?"SELECTED":"", + s, s); + else printf("<option %s value=\"%s\">%s\n", (share && strcmp(share,s)==0)?"SELECTED":"", s, s); } } - printf("</select></td></tr><p>"); + printf("</select></td>"); + if (have_write_access) { + printf("<td><input type=submit name=\"Delete\" value=\"Delete Printer\"></td>\n"); + } + printf("</tr>"); + printf("</table>\n"); + printf("<table>\n"); printf("<tr><td><input type=submit name=createshare value=\"Create Printer\"></td>\n"); printf("<td><input type=text size=30 name=newshare></td></tr>\n"); @@ -878,7 +908,7 @@ static void printers_page(void) if (have_write_access) { printf("<input type=submit name=\"Commit\" value=\"Commit Changes\">\n"); } - printf("<input type=submit name=\"Delete\" value=\"Delete Printer\">\n"); + printf("<input type=reset name=\"Reset Values\" value=\"Reset Values\">\n"); if (advanced == 0) { printf("<input type=submit name=\"Advanced\" value=\"Advanced View\">\n"); } else { |