summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHerb Lewis <herb@samba.org>1998-12-18 21:26:47 +0000
committerHerb Lewis <herb@samba.org>1998-12-18 21:26:47 +0000
commit0a55d813f1f56297cf9bc16d2fdf283343233fd2 (patch)
treedb88e2a1dd243528534ac1be3a1aa040149ef8a5
parent031168e027dcb1fed53588ca0c1352f63642bb59 (diff)
downloadsamba-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.c44
-rw-r--r--source/web/swat.c46
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 {