X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fsiteconfig.c;h=0034b6481fe6828e000db57e43b24fff78584c7e;hb=d159f2a1a8cf9efccb8f733d7e2452c5f7cfbf64;hp=0b596a2984b0302f4d27442e288865be84b7aeb4;hpb=83e8005f4ca86da0b643dc8fea735add3db9948b;p=citadel.git diff --git a/webcit/siteconfig.c b/webcit/siteconfig.c index 0b596a298..0034b6481 100644 --- a/webcit/siteconfig.c +++ b/webcit/siteconfig.c @@ -1,43 +1,178 @@ /* + * $Id$ + * * Administrative screen for site-wide configuration * */ + +#include #include #include #include +#include #include #include -#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include #include "webcit.h" -#include "child.h" + + + void display_siteconfig(void) { - char buf[256]; - int i; + char buf[SIZ]; + char *whichmenu; + int i, j; + + /* expire policy settings */ + int sitepolicy = 0; + int sitevalue = 0; + int mboxpolicy = 0; + int mboxvalue = 0; + + output_headers(1, 1, 2, 0, 0, 0, 0); + wprintf("
\n" + "
" + "Site configuration" + "
\n" + "
\n
\n" + ); + + wprintf("
" + "
"); + + whichmenu = bstr("whichmenu"); + + if (!strcmp(whichmenu, "")) { + wprintf("\n"); + + wprintf("\n" + ); + + wprintf("\n" + ); + + wprintf("\n" + ); + + wprintf("\n" + ); + + wprintf("\n" + ); + + wprintf("\n" + ); - printf("HTTP/1.0 200 OK\n"); - output_headers(1); + wprintf("
" + "" + "\" \"" + "" + "" + "General
" + "General site configuration items" + "
" + "" + "\" \"" + "" + "" + "Access
" + "Access controls and site policy settings" + "
" + "" + "\" \"" + "" + "" + "Network
" + "Network services" + "
" + "" + "\" \"" + "" + "" + "Tuning
" + "Advanced server fine-tuning controls" + "
" + "" + "\" \"" + "" + "" + "Directory
" + "Configure the LDAP connector for Citadel" + "
" + "" + "\" \"" + "" + "" + "Auto-purger
" + "Configure automatic expiry of old messages" + "
"); + wprintf("
\n"); + wDumpContent(1); + return; + } + + if (!strcasecmp(whichmenu, "general")) { + wprintf("

General site configuration items

\n"); + } + + if (!strcasecmp(whichmenu, "access")) { + wprintf("

Access controls and site policy settings

\n"); + } + + if (!strcasecmp(whichmenu, "network")) { + wprintf("

Network services

" + "Changes made on this screen will not take effect until you restart the Citadel server." + "
\n"); + } + + if (!strcasecmp(whichmenu, "tuning")) { + wprintf("

Advanced server fine-tuning controls

\n"); + } + + if (!strcasecmp(whichmenu, "ldap")) { + wprintf("

Citadel LDAP connector configuration

" + "Changes made on this screen will not take effect until you restart the Citadel server." + "
\n"); + } + + if (!strcasecmp(whichmenu, "purger")) { + wprintf("

Message auto-purger settings

" + "These settings may be overridden on a per-floor or per-room basis." + "
\n"); + } serv_printf("CONF get"); serv_gets(buf); if (buf[0] != '1') { - wprintf("
"); - wprintf("Error\n"); - wprintf("

\n"); - wprintf("%s
\n", &buf[4]); + wprintf("
"); + wprintf("Error\n"); + wprintf("

\n"); + wprintf("%s
\n", &buf[4]); + do_template("endbox"); wDumpContent(1); return; } - wprintf("
"); - wprintf("Site configuration"); - wprintf("
\n"); - wprintf("
\n"); wprintf("\n"); @@ -45,128 +180,508 @@ void display_siteconfig(void) while (serv_gets(buf), strcmp(buf, "000")) { switch (++i) { case 1: - wprintf("\n"); + if (!strcasecmp(whichmenu, "general")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } break; case 2: - wprintf("\n"); + if (!strcasecmp(whichmenu, "general")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } break; case 3: - wprintf("\n"); + if (!strcasecmp(whichmenu, "general")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } break; case 4: - wprintf("\n"); + if (!strcasecmp(whichmenu, "general")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } break; case 5: - wprintf("\n"); + if (!strcasecmp(whichmenu, "access")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } break; case 6: - wprintf("\n"); + if (!strcasecmp(whichmenu, "tuning")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } break; case 7: - wprintf("\n"); + if (!strcasecmp(whichmenu, "access")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } break; case 8: - wprintf("\n"); + if (!strcasecmp(whichmenu, "access")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } break; case 9: - wprintf("\n"); + if (!strcasecmp(whichmenu, "access")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } break; case 10: - wprintf("\n"); + if (!strcasecmp(whichmenu, "access")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } break; case 11: - wprintf("\n"); + if (!strcasecmp(whichmenu, "general")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } break; case 12: - wprintf("\n"); + if (!strcasecmp(whichmenu, "access")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } break; case 13: - wprintf("\n"); + if (!strcasecmp(whichmenu, "general")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } break; case 14: - wprintf("\n"); + if (!strcasecmp(whichmenu, "general")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } break; case 15: - wprintf("\n"); - break; - case 16: - wprintf("\n"); + if (!strcasecmp(whichmenu, "tuning")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } break; case 17: - wprintf("\n"); + if (!strcasecmp(whichmenu, "tuning")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } break; case 18: - wprintf("\n"); + if (!strcasecmp(whichmenu, "tuning")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } break; case 19: - wprintf("\n"); + if (!strcasecmp(whichmenu, "access")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } break; case 20: - wprintf("\n"); + if (!strcasecmp(whichmenu, "access")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } + break; + case 21: + if (!strcasecmp(whichmenu, "tuning")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } + break; + case 22: + if (!strcasecmp(whichmenu, "tuning")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } + break; + case 23: + if (!strcasecmp(whichmenu, "tuning")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } + break; + case 24: + if (!strcasecmp(whichmenu, "network")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } + break; + case 25: + if (!strcasecmp(whichmenu, "network")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } + break; + case 27: + if (!strcasecmp(whichmenu, "access")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } + break; + case 28: + if (!strcasecmp(whichmenu, "network")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } + break; + case 29: + if (!strcasecmp(whichmenu, "network")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } + break; + case 30: + if (!strcasecmp(whichmenu, "access")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } + break; + case 31: + /* placeholder -- there is no option 31 */ + break; + case 32: + if (!strcasecmp(whichmenu, "tuning")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } + break; + case 33: + if ( (serv_info.serv_supports_ldap) && (!strcasecmp(whichmenu, "ldap")) ) { + wprintf("\n"); + } + else { + wprintf("", buf); + } + break; + case 34: + if ( (serv_info.serv_supports_ldap) && (!strcasecmp(whichmenu, "ldap")) ) { + wprintf("\n"); + } + else { + wprintf("", atoi(buf)); + } + break; + case 35: + if ( (serv_info.serv_supports_ldap) && (!strcasecmp(whichmenu, "ldap")) ) { + wprintf("\n"); + } + else { + wprintf("", buf); + } + break; + case 36: + if ( (serv_info.serv_supports_ldap) && (!strcasecmp(whichmenu, "ldap")) ) { + wprintf("\n"); + } + else { + wprintf("", buf); + } + break; + case 37: + if ( (serv_info.serv_supports_ldap) && (!strcasecmp(whichmenu, "ldap")) ) { + wprintf("\n"); + } + else { + wprintf("", buf); + } + break; + case 38: + if (!strcasecmp(whichmenu, "network")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } + break; + case 39: + if (!strcasecmp(whichmenu, "network")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } + break; + case 40: + if (!strcasecmp(whichmenu, "network")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } + break; + case 41: + if (!strcasecmp(whichmenu, "network")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } + break; + case 42: + if (!strcasecmp(whichmenu, "network")) { + wprintf("\n"); + } + else { + wprintf("", buf); + } break; } } + serv_puts("GPEX site"); + serv_gets(buf); + if (buf[0] == '2') { + sitepolicy = extract_int(&buf[4], 0); + sitevalue = extract_int(&buf[4], 1); + } + + serv_puts("GPEX mailboxes"); + serv_gets(buf); + if (buf[0] == '2') { + mboxpolicy = extract_int(&buf[4], 0); + mboxvalue = extract_int(&buf[4], 1); + } + + if (!strcasecmp(whichmenu, "purger")) { + + wprintf("\n"); + + wprintf("\n"); + + wprintf("\n"); + + wprintf("\n"); + + wprintf("\n"); + + } + else { + wprintf("\n", sitepolicy); + wprintf("\n", sitevalue); + wprintf("\n", mboxpolicy); + wprintf("\n", mboxvalue); + } + wprintf("
Node name"); - wprintf("", buf); - wprintf("
Node name"); + wprintf("", buf); + wprintf("
Fully qualified domain name"); - wprintf("", buf); - wprintf("
Fully qualified domain name"); + wprintf("", buf); + wprintf("
Human-readable node name"); - wprintf("", buf); - wprintf("
Human-readable node name"); + wprintf("", buf); + wprintf("
Landline telephone number"); - wprintf("", buf); - wprintf("
Landline telephone number"); + wprintf("", buf); + wprintf("
Automatically grant room-aide status to users who create private rooms"); - wprintf("", ((atoi(buf) != 0) ? "CHECKED" : "")); - wprintf("
Automatically grant room-aide status to users who create private rooms"); + wprintf("", ((atoi(buf) != 0) ? "CHECKED" : "")); + wprintf("
Server connection idle timeout (in seconds)"); - wprintf("", buf); - wprintf("
Server connection idle timeout (in seconds)"); + wprintf("", buf); + wprintf("
Initial access level for new users"); - wprintf("", buf); - wprintf("
Initial access level for new users"); + wprintf(""); + wprintf("
Require registration for new users"); - wprintf("", ((atoi(buf) != 0) ? "CHECKED" : "")); - wprintf("
Require registration for new users"); + wprintf("", ((atoi(buf) != 0) ? "CHECKED" : "")); + wprintf("
Move problem user messages to twitroom"); - wprintf("", ((atoi(buf) != 0) ? "CHECKED" : "")); - wprintf("
Quarantine messages from problem users"); + wprintf("", ((atoi(buf) != 0) ? "CHECKED" : "")); + wprintf("
Name of twitroom"); - wprintf("", buf); - wprintf("
Name of quarantine room"); + wprintf("", buf); + wprintf("
Paginator prompt"); - wprintf("", buf); - wprintf("
Paginator prompt (for text mode clients)"); + wprintf("", buf); + wprintf("
Restrict access to Internet mail"); - wprintf("", ((atoi(buf) != 0) ? "CHECKED" : "")); - wprintf("
Restrict access to Internet mail"); + wprintf("", ((atoi(buf) != 0) ? "CHECKED" : "")); + wprintf("
Geographic location of this system"); - wprintf("", buf); - wprintf("
Geographic location of this system"); + wprintf("", buf); + wprintf("
Name of system administrator"); - wprintf("", buf); - wprintf("
Name of system administrator"); + wprintf("", buf); + wprintf("
Maximum concurrent sessions"); - wprintf("", buf); - wprintf("
Server-to-server networking password"); - wprintf("", buf); - wprintf("
Maximum concurrent sessions (0 = no limit)"); + wprintf("", buf); + wprintf("
Default user purge time (days)"); - wprintf("", buf); - wprintf("
Default user purge time (days)"); + wprintf("", buf); + wprintf("
Default room purge time (days)"); - wprintf("", buf); - wprintf("
Default room purge time (days)"); + wprintf("", buf); + wprintf("
Name of room to log pages"); - wprintf("", buf); - wprintf("
Name of room to log pages"); + wprintf("", buf); + wprintf("
Access level required to create rooms"); - wprintf("", buf); - wprintf("
Access level required to create rooms"); + wprintf(""); + wprintf("
Maximum message length"); + wprintf("", buf); + wprintf("
Minimum number of worker threads"); + wprintf("", buf); + wprintf("
Maximum number of worker threads"); + wprintf("", buf); + wprintf("
POP3 listener port (-1 to disable)"); + wprintf("", buf); + wprintf("
SMTP MTA port (-1 to disable)"); + wprintf("", buf); + wprintf("
Allow aides to zap (forget) rooms"); + wprintf("", ((atoi(buf) != 0) ? "CHECKED" : "")); + wprintf("
IMAP listener port (-1 to disable)"); + wprintf("", buf); + wprintf("
Network run frequency (in seconds)"); + wprintf("", buf); + wprintf("
Disable self-service user account creation"); + wprintf("", ((atoi(buf) != 0) ? "CHECKED" : "")); + wprintf("
Hour to run database auto-purge"); + wprintf(""); + wprintf("
Host name of LDAP server (blank to disable)"); + wprintf("", buf); + wprintf("
Port number of LDAP server (blank to disable)"); + wprintf("", atoi(buf)); + wprintf("
Base DN"); + wprintf("", buf); + wprintf("
Bind DN"); + wprintf("", buf); + wprintf("
Password for bind DN"); + wprintf("", buf); + wprintf("
Server IP address (0.0.0.0 for 'any')"); + wprintf("", buf); + wprintf("
SMTP MSA port (-1 to disable)"); + wprintf("", buf); + wprintf("
IMAP over SSL port (-1 to disable)"); + wprintf("", buf); + wprintf("
POP3 over SSL port (-1 to disable)"); + wprintf("", buf); + wprintf("
SMTP over SSL port (-1 to disable)"); + wprintf("", buf); + wprintf("

Default message expire policy for public rooms"); + wprintf("", + ((sitepolicy == 1) ? "CHECKED" : "") ); + wprintf("Never automatically expire messages
\n"); + wprintf("", + ((sitepolicy == 2) ? "CHECKED" : "") ); + wprintf("Expire by message count
\n"); + wprintf("", + ((sitepolicy == 3) ? "CHECKED" : "") ); + wprintf("Expire by message age
"); + wprintf("Number of messages or days: "); + wprintf("", sitevalue); + wprintf("

Default message expire policy for private mailboxes"); + wprintf("", + ((mboxpolicy == 0) ? "CHECKED" : "") ); + wprintf("Same policy as public rooms
\n"); + wprintf("", + ((mboxpolicy == 1) ? "CHECKED" : "") ); + wprintf("Never automatically expire messages
\n"); + wprintf("", + ((mboxpolicy == 2) ? "CHECKED" : "") ); + wprintf("Expire by message count
\n"); + wprintf("", + ((mboxpolicy == 3) ? "CHECKED" : "") ); + wprintf("Expire by message age
"); + wprintf("Number of messages or days: "); + wprintf("", mboxvalue); + wprintf("

"); wprintf(""); + wprintf(" "); wprintf("\n"); wprintf("
\n"); + wprintf("
\n"); wDumpContent(1); } void siteconfig(void) { - char buf[256]; + char buf[SIZ]; if (strcasecmp(bstr("sc"), "OK")) { - display_main_menu(); + display_siteconfig(); return; } serv_printf("CONF set"); serv_gets(buf); if (buf[0] != '4') { - display_error(&buf[4]); + strcpy(WC->ImportantMessage, &buf[4]); + display_siteconfig(); return; } serv_printf("%s", bstr("c_nodename")); @@ -184,11 +699,40 @@ void siteconfig(void) serv_printf("%s", bstr("c_bbs_city")); serv_printf("%s", bstr("c_sysadm")); serv_printf("%s", bstr("c_maxsessions")); - serv_printf("%s", bstr("c_net_password")); + serv_printf(""); /* networking password -- deprecated */ serv_printf("%s", bstr("c_userpurge")); serv_printf("%s", bstr("c_roompurge")); serv_printf("%s", bstr("c_logpages")); - serv_printf("%d", bstr("c_createax")); + serv_printf("%s", bstr("c_createax")); + serv_printf("%s", bstr("c_maxmsglen")); + serv_printf("%s", bstr("c_min_workers")); + serv_printf("%s", bstr("c_max_workers")); + serv_printf("%s", bstr("c_pop3_port")); + serv_printf("%s", bstr("c_smtp_port")); + serv_printf(""); /* moderation filter level -- not yet implemented */ + serv_printf("%s", ((!strcasecmp(bstr("c_aide_zap"), "yes") ? "1" : "0"))); + serv_printf("%s", bstr("c_imap_port")); + serv_printf("%s", bstr("c_net_freq")); + serv_printf("%s", ((!strcasecmp(bstr("c_disable_newu"), "yes") ? "1" : "0"))); + serv_printf("1"); /* placeholder -- deprecated */ + serv_printf("%s", bstr("c_purge_hour")); + serv_printf("%s", bstr("c_ldap_host")); + serv_printf("%s", bstr("c_ldap_port")); + serv_printf("%s", bstr("c_ldap_base_dn")); + serv_printf("%s", bstr("c_ldap_bind_dn")); + serv_printf("%s", bstr("c_ldap_bind_pw")); + serv_printf("%s", bstr("c_ip_addr")); + serv_printf("%s", bstr("c_msa_port")); + serv_printf("%s", bstr("c_imaps_port")); + serv_printf("%s", bstr("c_pop3s_port")); + serv_printf("%s", bstr("c_smtps_port")); serv_printf("000"); - display_success("System configuration has been updated."); + + serv_printf("SPEX site|%d|%d", atoi(bstr("sitepolicy")), atoi(bstr("sitevalue"))); + serv_gets(buf); + serv_printf("SPEX mailboxes|%d|%d", atoi(bstr("mboxpolicy")), atoi(bstr("mboxvalue"))); + serv_gets(buf); + + strcpy(WC->ImportantMessage, "System configuration has been updated."); + display_siteconfig(); }