diff --git a/Dockerfile b/Dockerfile index 1a5a2d1d5..33fb544f1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,7 @@ ENV DEBIAN_FRONTEND noninteractive RUN apt update && apt -y install perl cpanminus libaspell-dev make libdbd-mysql-perl libdigest-perl-md5-perl libxml-simple-perl \ libmodule-install-perl gcc libperl-dev default-libmysqlclient-dev libpng-dev build-essential libgd-dev mariadb-client imagemagick \ libpng-dev libjpeg-dev libtiff-dev libapache2-mod-perl2 libapache2-mod-perl2-dev libapache2-request-perl libimage-magick-perl vim \ - apache2 apache2-utils + apache2 apache2-utils mailutils RUN cpanm --notest --force \ @@ -79,6 +79,7 @@ RUN cpanm --notest --force \ List::MoreUtils \ Locales \ Log::Log4perl \ + Mail::DeliveryStatus::BounceParser \ MIME::Tools \ Module::Find \ Monkey::Patch \ @@ -140,6 +141,7 @@ RUN cpanm --notest --force \ common::sense \ namespace::autoclean +RUN apt -y remove libjson-xs-perl #RUN cpanm --notest --force \ # DBD::mysql@4.051 diff --git a/distribution/webgui/entrypoint b/distribution/webgui/entrypoint index 73307ffee..64e5c7ff7 100644 --- a/distribution/webgui/entrypoint +++ b/distribution/webgui/entrypoint @@ -29,8 +29,16 @@ for configfile in `perl -Ilib sbin/wgd for-each`;do ## perl -Ilib sbin/wgd db --config-file=www.example.com --webgui-root=/data/WebGUI + #install newsletter module + perl -I /data/WebGUI/lib -I /data/WebGUI/custom/webgui_newsletter/lib /data/WebGUI/custom/webgui_newsletter/sbin/install_icons.pl --customRoot=/data/WebGUI/custom + + cd /data/WebGUI/lib + perl -I /data/WebGUI/lib -I /data/WebGUI/custom/webgui_newsletter/lib /data/WebGUI/custom/webgui_newsletter/sbin/install_newsletter.pl --configFile=www.example.com.conf fi + + + done perl -I/data/WebGUI/lib sbin/spectre.pl --daemon diff --git a/distribution/webgui/www.example.com.conf b/distribution/webgui/www.example.com.conf index 6e10ed141..775a8459b 100644 --- a/distribution/webgui/www.example.com.conf +++ b/distribution/webgui/www.example.com.conf @@ -1,6 +1,6 @@ -ServerName www.example.com -ServerAlias webgui localhost example.com unitedknowledge.vps2.unitedknowledge.net www.unitedknowledge.eu unitedknowledge.eu www.united-knowledge.eu united-knowledge.eu www.unitedknowledge.net unitedknowledge.net +ServerName localhost +ServerAlias webgui www.example.com example.com unitedknowledge.vps2.unitedknowledge.net www.unitedknowledge.eu unitedknowledge.eu www.united-knowledge.eu united-knowledge.eu www.unitedknowledge.net unitedknowledge.net DocumentRoot /data/WebGUI/www SetEnvIf SSLPROXY "1" \ SSLPROXY diff --git a/etc/log.conf b/etc/log.conf index ab64ca799..dceeffeda 100644 --- a/etc/log.conf +++ b/etc/log.conf @@ -4,7 +4,7 @@ # system is capable of. To unleash the full power read the config file manual # http://log4perl.sourceforge.net/releases/Log-Log4perl/docs/html/Log/Log4perl/Config.html -log4perl.logger = ERROR, mainlog +log4perl.logger = WARN, mainlog log4perl.appender.mainlog = Log::Log4perl::Appender::File log4perl.appender.mainlog.filename = /var/log/webgui.log log4perl.appender.mainlog.layout = PatternLayout diff --git a/etc/www.example.com.conf b/etc/www.example.com.conf index bd83e4276..000b071d7 100644 --- a/etc/www.example.com.conf +++ b/etc/www.example.com.conf @@ -1,1092 +1,593 @@ # config-file-type: JSON 1 { - -# Add a comma separated list of the names this site can use. -# The first site in the list will be used as the default -# sitename for generating offline URLs and other functions. - -"sitename" : [ - "www.example.com", - "example.com", - "localhost" - ], - -# Set to 1 if you want to use WebGUI's SSL functions, including encrypting user logins. - -"sslEnabled" : 0, - -# Rename the WebGUI Session cookie if you like. - -"cookieName" : "wgSession", - -# Explicitly set the domain that the WebGUI session cookie -# should be assigned to. Defaults to the domain that the user -# is browsing the site under. - -# "cookieDomain" : ".example.com", - -# Explicitly set the time to live for the WebGUI session cookie -# Defaults to +10Y. cookieTTL must follow the described format: -# Format should match /^\+?(\d+)([YMDhms]?)$/ -# $2 qualifies the number in $1 as representing "Y"ears, -# "M"onths, "D"ays, "h"ours, "m"inutes, or "s"econds (if the qualifier is omitted, -# the number is interpreted as representing seconds). -# +1h = 1 hour -# +2D = 2 Days -# +3M = 3 Months -# +10Y = 10 Years (default) - -# This may also be set to the word "session" to have cookies live -# for the current browser session only. - -# "cookieTTL" : "+10Y", - -# The location where the WebGUI server will be handling -# requests. This is normally just '/' or the root of the -# server, but on some installations it might be /webgui or -# /site1, /site2, etc. If this is set to anything other than -# '/' then a matching block should -# contain the WebGUI handler instead in the Apache -# VirtualHost configuration. - -"gateway" : "/", - -# The relative or fully qualified URL to the extras folder -# that comes with WebGUI. - -"extrasURL" : "/extras", - -# The filesystem path to get to the extras folder that ships -# with WebGUI. - -"extrasPath" : "/data/WebGUI/www/extras", - -# The relative for fully qualified URL to the uploads folder -# for this site where all attachments will be stored. - -"uploadsURL" : "/uploads", - -# The filesystem path to get to the uploads folder where all -# attachments for this site will be stored. This needs to be -# writable by your web server. - -"uploadsPath" : "/data/WebGUI/www/uploads", - -# Set this value to 1 if you want rich editors to use the -# WebGUI asset URLs for images rather than their real URLs -# in the uploads folder. The advantage of this is that users -# see short clean WebGUI controlled URLs. However, this is -# slower than the default. - -"richEditorsUseAssetUrls" : 1, - -# Used to generate user facing URLs. -# If you are not running your web server on the standard -# port (80) then use this setting to specify that. If you -# are running WebGUI behind a proxy, then webServerPort should -# be set to which ever port the proxy is listening to. - -#"webServerPort" : 80, - -# What kind of cache do you wish to use? Available types are -# WebGUI::Cache::FileCache and WebGUI::Cache::Database. -# We highly recommend the database cache if you are running -# sites with more than a few hundred pages, or if you're -# running in a multi-server environment. The file cache is better -# for very small sites. - -"cacheType" : "WebGUI::Cache::FileCache", - -# Tell WebGUI where to store cached files. Defaults to the -# /tmp or c:\temp folder depending upon your operating system. - -# "fileCacheRoot" : "/path/to/cache", - -# Set this to 1 to disable WebGUI's caching subsystems. This is -# mainly useful for developers. - -"disableCache" : 0, - -# The database connection string. It usually takes the form of -# DBI::;host: - -"dsn" : "DBI:mysql:www_example_com;host=db", - -# The username to authenticate to the above database. - -"dbuser" : "webgui", - -# The password to authenticate to the above database. - -"dbpass" : "123qwe", - -# You can configure up to three read-only database slaves to -# increase WebGUI's read performance. - -# "dbslave1" : { -# "dsn" : "DBI:mysql:www_example_com;host=dbslave1.example.com", -# "user" : "webgui", -# "pass" : "password" -# }, - -# "dbslave2" : { -# "dsn" : "DBI:mysql:www_example_com;host=dbslave2.example.com", -# "user" : "webgui", -# "pass" : "password" -# }, - -# "dbslave3" : { -# "dsn" : "DBI:mysql:www_example_com;host=dbslave3.example.com", -# "user" : "webgui", -# "pass" : "password" -# }, - -# You can configure a backup master database as a failover in case -# your primary database goes down. WebGUI will use this database until -# the original becomes available. However, this does nothing to change -# the settings of your database. If it was set up as a slave until the -# master went down, then some script will have to be written to convert -# it from a slave to a master. - -# "failoverdb" : { -# "dsn" : "DBI:mysql:www_example_com;host=failover.example.com;port=3306", -# "user" : "webgui", -# "password" : "password" -# }, - -# If you have a multi-master set up, you must define increment_step and increment_offset -# to prevent merge conflicts between the different masters. increment_step should be set -# to the number of masters, and offset should be unique to each master, starting at 0. -# -# So, a 2-master cluster would define: -# Master 1: -# increment_step: 2 -# increment_offset: 0 -# Master 2: -# increment_step: 2 -# increment_offset: 1 -# -# "db" : { -# "increment_step" : 1, -# "increment_offset" : 0 -# }, - - -# Set this value if you wish to override all outbound emails to a specific -# user for testing purposes. - -# "emailOverride" : "joe@example.com", - -# Set this value if you wish to bypass sending email to the mailserver alltogether. -# This will instead pipe email messages to the log, removing them from the queue normally - -# "emailToLog" : "1", - -# By adding CIDR based subnets to the following array you can limit the -# subnets by which users can turn admin mode on. - -"adminModeSubnets" : [ ], - -# List the authentication plug-ins you wish to be available on -# this site. - -"authMethods" : [ "LDAP", "WebGUI", "Twitter" ], - -# List the merchant gateways you have installed and wish to be -# available on this site. - -"paymentDrivers" : [ - "WebGUI::Shop::PayDriver::Cash", - "WebGUI::Shop::PayDriver::ITransact", - "WebGUI::Shop::PayDriver::PayPal::PayPalStd", - "WebGUI::Shop::PayDriver::PayPal::ExpressCheckout", - "WebGUI::Shop::PayDriver::CreditCard::AuthorizeNet", - "WebGUI::Shop::PayDriver::Ogone" - ], - -# List the shipping drivers you have installed and wish to be -# available for configuration on the site. - -"shippingDrivers" : [ - "WebGUI::Shop::ShipDriver::FlatRate", - "WebGUI::Shop::ShipDriver::USPS", - "WebGUI::Shop::ShipDriver::USPSInternational", - "WebGUI::Shop::ShipDriver::UPS" - ], - -# Specify the list of template parsers available in the system. - -"templateParsers" : [ - "WebGUI::Asset::Template::HTMLTemplate" - ], - -# Enable the Survey Expression Engine, which allows goto expressions in -# the config. - -"enableSurveyExpressionEngine" : 0, - -# Specify the default template parser. - -"defaultTemplateParser" : "WebGUI::Asset::Template::HTMLTemplate", - -# Specify external helper apps that will enable WebGUI's search -# engine to index content in various uploaded file formats. The -# helpers must take the path to the file as an argument and -# return either text or html content. - -"searchIndexerPlugins" : { - "txt" : "/bin/cat", - "readme" : "/bin/cat", - "html" : "/bin/cat", - "htm" : "/bin/cat" - }, - - -# define what appears in the admin console and who can view it - -"adminConsole" : { - "loginHistory" : { - "icon" : "loginHistory.gif", - "uiLevel" : 5, - "url" : "^PageUrl(\"\",op=viewLoginHistory);", - "title" : "^International(426,WebGUI);", - "groupSetting" : "groupIdAdminLoginHistory" + "account" : [ + { + "className" : "WebGUI::Account::Profile", + "identifier" : "profile", + "title" : "^International(title,Account_Profile);" + }, + { + "className" : "WebGUI::Account::Inbox", + "identifier" : "inbox", + "title" : "^International(title,Account_Inbox);" + }, + { + "className" : "WebGUI::Account::Friends", + "identifier" : "friends", + "title" : "^International(title,Account_Friends);" + }, + { + "className" : "WebGUI::Account::Contributions", + "identifier" : "contributions", + "title" : "^International(title,Account_Contributions);" + }, + { + "className" : "WebGUI::Account::Shop", + "identifier" : "shop", + "title" : "^International(title,Account_Shop);" + }, + { + "className" : "WebGUI::Account::User", + "identifier" : "user", + "title" : "^International(title,Account_User);" + }, + { + "className" : "WebGUI::Account::FriendManager", + "identifier" : "friendManager", + "title" : "^International(title,Account_FriendManager);" + } + ], + "adminConsole" : { + "activeSessions" : { + "groupSetting" : "groupIdAdminActiveSessions", + "icon" : "activeSessions.gif", + "title" : "^International(425,WebGUI);", + "uiLevel" : 5, + "url" : "^PageUrl(\"\",op=viewActiveSessions);" + }, + "adSpace" : { + "groupSetting" : "groupIdAdminAdSpace", + "icon" : "advertising.gif", + "title" : "^International(topicName,AdSpace);", + "uiLevel" : 5, + "url" : "^PageUrl(\"\",op=manageAdSpaces);" + }, + "addons" : { + "group" : "12", + "icon" : "addons.png", + "title" : "^International(Addons title,WebGUI);", + "uiLevel" : 1, + "url" : "http://www.webgui.org/addons" + }, + "adminConsoleOff" : { + "group" : "12", + "icon" : "adminConsoleOff.gif", + "title" : "^International(12,WebGUI);", + "uiLevel" : 1, + "url" : "^PageUrl(\"\",op=switchOffAdmin);" + }, + "assetHistory" : { + "groupSetting" : "groupIdAdminHistory", + "icon" : "assetHistory.gif", + "title" : "^International(assetHistory,Asset);", + "uiLevel" : 5, + "url" : "^PageUrl(\"\",op=assetHistory);" + }, + "assets" : { + "group" : "12", + "icon" : "assets.gif", + "title" : "^International(assets,Asset);", + "uiLevel" : 5, + "url" : "^PageUrl(\"\",op=assetManager);" + }, + "cache" : { + "groupSetting" : "groupIdAdminCache", + "icon" : "cache.gif", + "title" : "^International(manage cache,WebGUI);", + "uiLevel" : 5, + "url" : "^PageUrl(\"\",op=manageCache);" + }, + "clipboard" : { + "group" : "12", + "icon" : "clipboard.gif", + "title" : "^International(948,WebGUI);", + "uiLevel" : 5, + "url" : "^PageUrl(\"\",func=manageClipboard);" + }, + "contentFilters" : { + "groupSetting" : "groupIdAdminReplacements", + "icon" : "contentFilters.gif", + "title" : "^International(content filters,WebGUI);", + "uiLevel" : 3, + "url" : "^PageUrl(\"\",op=listReplacements);" + }, + "contentProfiling" : { + "group" : "4", + "icon" : "contentProfiling.gif", + "title" : "^International(content profiling,Asset);", + "uiLevel" : 5, + "url" : "^PageUrl(\"\",func=manageMetaData);" + }, + "cron" : { + "groupSetting" : "groupIdAdminCron", + "icon" : "cron.gif", + "title" : "^International(topicName,Workflow_Cron);", + "uiLevel" : 9, + "url" : "^PageUrl(\"\",op=manageCron);" + }, + "databases" : { + "groupSetting" : "groupIdAdminDatabaseLink", + "icon" : "databases.gif", + "title" : "^International(databases,WebGUI);", + "uiLevel" : 9, + "url" : "^PageUrl(\"\",op=listDatabaseLinks);" + }, + "filePump" : { + "groupSetting" : "groupIdAdminFilePump", + "icon" : "filePump.png", + "title" : "^International(File Pump,FilePump);", + "uiLevel" : 5, + "url" : "^PageUrl(\"\",op=filePump);" + }, + "graphics" : { + "groupSetting" : "groupIdAdminGraphics", + "icon" : "graphics.gif", + "title" : "^International(manage graphics,Graphics);", + "uiLevel" : 5, + "url" : "^PageUrl(\"\",op=listGraphicsOptions);" + }, + "groups" : { + "groupSetting" : "groupIdAdminGroup", + "icon" : "groups.gif", + "title" : "^International(89,WebGUI);", + "uiLevel" : 5, + "url" : "^PageUrl(\"\",op=listGroups);" + }, + "help" : { + "groupSetting" : "groupIdAdminHelp", + "icon" : "help.gif", + "title" : "^International(help,WebGUI);", + "uiLevel" : 1, + "url" : "^PageUrl(\"\",op=viewHelpIndex);" + }, + "inbox" : { + "group" : "2", + "icon" : "inbox.gif", + "title" : "^International(159,WebGUI);", + "uiLevel" : 1, + "url" : "^PageUrl(\"\",op=viewInbox);" + }, + "ldapconnections" : { + "groupSetting" : "groupIdAdminLDAPLink", + "icon" : "ldap.gif", + "title" : "^International(ldapconnections,AuthLDAP);", + "uiLevel" : 9, + "url" : "^PageUrl(\"\",op=listLDAPLinks);" + }, + "loginHistory" : { + "groupSetting" : "groupIdAdminLoginHistory", + "icon" : "loginHistory.gif", + "title" : "^International(426,WebGUI);", + "uiLevel" : 5, + "url" : "^PageUrl(\"\",op=viewLoginHistory);" + }, + "mailable" : { + "groupSetting" : "mailingManagerGroupId", + "icon" : "newsletter.gif", + "title" : "Newsletter", + "uiLevel" : 7, + "url" : "^PageUrl(\"\",newsletter=manage);" + }, + "passiveAnalytics" : { + "groupSetting" : "3", + "icon" : "passiveAnalytics.png", + "title" : "^International(Passive Analytics,PassiveAnalytics);", + "uiLevel" : 1, + "url" : "^PageUrl(\"\",op=passiveAnalytics;func=editRuleflow);" + }, + "settings" : { + "group" : "3", + "icon" : "settings.gif", + "title" : "^International(settings,WebGUI);", + "uiLevel" : 5, + "url" : "^PageUrl(\"\",op=editSettings);" + }, + "shop" : { + "groupSetting" : "groupIdAdminCommerce", + "icon" : "shop.gif", + "title" : "^International(shop,Shop);", + "uiLevel" : 5, + "url" : "^PageUrl(\"\",shop=admin);" + }, + "spectre" : { + "groupSetting" : "groupIdAdminSpectre", + "icon" : "spectre.gif", + "title" : "^International(spectre,Spectre);", + "uiLevel" : 9, + "url" : "^PageUrl(\"\",op=spectreStatus);" + }, + "statistics" : { + "groupSetting" : "groupIdAdminStatistics", + "icon" : "statistics.gif", + "title" : "^International(437,WebGUI);", + "uiLevel" : 1, + "url" : "^PageUrl(\"\",op=viewStatistics);" + }, + "trash" : { + "group" : "12", + "icon" : "trash.gif", + "title" : "^International(trash,WebGUI);", + "uiLevel" : 5, + "url" : "^PageUrl(\"\",func=manageTrash);" + }, + "userProfiling" : { + "groupSetting" : "groupIdAdminProfileSettings", + "icon" : "userProfiling.gif", + "title" : "^International(user profiling,WebGUIProfile);", + "uiLevel" : 5, + "url" : "^PageUrl(\"\",op=editProfileSettings);" + }, + "users" : { + "groupSetting" : "groupIdAdminUser", + "icon" : "users.gif", + "title" : "^International(149,WebGUI);", + "uiLevel" : 5, + "url" : "^PageUrl(\"\",op=listUsers);" + }, + "versions" : { + "groupSetting" : "groupIdAdminVersionTag", + "icon" : "versionTags.gif", + "title" : "^International(version tags,VersionTag);", + "uiLevel" : 7, + "url" : "^PageUrl(\"\",op=manageVersions);" + }, + "workflow" : { + "groupSetting" : "groupIdAdminWorkflow", + "icon" : "workflow.gif", + "title" : "^International(topicName,Workflow);", + "uiLevel" : 7, + "url" : "^PageUrl(\"\",op=manageWorkflows);" + } }, - "clipboard" : { - "icon" : "clipboard.gif", - "group" : "12", - "uiLevel" : 5, - "url" : "^PageUrl(\"\",func=manageClipboard);", - "title" : "^International(948,WebGUI);" + "adminModeSubnets" : [], + "assetCategories" : { + "basic" : { + "title" : "^International(basic,Macro_AdminBar);", + "uiLevel" : 1 + }, + "community" : { + "title" : "^International(community,Macro_AdminBar);", + "uiLevel" : 5 + }, + "intranet" : { + "title" : "^International(intranet,Macro_AdminBar);", + "uiLevel" : 5 + }, + "shop" : { + "title" : "^International(shop,Shop);", + "uiLevel" : 5 + }, + "utilities" : { + "title" : "^International(utilities,Macro_AdminBar);", + "uiLevel" : 9 + } }, - "statistics" : { - "icon" : "statistics.gif", - "uiLevel" : 1, - "url" : "^PageUrl(\"\",op=viewStatistics);", - "title" : "^International(437,WebGUI);", - "groupSetting" : "groupIdAdminStatistics" - }, - "users" : { - "icon" : "users.gif", - "uiLevel" : 5, - "url" : "^PageUrl(\"\",op=listUsers);", - "title" : "^International(149,WebGUI);", - "groupSetting" : "groupIdAdminUser" - }, - "activeSessions" : { - "icon" : "activeSessions.gif", - "uiLevel" : 5, - "url" : "^PageUrl(\"\",op=viewActiveSessions);", - "title" : "^International(425,WebGUI);", - "groupSetting" : "groupIdAdminActiveSessions" - }, - "inbox" : { - "icon" : "inbox.gif", - "group" : "2", - "uiLevel" : 1, - "url" : "^PageUrl(\"\",op=viewInbox);", - "title" : "^International(159,WebGUI);" - }, - "versions" : { - "icon" : "versionTags.gif", - "uiLevel" : 7, - "url" : "^PageUrl(\"\",op=manageVersions);", - "title" : "^International(version tags,VersionTag);", - "groupSetting" : "groupIdAdminVersionTag" - }, - "help" : { - "icon" : "help.gif", - "uiLevel" : 1, - "url" : "^PageUrl(\"\",op=viewHelpIndex);", - "title" : "^International(help,WebGUI);", - "groupSetting" : "groupIdAdminHelp" - }, - "groups" : { - "icon" : "groups.gif", - "uiLevel" : 5, - "url" : "^PageUrl(\"\",op=listGroups);", - "title" : "^International(89,WebGUI);", - "groupSetting" : "groupIdAdminGroup" - }, - "userProfiling" : { - "icon" : "userProfiling.gif", - "uiLevel" : 5, - "url" : "^PageUrl(\"\",op=editProfileSettings);", - "title" : "^International(user profiling,WebGUIProfile);", - "groupSetting" : "groupIdAdminProfileSettings" - }, - "ldapconnections" : { - "icon" : "ldap.gif", - "uiLevel" : 9, - "url" : "^PageUrl(\"\",op=listLDAPLinks);", - "title" : "^International(ldapconnections,AuthLDAP);", - "groupSetting" : "groupIdAdminLDAPLink" - }, - "contentProfiling" : { - "icon" : "contentProfiling.gif", - "group" : "4", - "uiLevel" : 5, - "url" : "^PageUrl(\"\",func=manageMetaData);", - "title" : "^International(content profiling,Asset);" - }, - "databases" : { - "icon" : "databases.gif", - "uiLevel" : 9, - "url" : "^PageUrl(\"\",op=listDatabaseLinks);", - "title" : "^International(databases,WebGUI);", - "groupSetting" : "groupIdAdminDatabaseLink" - }, - "adSpace" : { - "icon" : "advertising.gif", - "uiLevel" : 5, - "url" : "^PageUrl(\"\",op=manageAdSpaces);", - "title" : "^International(topicName,AdSpace);", - "groupSetting" : "groupIdAdminAdSpace" - }, - "settings" : { - "icon" : "settings.gif", - "group" : "3", - "uiLevel" : 5, - "url" : "^PageUrl(\"\",op=editSettings);", - "title" : "^International(settings,WebGUI);" - }, - "workflow" : { - "icon" : "workflow.gif", - "uiLevel" : 7, - "url" : "^PageUrl(\"\",op=manageWorkflows);", - "title" : "^International(topicName,Workflow);", - "groupSetting" : "groupIdAdminWorkflow" + "assetToolbarUiLevel" : { + "changeUrl" : 9, + "copy" : 1, + "cut" : 1, + "delete" : 1, + "demote" : 3, + "edit" : 1, + "editBranch" : 9, + "export" : 9, + "lock" : 5, + "manage" : 5, + "promote" : 3, + "revisions" : 5, + "shortcut" : 5, + "view" : 1 }, "assets" : { - "icon" : "assets.gif", - "group" : "12", - "uiLevel" : 5, - "url" : "^PageUrl(\"\",op=assetManager);", - "title" : "^International(assets,Asset);" - }, - "assetHistory" : { - "icon" : "assetHistory.gif", - "groupSetting" : "groupIdAdminHistory", - "uiLevel" : 5, - "url" : "^PageUrl(\"\",op=assetHistory);", - "title" : "^International(assetHistory,Asset);" - }, - "graphics" : { - "icon" : "graphics.gif", - "uiLevel" : 5, - "url" : "^PageUrl(\"\",op=listGraphicsOptions);", - "title" : "^International(manage graphics,Graphics);", - "groupSetting" : "groupIdAdminGraphics" - }, - "passiveAnalytics" : { - "icon" : "passiveAnalytics.png", - "uiLevel" : 1, - "url" : "^PageUrl(\"\",op=passiveAnalytics;func=editRuleflow);", - "title" : "^International(Passive Analytics,PassiveAnalytics);", - "groupSetting" : "3" - }, - "shop" : { - "icon" : "shop.gif", - "uiLevel" : 5, - "url" : "^PageUrl(\"\",shop=admin);", - "title" : "^International(shop,Shop);", - "groupSetting" : "groupIdAdminCommerce" - }, - "trash" : { - "icon" : "trash.gif", - "group" : "12", - "uiLevel" : 5, - "url" : "^PageUrl(\"\",func=manageTrash);", - "title" : "^International(trash,WebGUI);" - }, - "cron" : { - "icon" : "cron.gif", - "uiLevel" : 9, - "url" : "^PageUrl(\"\",op=manageCron);", - "title" : "^International(topicName,Workflow_Cron);", - "groupSetting" : "groupIdAdminCron" - }, - "spectre" : { - "icon" : "spectre.gif", - "uiLevel" : 9, - "url" : "^PageUrl(\"\",op=spectreStatus);", - "title" : "^International(spectre,Spectre);", - "groupSetting" : "groupIdAdminSpectre" - }, - "adminConsoleOff" : { - "icon" : "adminConsoleOff.gif", - "uiLevel" : 1, - "group" : "12", - "url" : "^PageUrl(\"\",op=switchOffAdmin);", - "title" : "^International(12,WebGUI);" - }, - "addons" : { - "icon" : "addons.png", - "uiLevel" : 1, - "group" : "12", - "url" : "http://www.webgui.org/addons", - "title" : "^International(Addons title,WebGUI);" - }, - "contentFilters" : { - "icon" : "contentFilters.gif", - "uiLevel" : 3, - "url" : "^PageUrl(\"\",op=listReplacements);", - "title" : "^International(content filters,WebGUI);", - "groupSetting" : "groupIdAdminReplacements" - }, - "cache" : { - "icon" : "cache.gif", - "uiLevel" : 5, - "url" : "^PageUrl(\"\",op=manageCache);", - "title" : "^International(manage cache,WebGUI);", - "groupSetting" : "groupIdAdminCache" - }, - "filePump" : { - "icon" : "filePump.png", - "uiLevel" : 5, - "url" : "^PageUrl(\"\",op=filePump);", - "title" : "^International(File Pump,FilePump);", - "groupSetting" : "groupIdAdminFilePump" - } -}, - -# Enter the maximum number of assets that should be allowed to -# be created on this site. Keep in mind that a base install of -# WebGUI has around 300 assets. Enter zero (0) if you want to -# allow an unlimited number. - -"maximumAssets" : 0, - -# Specify the list of categories to display in the "New Content" -# menu. The category names should match those used in the "assets" -# hash later in this config. Each category can have three properties: -# -# title - The human readable name of the category. -# uiLevel - The minimum UI level the user must have to see the category. -# group - A group id the user must be in to see the category. - -"assetCategories" : { - "basic" : { - "uiLevel" : 1, - "title" : "^International(basic,Macro_AdminBar);" - }, - "shop" : { - "uiLevel" : 5, - "title" : "^International(shop,Shop);" - }, - "utilities" : { - "uiLevel" : 9, - "title" : "^International(utilities,Macro_AdminBar);" - }, - "community" : { - "uiLevel" : 5, - "title" : "^International(community,Macro_AdminBar);" - }, - "intranet" : { - "uiLevel" : 5, - "title" : "^International(intranet,Macro_AdminBar);" - } -}, - -# Specify the list of assets you want to appear in your -# "New Content" menu categories. See "assetCategories" for details -# about categories. Each listing has a key of class name, and then -# has several properties, which are: -# -# category - The category the asset should appear in. Can also be an array of categories. -# isContainer - Whether or not the assets main purpose to display the data from other assets. -# addGroup - The group the user must be in to add this asset. -# uiLevel - The minimum UI level the user must have to add the asset. -# fields - Edit the properties of the asset. -# tabs - Edit the tabs on which the fields are displayed when editing the asset. -# -# The "fields" property above may override any property of any field in this -# asset class. Examples are label, tab, uiLevel. You must know what you're -# doing with this, because you could break an asset if you set something wrong -# with these properties. Here's an example of wha the fields poperty might look like: -# -# "fields" : { -# "title" : { -# "label" : "Name", -# "tab" : "basic" -# }, -# "synopsis" : { -# "label" : "Abstract", -# "uiLevel" : 3 -# } -# } -# -# The "tabs" property allows you to to create new, hide, and update existing tabs in -# the asset. Each tab has two properties: -# -# uiLevel - The minimum UI level the user must have to view the tab. -# label - The human readable label for the tab. -# -# Here's an example of what a tabls section might look like: -# -# "tabs" : { -# "basic" : { -# "label" : "Basic", -# "uiLevel" : 1 -# }, -# "meta" : { -# "uiLevel" : 99999 -# }, -# "security" : { -# "label" : "Protection" -# } -# } - -"assets" : { - "WebGUI::Asset::Wobject::Shelf" : { - "category" : "shop" - }, - "WebGUI::Asset::Wobject::Layout" : { - "isContainer" : 1, - "category" : "basic" - }, - "WebGUI::Asset::Wobject::Gallery" : { - "category" : "community" - }, - "WebGUI::Asset::Wobject::DataTable" : { - "category" : "basic" - }, - "WebGUI::Asset::Wobject::DataForm" : { - "category" : "basic" - }, - "WebGUI::Asset::Sku::Ad" : { - "category" : "shop" - }, - "WebGUI::Asset::Sku::Donation" : { - "category" : "shop" - }, - "WebGUI::Asset::Sku::ThingyRecord" : { - "category" : "shop" - }, - "WebGUI::Asset::Wobject::UserList" : { - "category" : "intranet" - }, - "WebGUI::Asset::Wobject::EventManagementSystem" : { - "category" : "shop" - }, - "WebGUI::Asset::Sku::Subscription" : { - "category" : "shop" - }, - "WebGUI::Asset::Wobject::WikiMaster" : { - "isContainer" : 1, - "category" : "community" - }, - "WebGUI::Asset::Wobject::StoryArchive" : { - "isContainer" : 1, - "category" : "community" - }, - "WebGUI::Asset::Wobject::StoryTopic" : { - "category" : "community" - }, - "WebGUI::Asset::Wobject::Carousel" : { - "category" : "utilities" - }, - "WebGUI::Asset::Wobject::StockData" : { - "category" : "intranet" - }, - "WebGUI::Asset::FilePile" : { - "category" : "basic" - }, - "WebGUI::Asset::Wobject::Collaboration" : { - "category" : "community" - }, - "WebGUI::Asset::Wobject::Survey" : { - "category" : "community" - }, - "WebGUI::Asset::File::ZipArchive" : { - "category" : "utilities" - }, - "WebGUI::Asset::RichEdit" : { - "category" : "utilities" - }, - "WebGUI::Asset::Wobject::SyndicatedContent" : { - "category" : "utilities" - }, - "WebGUI::Asset::Wobject::HttpProxy" : { - "category" : "utilities" - }, - "WebGUI::Asset::Wobject::MultiSearch" : { - "category" : "intranet" - }, - "WebGUI::Asset::File::Image" : { - "category" : "utilities" - }, - "WebGUI::Asset::Sku::Product" : { - "category" : "shop" - }, - "WebGUI::Asset::Wobject::WeatherData" : { - "category" : "intranet" - }, - "WebGUI::Asset::Redirect" : { - "category" : "utilities" - }, - "WebGUI::Asset::Wobject::Article" : { - "category" : "basic" - }, - "WebGUI::Asset::Wobject::AssetReport" : { - "category" : "utilities" - }, - "WebGUI::Asset::Wobject::Search" : { - "category" : "basic" - }, - "WebGUI::Asset::Wobject::MessageBoard" : { - "isContainer" : 1, - "category" : "community" - }, - "WebGUI::Asset::Wobject::SQLReport" : { - "category" : "utilities" - }, - "WebGUI::Asset::Wobject::TimeTracking" : { - "category" : "intranet" - }, - "WebGUI::Asset::Wobject::Calendar" : { - "category" : "basic" - }, - "WebGUI::Asset::Wobject::Poll" : { - "category" : "basic" - }, - "WebGUI::Asset::Wobject::ProjectManager" : { - "category" : "intranet" - }, - "WebGUI::Asset::Wobject::Folder" : { - "isContainer" : 1, - "category" : "basic" - }, - "WebGUI::Asset::Wobject::Navigation" : { - "category" : "utilities" - }, - "WebGUI::Asset::Wobject::Matrix" : { - "category" : "community" - }, - "WebGUI::Asset::Sku::FlatDiscount" : { - "category" : "shop" - }, - "WebGUI::Asset::Wobject::Thingy" : { - "category" : "intranet" - }, - "WebGUI::Asset::File" : { - "category" : "utilities" - }, - "WebGUI::Asset::Wobject::Collaboration::Newsletter" : { - "category" : "community" - }, - "WebGUI::Asset::Snippet" : { - "category" : "basic" - }, - "WebGUI::Asset::Wobject::InOutBoard" : { - "category" : "intranet" - }, - "WebGUI::Asset::Wobject::Dashboard" : { - "isContainer" : 1, - "category" : "intranet" - }, - "WebGUI::Asset::Wobject::DataForm" : { - "category" : "basic" - }, - "WebGUI::Asset::Template" : { - "category" : "utilities" - }, - "WebGUI::Asset::Wobject::Map" : { - "category" : "basic" - }, - "WebGUI::Asset::Wobject::AssetReport" : { - "category" : "utilities" - }, -}, - -# -# Specify the list of account pluggins available on your site. -# Account pluggins are returned on the site in the order they are list in the config file -# Each pluggin has serveral properties -# -# identifier - This string will act as the identifying agent for this account pluggin. It is passed along -# the url and cannot contain spaces. -# title - The title of the module which is displayed on the website. -# className - The class which drives this module - -# -# IMPORTANT NOTE - PLEASE READ: -# -# DO NOT DELETE THE WebGUI::Account::User pluggin from this list. This module -# is Deprecated on release and is mandatory for every site. You may move it's position -# but if you remove it you will break WebGUI's Authentication System. This module will -# be replaced in WebGUI 8 once the APIs can be broken and the Account portion of Auth -# can be moved into the Account system -# -# A profile module is required as well. You may replace the default profile -# module with a custom version, but many systems in WebGUI rely on being -# able to display a user's profile. -# - -"account" : [ - { - "identifier" : "profile", - "title" : "^International(title,Account_Profile);", - "className" : "WebGUI::Account::Profile" - }, - { - "identifier" : "inbox", - "title" : "^International(title,Account_Inbox);", - "className" : "WebGUI::Account::Inbox" - }, - { - "identifier" : "friends", - "title" : "^International(title,Account_Friends);", - "className" : "WebGUI::Account::Friends" - }, - { - "identifier" : "contributions", - "className" : "WebGUI::Account::Contributions", - "title" : "^International(title,Account_Contributions);" - }, - { - "identifier" : "shop", - "title" : "^International(title,Account_Shop);", - "className" : "WebGUI::Account::Shop" - }, - { - "identifier" : "user", - "title" : "^International(title,Account_User);", - "className" : "WebGUI::Account::User" - }, - { - "identifier" : "friendManager", - "title" : "^International(title,Account_FriendManager);", - "className" : "WebGUI::Account::FriendManager" - }, -], - -# Specify which of the modules in the above list is used -# to display the user's profile. This is a mandatory configuration - -"profileModuleIdentifier" : "profile", - -# Optionally add a "Save and Commit" button to assets so that you -# don't have to hit "Commit My Changes" seperately. - -"enableSaveAndCommit" : 0, - -# Optionally override the default UI Level of any asset. This -# determines whether the current user has the appropriate UI Level -# to add assets of that type. - -# Configure the UI Levels of the asset toolbar links. - -"assetToolbarUiLevel" : { - "copy" : 1, - "cut" : 1, - "delete" : 1, - "edit" : 1, - "view" : 1, - "demote" : 3, - "promote" : 3, - "lock" : 5, - "manage" : 5, - "revisions" : 5, - "shortcut" : 5, - "changeUrl" : 9, - "editBranch" : 9, - "export" : 9 - }, - -# If exportPath is defined, an "Export" toolbar icon will appear -# which allows you to export assets to static HTML. This folder -# needs to be writable by your web server. - -# "exportPath" : "/path/to/export", - -# Enable streaming Image and File assets thru mod_perl process instead of -# simple redirect. WARNING has impact on performance. - -"enableStreamingUploads" : "0", - -# Specify the list of macros you wish to be processed on each page. - -"macros" : { - "@" : "At_username", - "#" : "Hash_userId", - "/" : "Slash_gatewayUrl", - "a" : "a_account", - "AdminBar" : "AdminBar", - "AdminText" : "AdminText", - "AdminToggle" : "AdminToggle", - "AdSpace" : "AdSpace", - "AOIHits" : "AOIHits", - "AOIRank" : "AOIRank", - "AssetProperty" : "AssetProperty", - "AssetProxy" : "AssetProxy", - "BackToSite" : "BackToSite", - "CanEditText" : "CanEditText", - "CartItemCount" : "CartItemCount", - "ConvertUTCToTZ" : "ConvertUTCToTZ", - "c" : "c_companyName", - "D" : "D_date", - "DeactivateAccount": "DeactivateAccount", - "EditableToggle" : "EditableToggle", - "e" : "e_companyEmail", - "Extras" : "Extras", - "FetchMimeType" : "FetchMimeType", - "FilePump" : "FilePump", - "FileUrl" : "FileUrl", - "FormField" : "FormField", - "GroupAdd" : "GroupAdd", - "GroupDelete" : "GroupDelete", - "GroupText" : "GroupText", - "H" : "H_homeLink", - "If" : "If", - "International" : "International", - "LastModified" : "LastModified", - "LastModifiedBy" : "LastModifiedBy", - "L" : "L_loginBox", - "LoginToggle" : "LoginToggle", - "MiniCart" : "MiniCart", - "Page" : "Page", - "PageTitle" : "PageTitle", - "PageUrl" : "PageUrl", - "PickLanguage" : "PickLanguage", - "RandomAssetProxy" : "RandomAssetProxy", - "RandomThread" : "RandomThread", - "RenderThingData" : "RenderThingData", - "RootTitle" : "RootTitle", - "r" : "r_printable", - "Spacer" : "Spacer", - "SpectreCheck" : "SpectreCheck", - "TwitterLogin" : "TwitterLogin", - "Thumbnail" : "Thumbnail", - "User" : "User", - "UsersOnline" : "UsersOnline", - "u" : "u_companyUrl", - "ViewCart" : "ViewCart", - "StorageUrl" : "StorageUrl" - }, - -#Specify any LDAP aliases for synchronizing user profiles to LDAP -"ldapAlias" : { - "firstName" : "givenName", - "lastName" : "sn", - "email" : "mail", - "companyName" : "o" - }, - -# Define the subnets that WebGUI should expect Spectre communication -# to come from. All other subnets will be ignored. The subnet -# should be listed in CIDR notation. - -"spectreSubnets" : [ "127.0.0.1/32" ], - -# Define the IP Address that should be used by WebGUI to connect -# to Spectre. Depending upon your cluster configuration, this may -# or may not be the same as the information in spectreSubnets. - -"spectreIp" : "127.0.0.1", - -# Define the port number WebGUI should use to connect to Spectre - -"spectrePort" : 32133, - -# Define the workflow activities that are available in the editing -# process and what object types they support. - -"workflowActivities" : { - "None" : [ - "WebGUI::Workflow::Activity::ArchiveOldStories", - "WebGUI::Workflow::Activity::ArchiveOldThreads", - "WebGUI::Workflow::Activity::CalendarUpdateFeeds", - "WebGUI::Workflow::Activity::CleanCookieJars", - "WebGUI::Workflow::Activity::CleanDatabaseCache", - "WebGUI::Workflow::Activity::CleanFileCache", - "WebGUI::Workflow::Activity::CleanLoginHistory", - "WebGUI::Workflow::Activity::CleanTempStorage", - "WebGUI::Workflow::Activity::CreateCronJob", - "WebGUI::Workflow::Activity::DecayKarma", - "WebGUI::Workflow::Activity::DeleteExpiredSessions", - "WebGUI::Workflow::Activity::ExpireEmsCartItems", - "WebGUI::Workflow::Activity::ExpireGroupings", - "WebGUI::Workflow::Activity::ExpireSubscriptionCodes", - "WebGUI::Workflow::Activity::GetSyndicatedContent", - "WebGUI::Workflow::Activity::NotifyAdminsWithOpenVersionTags", - "WebGUI::Workflow::Activity::PurgeOldAssetRevisions", - "WebGUI::Workflow::Activity::PurgeOldTrash", - "WebGUI::Workflow::Activity::RemoveOldCarts", - "WebGUI::Workflow::Activity::SendQueuedMailMessages", - "WebGUI::Workflow::Activity::SummarizePassiveProfileLog", - "WebGUI::Workflow::Activity::SyncProfilesToLdap", - "WebGUI::Workflow::Activity::TrashClipboard", - "WebGUI::Workflow::Activity::TrashExpiredEvents", - "WebGUI::Workflow::Activity::SummarizePassiveAnalytics", - "WebGUI::Workflow::Activity::BucketPassiveAnalytics", - "WebGUI::Workflow::Activity::ExpirePurchasedThingyRecords" - ], - "WebGUI::Asset::Wobject::Thingy" : [ - "WebGUI::Workflow::Activity::NotifyAboutThing" - ], - "WebGUI::Asset" : [ - "WebGUI::Workflow::Activity::UpdateAssetSubscribers" - ], - "WebGUI::User" : [ - "WebGUI::Workflow::Activity::CreateCronJob", - "WebGUI::Workflow::Activity::NotifyAboutUser", - "WebGUI::Workflow::Activity::ActivateUser", - "WebGUI::Workflow::Activity::DeactivateUser", - "WebGUI::Workflow::Activity::WaitForUserConfirmation", - "WebGUI::Workflow::Activity::DeleteUser" - ], - "WebGUI::VersionTag" : [ - "WebGUI::Workflow::Activity::CommitVersionTag", - "WebGUI::Workflow::Activity::CreateCronJob", - "WebGUI::Workflow::Activity::ExportVersionTagToHtml", - "WebGUI::Workflow::Activity::NotifyAboutVersionTag", - "WebGUI::Workflow::Activity::RequestApprovalForVersionTag", - "WebGUI::Workflow::Activity::RequestApprovalForVersionTag::ByCommitterGroup", - "WebGUI::Workflow::Activity::RequestApprovalForVersionTag::ByLineage", - "WebGUI::Workflow::Activity::RollbackVersionTag", - "WebGUI::Workflow::Activity::TrashVersionTag", - "WebGUI::Workflow::Activity::UnlockVersionTag", - "WebGUI::Workflow::Activity::WaitUntil" - ] - }, - -# Enter the graphing plugins that you want to enable for your site. - -"graphingPlugins" : [ - "WebGUI::Image::Graph::Pie", - "WebGUI::Image::Graph::XYGraph::Bar", - "WebGUI::Image::Graph::XYGraph::Line" - ], - -# Here you can define the dictionaries that are available through the tinyMCE spellchecker. You should set -# id to the name the dictionary is known by ASpell (eg. en or en_US or nl), use the name parameter to set -# the name the dictionary is displayed with in tinyMCE. To set the default dictionary please set the 'default' -# parameter. - -#"availableDictionaries" : [ -# { -# "id" : "en_US", -# "name" : "English", -# "default" : "1" -# }, -# { -# "id" : "nl", -# "name" : "Dutch" -# } -#], - -# Optional script to run upon successful login. The script can contain macros -# ex: /data/WebGUI/sbin/doLogin.pl --configFile=dev.localhost.localdomain.conf --loginPage=^PageUrl(); - -"runOnLogin" : "", - -# Optional script to run upon successful logout. The script can contain macros -# Example: /data/WebGUI/sbin/doLogout.pl --configFile=dev.localhost.localdomain.conf --logoutPage=^PageUrl(); - -"runOnLogout" : "", - -# URL handlers are used to associate functionality with a URL via a regular expression. - -"urlHandlers" : [ - { "^/extras" : "WebGUI::URL::PassThru" }, -# { "^/icons" : "WebGUI::URL::PassThru" }, -# { "^/documentation/pdf" : "WebGUI::URL::PassThru" }, -# { "^/my-custom-application$" : "WebGUI::URL::PassThru" }, -# { "^/server-status$" : "WebGUI::URL::PassThru" }, -# { "^/perl-status$" : "WebGUI::URL::PassThru" }, - { "^/uploads/dictionaries" : "WebGUI::URL::Unauthorized" }, - { "^/uploads" : "WebGUI::URL::Uploads" }, - { "^/\\*give-credit-where-credit-is-due\\*$" : "WebGUI::URL::Credits" }, - { "^/abcdefghijklmnopqrstuvwxyz$" : "WebGUI::URL::Snoop" }, - { ".*" : "WebGUI::URL::Content" } - ], - -# Content handlers are used to produce content from the content URL handler. -# Note, these handlers are processed in the order listed. Do not change -# unless you know what you're doing. - -"contentHandlers" : [ - "WebGUI::Content::Prefetch", - "WebGUI::Content::Maintenance", - "WebGUI::Content::Referral", - "WebGUI::Content::AssetManager", - "WebGUI::Content::AssetDiscovery", - "WebGUI::Content::PassiveAnalytics", - "WebGUI::Content::SetLanguage", - "WebGUI::Content::AjaxI18N", - "WebGUI::Content::Account", - "WebGUI::Content::AssetHistory", - "WebGUI::Content::FilePump", - "WebGUI::Content::Wizard", - "WebGUI::Content::Operation", - "WebGUI::Content::Setup", - "WebGUI::Content::Shop", - "WebGUI::Content::SiteIndex", - "WebGUI::Content::Asset", - "WebGUI::Content::NotFound" - ], - - -# extensions that the export system should pass through as-is instead of using -# index.html -"exportBinaryExtensions" : [ - "html", - "htm", - "txt", - "pdf", - "jpg", - "css", - "gif", - "png", - "doc", - "xls", - "xml", - "rss", - "bmp", - "mp3", - "js", - "fla", - "flv", - "swf", - "pl", - "php", - "php3", - "php4", - "php5", - "ppt", - "docx", - "zip", - "tar", - "rar", - "gz", - "bz2" -], - -# Drivers for the pluggable tax system -"taxDrivers" : [ - "WebGUI::Shop::TaxDriver::Generic", - "WebGUI::Shop::TaxDriver::EU" -], - -# Content Delivery Network - for use with WebGUI::Storage -# required for CDN: enabled, url, queuePath, syncProgram, deleteProgram -# optional for CDN: sslAlt, sslUrl, extrasCdn, extrasSsl, extrasExclude -#"cdn" : { "enabled" : 0, -# "url" : "http://content.example.com", -# "sslAlt" : 0, -# "sslUrl" : "https://ssl.example.com", -# "queuePath" : "/data/cdnqueue", -# "syncProgram" : "/usr/bin/rsync -av --chmod=u+rwx -- '%s' user@content.example.com:/path", -# "deleteProgram" : "/usr/bin/ssh user@content.example.com 'rm -Rf -- %s'", -# "extrasCdn" : "http://content.example.com/extras", -# "extrasSsl" : "https://content.example.com/extras", -# "extrasExclude": ["tinymce", "^blah$"] -# }, - -#A list of UserAgents of recognized mobile platforms. If useMobileStyle is set in the -#Admin settings, then the mobile style will be used for these browsers. + "WebGUI::Asset::File" : { + "category" : "utilities" + }, + "WebGUI::Asset::File::Image" : { + "category" : "utilities" + }, + "WebGUI::Asset::File::ZipArchive" : { + "category" : "utilities" + }, + "WebGUI::Asset::FilePile" : { + "category" : "basic" + }, + "WebGUI::Asset::Redirect" : { + "category" : "utilities" + }, + "WebGUI::Asset::RichEdit" : { + "category" : "utilities" + }, + "WebGUI::Asset::Sku::Ad" : { + "category" : "shop" + }, + "WebGUI::Asset::Sku::Donation" : { + "category" : "shop" + }, + "WebGUI::Asset::Sku::FlatDiscount" : { + "category" : "shop" + }, + "WebGUI::Asset::Sku::Product" : { + "category" : "shop" + }, + "WebGUI::Asset::Sku::Subscription" : { + "category" : "shop" + }, + "WebGUI::Asset::Sku::ThingyRecord" : { + "category" : "shop" + }, + "WebGUI::Asset::Snippet" : { + "category" : "basic" + }, + "WebGUI::Asset::Template" : { + "category" : "utilities" + }, + "WebGUI::Asset::Wobject::Article" : { + "category" : "basic" + }, + "WebGUI::Asset::Wobject::AssetReport" : { + "category" : "utilities" + }, + "WebGUI::Asset::Wobject::Calendar" : { + "category" : "basic" + }, + "WebGUI::Asset::Wobject::Carousel" : { + "category" : "utilities" + }, + "WebGUI::Asset::Wobject::Collaboration" : { + "category" : "community" + }, + "WebGUI::Asset::Wobject::Collaboration::Newsletter" : { + "category" : "community" + }, + "WebGUI::Asset::Wobject::Dashboard" : { + "category" : "intranet", + "isContainer" : 1 + }, + "WebGUI::Asset::Wobject::DataForm" : { + "category" : "basic" + }, + "WebGUI::Asset::Wobject::DataTable" : { + "category" : "basic" + }, + "WebGUI::Asset::Wobject::EventManagementSystem" : { + "category" : "shop" + }, + "WebGUI::Asset::Wobject::Folder" : { + "category" : "basic", + "isContainer" : 1 + }, + "WebGUI::Asset::Wobject::Gallery" : { + "category" : "community" + }, + "WebGUI::Asset::Wobject::HttpProxy" : { + "category" : "utilities" + }, + "WebGUI::Asset::Wobject::InOutBoard" : { + "category" : "intranet" + }, + "WebGUI::Asset::Wobject::Layout" : { + "category" : "basic", + "isContainer" : 1 + }, + "WebGUI::Asset::Wobject::Map" : { + "category" : "basic" + }, + "WebGUI::Asset::Wobject::Matrix" : { + "category" : "community" + }, + "WebGUI::Asset::Wobject::MessageBoard" : { + "category" : "community", + "isContainer" : 1 + }, + "WebGUI::Asset::Wobject::MultiSearch" : { + "category" : "intranet" + }, + "WebGUI::Asset::Wobject::Navigation" : { + "category" : "utilities" + }, + "WebGUI::Asset::Wobject::NewsletterCollection" : { + "category" : "basic" + }, + "WebGUI::Asset::Wobject::Poll" : { + "category" : "basic" + }, + "WebGUI::Asset::Wobject::ProjectManager" : { + "category" : "intranet" + }, + "WebGUI::Asset::Wobject::SQLReport" : { + "category" : "utilities" + }, + "WebGUI::Asset::Wobject::Search" : { + "category" : "basic" + }, + "WebGUI::Asset::Wobject::Shelf" : { + "category" : "shop" + }, + "WebGUI::Asset::Wobject::StockData" : { + "category" : "intranet" + }, + "WebGUI::Asset::Wobject::StoryArchive" : { + "category" : "community", + "isContainer" : 1 + }, + "WebGUI::Asset::Wobject::StoryTopic" : { + "category" : "community" + }, + "WebGUI::Asset::Wobject::Survey" : { + "category" : "community" + }, + "WebGUI::Asset::Wobject::SyndicatedContent" : { + "category" : "utilities" + }, + "WebGUI::Asset::Wobject::Thingy" : { + "category" : "intranet" + }, + "WebGUI::Asset::Wobject::TimeTracking" : { + "category" : "intranet" + }, + "WebGUI::Asset::Wobject::UserList" : { + "category" : "intranet" + }, + "WebGUI::Asset::Wobject::WeatherData" : { + "category" : "intranet" + }, + "WebGUI::Asset::Wobject::WikiMaster" : { + "category" : "community", + "isContainer" : 1 + } + }, + "authMethods" : [ + "LDAP", + "WebGUI", + "Twitter" + ], + "cacheType" : "WebGUI::Cache::FileCache", + "contentHandlers" : [ + "WebGUI::Content::Prefetch", + "WebGUI::Content::Maintenance", + "WebGUI::Content::Referral", + "WebGUI::Content::AssetManager", + "WebGUI::Content::AssetDiscovery", + "WebGUI::Content::PassiveAnalytics", + "WebGUI::Content::SetLanguage", + "WebGUI::Content::AjaxI18N", + "WebGUI::Content::Account", + "WebGUI::Content::AssetHistory", + "WebGUI::Content::FilePump", + "WebGUI::Content::Wizard", + "WebGUI::Content::Operation", + "WebGUI::Content::Setup", + "WebGUI::Content::Shop", + "WebGUI::Content::NewsletterManager", + "WebGUI::Content::SiteIndex", + "WebGUI::Content::Asset", + "WebGUI::Content::NotFound" + ], + "cookieName" : "wgSession", + "dbpass" : "123qwe", + "dbuser" : "webgui", + "defaultTemplateParser" : "WebGUI::Asset::Template::HTMLTemplate", + "disableCache" : 0, + "dsn" : "DBI:mysql:www_example_com;host=db", + "enableSaveAndCommit" : 0, + "enableSimpleSSO" : 0, + "enableStreamingUploads" : "0", + "enableSurveyExpressionEngine" : 0, + "exportBinaryExtensions" : [ + "html", + "htm", + "txt", + "pdf", + "jpg", + "css", + "gif", + "png", + "doc", + "xls", + "xml", + "rss", + "bmp", + "mp3", + "js", + "fla", + "flv", + "swf", + "pl", + "php", + "php3", + "php4", + "php5", + "ppt", + "docx", + "zip", + "tar", + "rar", + "gz", + "bz2" + ], + "extrasPath" : "/data/WebGUI/www/extras", + "extrasURL" : "/extras", + "gateway" : "/", + "graphingPlugins" : [ + "WebGUI::Image::Graph::Pie", + "WebGUI::Image::Graph::XYGraph::Bar", + "WebGUI::Image::Graph::XYGraph::Line" + ], + "ldapAlias" : { + "companyName" : "o", + "email" : "mail", + "firstName" : "givenName", + "lastName" : "sn" + }, + "macros" : { + "#" : "Hash_userId", + "/" : "Slash_gatewayUrl", + "@" : "At_username", + "AOIHits" : "AOIHits", + "AOIRank" : "AOIRank", + "AdSpace" : "AdSpace", + "AdminBar" : "AdminBar", + "AdminText" : "AdminText", + "AdminToggle" : "AdminToggle", + "AssetProperty" : "AssetProperty", + "AssetProxy" : "AssetProxy", + "BackToSite" : "BackToSite", + "CanEditText" : "CanEditText", + "CartItemCount" : "CartItemCount", + "ConvertUTCToTZ" : "ConvertUTCToTZ", + "D" : "D_date", + "DeactivateAccount" : "DeactivateAccount", + "EditableToggle" : "EditableToggle", + "Extras" : "Extras", + "FetchMimeType" : "FetchMimeType", + "FilePump" : "FilePump", + "FileUrl" : "FileUrl", + "FormField" : "FormField", + "GroupAdd" : "GroupAdd", + "GroupDelete" : "GroupDelete", + "GroupText" : "GroupText", + "H" : "H_homeLink", + "If" : "If", + "International" : "International", + "L" : "L_loginBox", + "LastModified" : "LastModified", + "LastModifiedBy" : "LastModifiedBy", + "LoginToggle" : "LoginToggle", + "MiniCart" : "MiniCart", + "Page" : "Page", + "PageTitle" : "PageTitle", + "PageUrl" : "PageUrl", + "PickLanguage" : "PickLanguage", + "RandomAssetProxy" : "RandomAssetProxy", + "RandomThread" : "RandomThread", + "RenderThingData" : "RenderThingData", + "RootTitle" : "RootTitle", + "Spacer" : "Spacer", + "SpectreCheck" : "SpectreCheck", + "StorageUrl" : "StorageUrl", + "Thumbnail" : "Thumbnail", + "TwitterLogin" : "TwitterLogin", + "User" : "User", + "UsersOnline" : "UsersOnline", + "ViewCart" : "ViewCart", + "a" : "a_account", + "c" : "c_companyName", + "e" : "e_companyEmail", + "r" : "r_printable", + "u" : "u_companyUrl" + }, + "maximumAssets" : 0, "mobileUserAgents" : [ "AvantGo", "DoCoMo", @@ -1114,19 +615,134 @@ "Windows CE", "Opera Mini" ], - -# For the siteIndex content plugin. Whether or not the auto-generated siteIndex should -# show hidden pages + "paymentDrivers" : [ + "WebGUI::Shop::PayDriver::Cash", + "WebGUI::Shop::PayDriver::ITransact", + "WebGUI::Shop::PayDriver::PayPal::PayPalStd", + "WebGUI::Shop::PayDriver::PayPal::ExpressCheckout", + "WebGUI::Shop::PayDriver::CreditCard::AuthorizeNet", + "WebGUI::Shop::PayDriver::Ogone" + ], + "profileModuleIdentifier" : "profile", + "registrationSteps" : [ + "WebGUI::Registration::Step::MailingSubscribe" + ], + "richEditorsUseAssetUrls" : 1, + "runOnLogin" : "", + "runOnLogout" : "", + "searchIndexerPlugins" : { + "htm" : "/bin/cat", + "html" : "/bin/cat", + "readme" : "/bin/cat", + "txt" : "/bin/cat" + }, + "shippingDrivers" : [ + "WebGUI::Shop::ShipDriver::FlatRate", + "WebGUI::Shop::ShipDriver::USPS", + "WebGUI::Shop::ShipDriver::USPSInternational", + "WebGUI::Shop::ShipDriver::UPS" + ], "siteIndex" : { "showHiddenPages" : 0 }, - -# An array of SPAM words. Used in the Post and WikiPage to block spam by sending the asset directly -# to the trash. - "spamStopWords" : [ + "sitename" : [ + "localhost", + "www.example.com", + "example.com" ], - -# A flag to enable a very simple SSO mechanism using sessionIds. - "enableSimpleSSO" : 0 - + "spamStopWords" : [], + "spectreIp" : "127.0.0.1", + "spectrePort" : 32133, + "spectreSubnets" : [ + "127.0.0.1/32" + ], + "sslEnabled" : 0, + "taxDrivers" : [ + "WebGUI::Shop::TaxDriver::Generic", + "WebGUI::Shop::TaxDriver::EU" + ], + "templateParsers" : [ + "WebGUI::Asset::Template::HTMLTemplate" + ], + "uploadsPath" : "/data/WebGUI/www/uploads", + "uploadsURL" : "/uploads", + "urlHandlers" : [ + { + "^/extras" : "WebGUI::URL::PassThru" + }, + { + "^/uploads/dictionaries" : "WebGUI::URL::Unauthorized" + }, + { + "^/uploads" : "WebGUI::URL::Uploads" + }, + { + "^/\\*give-credit-where-credit-is-due\\*$" : "WebGUI::URL::Credits" + }, + { + "^/abcdefghijklmnopqrstuvwxyz$" : "WebGUI::URL::Snoop" + }, + { + ".*" : "WebGUI::URL::Content" + } + ], + "workflowActivities" : { + "None" : [ + "WebGUI::Workflow::Activity::ArchiveOldStories", + "WebGUI::Workflow::Activity::ArchiveOldThreads", + "WebGUI::Workflow::Activity::CalendarUpdateFeeds", + "WebGUI::Workflow::Activity::CleanCookieJars", + "WebGUI::Workflow::Activity::CleanDatabaseCache", + "WebGUI::Workflow::Activity::CleanFileCache", + "WebGUI::Workflow::Activity::CleanLoginHistory", + "WebGUI::Workflow::Activity::CleanTempStorage", + "WebGUI::Workflow::Activity::CreateCronJob", + "WebGUI::Workflow::Activity::DecayKarma", + "WebGUI::Workflow::Activity::DeleteExpiredSessions", + "WebGUI::Workflow::Activity::ExpireEmsCartItems", + "WebGUI::Workflow::Activity::ExpireGroupings", + "WebGUI::Workflow::Activity::ExpireSubscriptionCodes", + "WebGUI::Workflow::Activity::GetSyndicatedContent", + "WebGUI::Workflow::Activity::NotifyAdminsWithOpenVersionTags", + "WebGUI::Workflow::Activity::PurgeOldAssetRevisions", + "WebGUI::Workflow::Activity::PurgeOldTrash", + "WebGUI::Workflow::Activity::RemoveOldCarts", + "WebGUI::Workflow::Activity::SendQueuedMailMessages", + "WebGUI::Workflow::Activity::SummarizePassiveProfileLog", + "WebGUI::Workflow::Activity::SyncProfilesToLdap", + "WebGUI::Workflow::Activity::TrashClipboard", + "WebGUI::Workflow::Activity::TrashExpiredEvents", + "WebGUI::Workflow::Activity::SummarizePassiveAnalytics", + "WebGUI::Workflow::Activity::BucketPassiveAnalytics", + "WebGUI::Workflow::Activity::ExpirePurchasedThingyRecords", + "WebGUI::Workflow::Activity::SendQueuedMailings" + ], + "WebGUI::Asset" : [ + "WebGUI::Workflow::Activity::UpdateAssetSubscribers" + ], + "WebGUI::Asset::Wobject::Thingy" : [ + "WebGUI::Workflow::Activity::NotifyAboutThing" + ], + "WebGUI::User" : [ + "WebGUI::Workflow::Activity::CreateCronJob", + "WebGUI::Workflow::Activity::NotifyAboutUser", + "WebGUI::Workflow::Activity::ActivateUser", + "WebGUI::Workflow::Activity::DeactivateUser", + "WebGUI::Workflow::Activity::WaitForUserConfirmation", + "WebGUI::Workflow::Activity::DeleteUser" + ], + "WebGUI::VersionTag" : [ + "WebGUI::Workflow::Activity::CommitVersionTag", + "WebGUI::Workflow::Activity::CreateCronJob", + "WebGUI::Workflow::Activity::ExportVersionTagToHtml", + "WebGUI::Workflow::Activity::NotifyAboutVersionTag", + "WebGUI::Workflow::Activity::RequestApprovalForVersionTag", + "WebGUI::Workflow::Activity::RequestApprovalForVersionTag::ByCommitterGroup", + "WebGUI::Workflow::Activity::RequestApprovalForVersionTag::ByLineage", + "WebGUI::Workflow::Activity::RollbackVersionTag", + "WebGUI::Workflow::Activity::TrashVersionTag", + "WebGUI::Workflow::Activity::UnlockVersionTag", + "WebGUI::Workflow::Activity::WaitUntil" + ] + } } diff --git a/lib/Spectre/Admin.pm b/lib/Spectre/Admin.pm index 39da82de9..fe50b805a 100644 --- a/lib/Spectre/Admin.pm +++ b/lib/Spectre/Admin.pm @@ -155,6 +155,7 @@ sub loadSiteData { } else { my $siteData = {}; + print "Reading site configs. $url responded with: " . $response->content . "\n"; eval { $siteData = JSON::decode_json($response->content); }; if ($@) { $self->error("Couldn't fetch Spectre configuration data for $key : $@"); diff --git a/lib/WebGUI/Asset/RichEdit.pm b/lib/WebGUI/Asset/RichEdit.pm index 96f80e3d2..982b25548 100644 --- a/lib/WebGUI/Asset/RichEdit.pm +++ b/lib/WebGUI/Asset/RichEdit.pm @@ -19,7 +19,7 @@ use WebGUI::Asset; use WebGUI::Form; use WebGUI::Utility; use WebGUI::International; -use JSON; +use JSON -convert_blessed_universally; our @ISA = qw(WebGUI::Asset); @@ -664,9 +664,10 @@ EOHTML1 if ( $ask ) { $config->{mode} = "none"; } + $self->session->log->debug("config: $config->{mode} "); $out .= $self->getLoadPlugins; - $out .= "\ttinyMCE.init(" . JSON->new->pretty->encode( $config ) . " );\n"; + $out .= "\ttinyMCE.init(" . JSON->new->allow_blessed->pretty->encode( $config ) . " );\n"; $out .= ""; } diff --git a/lib/WebGUI/Crud.pm b/lib/WebGUI/Crud.pm index 7afd7faf8..a83ac72f3 100644 --- a/lib/WebGUI/Crud.pm +++ b/lib/WebGUI/Crud.pm @@ -233,7 +233,7 @@ sub crud_createTable { my $tableName = $class->crud_getTableName($session); $class->crud_dropTable($session); $db->write('create table '.$dbh->quote_identifier($tableName).' ( - '.$dbh->quote_identifier($class->crud_getTableKey($session)).' CHAR(22) binary not null primary key, + '.$dbh->quote_identifier($class->crud_getTableKey($session)).' CHAR(22) binary not null default "" primary key, sequenceNumber int not null default 1, dateCreated datetime, lastUpdated datetime @@ -468,7 +468,7 @@ sub crud_updateTable { my $notNullClause = ($isKey || $defaultValue ne "") ? "not null" : ""; my $defaultClause = ''; if ($fieldType !~ /(?:text|blob)$/i) { - $defaultClause = "default ".$dbh->quote($defaultValue) if ($defaultValue ne ""); + $defaultClause = "default ".$dbh->quote($defaultValue); } if (exists $tableFields{$property}) { my $changed = 0;