package WebGUI::Operation::Settings; #------------------------------------------------------------------- # WebGUI is Copyright 2001-2002 Plain Black Software. #------------------------------------------------------------------- # Please read the legal notices (docs/legal.txt) and the license # (docs/license.txt) that came with this distribution before using # this software. #------------------------------------------------------------------- # http://www.plainblack.com info@plainblack.com #------------------------------------------------------------------- use Exporter; use strict; use WebGUI::HTMLForm; use WebGUI::Icon; use WebGUI::International; use WebGUI::Privilege; use WebGUI::Session; use WebGUI::SQL; use WebGUI::URL; our @ISA = qw(Exporter); our @EXPORT = qw(&www_editAuthenticationSettings &www_editAuthenticationSettingsSave &www_editCompanyInformation &www_editCompanyInformationSave &www_editFileSettings &www_editFileSettingsSave &www_editMailSettings &www_editMailSettingsSave &www_editMiscSettings &www_editContentSettings &www_editContentSettingsSave &www_editMiscSettingsSave &www_manageSettings); #------------------------------------------------------------------- sub _saveSetting { WebGUI::SQL->write("update settings set value=".quote($session{form}{$_[0]})." where name='$_[0]'"); } #------------------------------------------------------------------- sub www_editAuthenticationSettings { my ($output, %authMethod, $f); %authMethod = ('WebGUI'=>'WebGUI', 'LDAP'=>'LDAP'); if (WebGUI::Privilege::isInGroup(3)) { $output .= helpIcon(2); $output .= '

'.WebGUI::International::get(117).'

'; $f = WebGUI::HTMLForm->new; $f->hidden("op","editAuthenticationSettingsSave"); $f->yesNo("anonymousRegistration",WebGUI::International::get(118),[$session{setting}{anonymousRegistration}]); $f->select("authMethod",\%authMethod,WebGUI::International::get(119),[$session{setting}{authMethod}]); $f->yesNo("usernameBinding",WebGUI::International::get(306),$session{setting}{usernameBinding}); $f->url("ldapURL",WebGUI::International::get(120),$session{setting}{ldapURL}); $f->text("ldapId",WebGUI::International::get(121),$session{setting}{ldapId}); $f->text("ldapIdName",WebGUI::International::get(122),$session{setting}{ldapIdName}); $f->text("ldapPasswordName",WebGUI::International::get(123),$session{setting}{ldapPasswordName}); $f->submit; $output .= $f->print; } else { $output = WebGUI::Privilege::adminOnly(); } return $output; } #------------------------------------------------------------------- sub www_editAuthenticationSettingsSave { if (WebGUI::Privilege::isInGroup(3)) { _saveSetting("authMethod"); _saveSetting("ldapURL"); _saveSetting("ldapId"); _saveSetting("ldapIdName"); _saveSetting("ldapPasswordName"); _saveSetting("anonymousRegistration"); _saveSetting("usernameBinding"); return www_manageSettings(); } else { return WebGUI::Privilege::adminOnly(); } } #------------------------------------------------------------------- sub www_editCompanyInformation { my ($output, $f); if (WebGUI::Privilege::isInGroup(3)) { $output .= helpIcon(6); $output .= '

'.WebGUI::International::get(124).'

'; $f = WebGUI::HTMLForm->new; $f->hidden("op","editCompanyInformationSave"); $f->text("companyName",WebGUI::International::get(125),$session{setting}{companyName}); $f->email("companyEmail",WebGUI::International::get(126),$session{setting}{companyEmail}); $f->url("companyURL",WebGUI::International::get(127),$session{setting}{companyURL}); $f->submit; $output .= $f->print; } else { $output = WebGUI::Privilege::adminOnly(); } return $output; } #------------------------------------------------------------------- sub www_editCompanyInformationSave { if (WebGUI::Privilege::isInGroup(3)) { _saveSetting("companyName"); _saveSetting("companyEmail"); _saveSetting("companyURL"); return www_manageSettings(); } else { return WebGUI::Privilege::adminOnly(); } } #------------------------------------------------------------------- sub www_editContentSettings { my ($output, %htmlFilter, %editor, $f, $pages); $pages = WebGUI::SQL->buildHashRef("select pageId,menuTitle from page order by menuTitle"); %htmlFilter = ('none'=>WebGUI::International::get(420), 'most'=>WebGUI::International::get(421), 'javascript'=>WebGUI::International::get(526), 'all'=>WebGUI::International::get(419)); %editor = ('built-in'=>WebGUI::International::get(495), 'edit-on-pro'=>WebGUI::International::get(494)); if (WebGUI::Privilege::isInGroup(3)) { $output .= helpIcon(29); $output .= '

'.WebGUI::International::get(525).'

'; $f = WebGUI::HTMLForm->new; $f->hidden("op","editContentSettingsSave"); $f->select("defaultPage",$pages,WebGUI::International::get(527),[$session{setting}{defaultPage}]); $f->select("notFoundPage",$pages,WebGUI::International::get(141),[$session{setting}{notFoundPage}]); $f->text("docTypeDec",WebGUI::International::get(398),$session{setting}{docTypeDec}); $f->yesNo("addEditStampToPosts",WebGUI::International::get(524),$session{setting}{addEditStampToPosts}); $f->select("filterContributedHTML",\%htmlFilter,WebGUI::International::get(418),[$session{setting}{filterContributedHTML}]); $f->integer("textAreaRows",WebGUI::International::get(463),$session{setting}{textAreaRows}); $f->integer("textAreaCols",WebGUI::International::get(464),$session{setting}{textAreaCols}); $f->integer("textBoxSize",WebGUI::International::get(465),$session{setting}{textBoxSize}); $f->select("richEditor",\%editor,WebGUI::International::get(496),[$session{setting}{richEditor}]); $f->submit; $output .= $f->print; } else { $output = WebGUI::Privilege::adminOnly(); } return $output; } #------------------------------------------------------------------- sub www_editContentSettingsSave { if (WebGUI::Privilege::isInGroup(3)) { _saveSetting("addEditStampToPosts"); _saveSetting("defaultPage"); _saveSetting("notFoundPage"); _saveSetting("docTypeDec"); _saveSetting("filterContributedHTML"); _saveSetting("textAreaRows"); _saveSetting("textAreaCols"); _saveSetting("textBoxSize"); _saveSetting("richEditor"); return www_manageSettings(); } else { return WebGUI::Privilege::adminOnly(); } } #------------------------------------------------------------------- sub www_editFileSettings { my ($output, $f); if (WebGUI::Privilege::isInGroup(3)) { $output .= helpIcon(11); $output .= '

'.WebGUI::International::get(128).'

'; $f = WebGUI::HTMLForm->new; $f->hidden("op","editFileSettingsSave"); $f->text("lib",WebGUI::International::get(129),$session{setting}{lib}); $f->integer("maxAttachmentSize",WebGUI::International::get(130),$session{setting}{maxAttachmentSize}); $f->integer("thumbnailSize",WebGUI::International::get(406),$session{setting}{thumbnailSize}); $f->text("attachmentDirectoryWeb",WebGUI::International::get(131),$session{setting}{attachmentDirectoryWeb}); $f->text("attachmentDirectoryLocal",WebGUI::International::get(132),$session{setting}{attachmentDirectoryLocal}); $f->submit; $output .= $f->print; } else { $output = WebGUI::Privilege::adminOnly(); } return $output; } #------------------------------------------------------------------- sub www_editFileSettingsSave { if (WebGUI::Privilege::isInGroup(3)) { _saveSetting("lib"); _saveSetting("maxAttachmentSize"); _saveSetting("thumbnailSize"); _saveSetting("attachementDirectoryWeb"); _saveSetting("attachmentDirectoryLocal"); return www_manageSettings(); } else { return WebGUI::Privilege::adminOnly(); } } #------------------------------------------------------------------- sub www_editMailSettings { my ($output, $f); if (WebGUI::Privilege::isInGroup(3)) { $output .= helpIcon(13); $output .= '

'.WebGUI::International::get(133).'

'; $f = WebGUI::HTMLForm->new; $f->hidden("op","editMailSettingsSave"); $f->textarea("recoverPasswordEmail",WebGUI::International::get(134),$session{setting}{recoverPasswordEmail}); $f->text("smtpServer",WebGUI::International::get(135),$session{setting}{smtpServer}); $f->submit; $output .= $f->print; } else { $output = WebGUI::Privilege::adminOnly(); } return $output; } #------------------------------------------------------------------- sub www_editMailSettingsSave { if (WebGUI::Privilege::isInGroup(3)) { _saveSetting("recoverPasswordEmail"); _saveSetting("smtpServer"); return www_manageSettings(); } else { return WebGUI::Privilege::adminOnly(); } } #------------------------------------------------------------------- sub www_editMiscSettings { my ($output, %criticalError, $f); %criticalError = ('debug'=>WebGUI::International::get(414), 'friendly'=>WebGUI::International::get(415)); if (WebGUI::Privilege::isInGroup(3)) { $output .= helpIcon(24); $output .= '

'.WebGUI::International::get(140).'

'; $f = WebGUI::HTMLForm->new; $f->hidden("op","editMiscSettingsSave"); $f->integer("sessionTimeout",WebGUI::International::get(142),$session{setting}{sessionTimeout}); $f->yesNo("preventProxyCache",WebGUI::International::get(400),$session{setting}{preventProxyCache}); $f->select("onCriticalError",\%criticalError,WebGUI::International::get(413),[$session{setting}{onCriticalError}]); $f->submit; $output .= $f->print; } else { $output = WebGUI::Privilege::adminOnly(); } return $output; } #------------------------------------------------------------------- sub www_editMiscSettingsSave { if (WebGUI::Privilege::isInGroup(3)) { _saveSetting("sessionTimeout"); _saveSetting("preventProxyCache"); _saveSetting("onCriticalError"); return www_manageSettings(); } else { return WebGUI::Privilege::adminOnly(); } } #------------------------------------------------------------------- sub www_manageSettings { my ($output); if (WebGUI::Privilege::isInGroup(3)) { $output .= helpIcon(12); $output .= '

'.WebGUI::International::get(143).'

'; $output .= ''; } else { $output = WebGUI::Privilege::adminOnly(); } return $output; } 1;