summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>1998-11-14 02:29:38 +0000
committerAndrew Tridgell <tridge@samba.org>1998-11-14 02:29:38 +0000
commit57d4977f24566675111d791949491908eb4a6c4e (patch)
tree20ebd9a56cba7d908efb5178588bafc915674b92
parentf61683195340baa58e2637811350dbc2c5e6af01 (diff)
downloadsamba-57d4977f24566675111d791949491908eb4a6c4e.tar.gz
samba-57d4977f24566675111d791949491908eb4a6c4e.tar.bz2
samba-57d4977f24566675111d791949491908eb4a6c4e.zip
- new prototypes
- much as I hate doing it I've removed the "commit changes" button for users that don't have write access to smb.conf (Jeremy insisted) (This used to be commit 8e8ab4df1fe77dfcae73a34f4de174afe09cd695)
-rw-r--r--source3/include/proto.h2
-rw-r--r--source3/web/swat.c19
2 files changed, 17 insertions, 4 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h
index c742d66406..d1aa8383c2 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -2669,7 +2669,7 @@ int smbw_stat(const char *fname, struct stat *st);
void cgi_load_variables(FILE *f1);
char *cgi_variable(char *name);
BOOL am_root(void);
-char *get_user_name(void);
+char *cgi_user_name(void);
void cgi_setup(char *rootdir, int auth_required);
char *cgi_baseurl(void);
char *cgi_pathinfo(void);
diff --git a/source3/web/swat.c b/source3/web/swat.c
index db21fbfbe1..8f47ced52d 100644
--- a/source3/web/swat.c
+++ b/source3/web/swat.c
@@ -30,6 +30,7 @@
static pstring servicesf = CONFIGFILE;
static BOOL demo_mode = False;
+static BOOL have_write_access = False;
/*
* Password Management Globals
@@ -469,7 +470,10 @@ static void globals_page(void)
printf("<FORM name=\"swatform\" method=post>\n");
- printf("<input type=submit name=\"Commit\" value=\"Commit Changes\">\n");
+ if (have_write_access) {
+ printf("<input type=submit name=\"Commit\" value=\"Commit Changes\">\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");
@@ -549,7 +553,10 @@ static void shares_page(void)
if (snum >= 0) {
- printf("<input type=submit name=\"Commit\" value=\"Commit Changes\">\n");
+ if (have_write_access) {
+ printf("<input type=submit name=\"Commit\" value=\"Commit Changes\">\n");
+ }
+
printf("<input type=submit name=\"Delete\" value=\"Delete Share\">\n");
if (advanced == 0) {
printf("<input type=submit name=\"Advanced\" value=\"Advanced View\">\n");
@@ -848,7 +855,9 @@ static void printers_page(void)
if (snum >= 0) {
- printf("<input type=submit name=\"Commit\" value=\"Commit Changes\">\n");
+ if (have_write_access) {
+ printf("<input type=submit name=\"Commit\" value=\"Commit Changes\">\n");
+ }
printf("<input type=submit name=\"Delete\" value=\"Delete Printer\">\n");
if (advanced == 0) {
printf("<input type=submit name=\"Advanced\" value=\"Advanced View\">\n");
@@ -917,6 +926,10 @@ static void printers_page(void)
page = cgi_pathinfo();
+ /* check if the authenticated user has write access - if not then
+ don't show write options */
+ have_write_access = (access(servicesf,W_OK) == 0);
+
/* Root gets full functionality */
if (strcmp(page, "globals")==0) {
globals_page();