Created by Xperience, Inc. for use in our Open Source Projects (XIWA, SandSurfer) it is in a usable state (helper applications are not yet completed but will be in the near future) and so is being released to allow people to start trying out our projects, etc.
The PCX Portal provides management of Companies, Users and Applications. When you login, you are presented with your desktop and from there you can select an App to work with.
· HTML Document Object 2.17+
· DBI Wrapper 0.17+
· DBI (1.20+)
· DBD::Pg (1.01+) or Msql-Mysql-modules (1.2216+)
· Apache::Session (1.54)
· Storable Object (1.0.14+)
· MIME::Base64 (2.12+)
· Digest::MD5 (2.16+)
· Crypt::CBC (2.02+)
· Crypt::IDEA (1.01+)
· File::Temp (0.12+)
· XML::SAX (0.10+)
· XML::LibXML (1.51+)
· XML::NamespaceSupport (1.07+)
· Date::Manip (5.40+)
· apache (1.3.14+) - Seems to work better with 1.3.22 or higher
· perl (5.6.1, 5.8.0 or 5.8.2) - Not tested with anything higher
· expect (5.31+)
· PostgreSQL (7.3.x, not yet tested with 7.4.x) or MySQL (3.23.x)
· libxml2 (2.4.22+)
· DBI, DBD, Msql-Mysql-modules, Apache::Session, Storable Object, MIME-Base64, Digest::MD5, Crypt::CBC, Crypt::IDEA, File::Temp, XML::SAX, XML::NamespaceSupport and XML::LibXML can be gotten from CPAN.
What's New in This Release:
· Improving the error output such that setError() will now create and prefix all error strings it is passed with the callers function name and the '() - Error!n
' phrase internationalized.
· Adding postfixError() and prefixError() to allow you to add error strings to a current errorString at the beginning or end of the current error.
· Added the resetError() method to reset the error condition.
· Language phrase files are now named by the code of the language not the full name. Ex: English.pm -> en.pm
· Improved the error display code in the Language Phrase files.
· AUTOLOAD now outputs the caller trace when $self is not an object.
· createBaseURL now outputs the AppName when type = 'App'.
· Added support for a misc directory under the portal webspace.
· Fixed some install bugs in the install.pl script in regards to the cut command and linking to the cron jobs forgot the /usr/lib/pcx_portal prefix.
· Redid the colorScheme CSS definition to actually be real CSS and all I do is make sure they get output in the right order.
· Added apache config files for Debian and RedHat which will make getting the Portal up and running under Apache much nicer. They are in /etc/pcx_portal/apache and the rpm installer tries to add it to the RedHat config file automatically.
· Created apache.pcxportal which is the apache config file that setups /portal to be under /usr/share/pcx_portal/portal which is where we want things installed to now.
· fixed the pg_db_*.exp expect scripts so that they force a password prompt.
· Added generatePickerCode() to the Methods.pm module to allow creating the necessary form items in a cleaner way for color and calendar pickers.
· Added the getCurrentDate() method to Portal::Methods.
· I now use Date::Manip and Time::Local to work with dates. Added several other date methods to get dates, add offsets to dates, etc. which wrap around the Date::Manip, Time::Local and gmtime, localtime methods.
· All dates in the Portal are now ISO. The Portal DB is no longer setting the use US Date format when using PostgreSQL.
· Removed all uses of /bin/date from the Portal itself. Other Portal apps may still need to be worked on (XIWA in particular).
· Improved the setupDB.pl script after JT bugged me and provided the beginnings of the enhancement code. PostgreSQL support has been greatly enhanced so that checks are made and you are only informed of those things that need to be done. The portal user is attempted to be created automatically and it's password set. If this fails, then you will have to manually create still, but this is better. MySQL support will come in the future. (hint: patches welcome) The pg_hba.conf file can be edited by the script, but it only supports localhost (127.0.0.1) connections.
· Added the db_host fields to the app_tb, app_servers_tb and company_app_tb tables so that the applications can connect to their databases on different IP's than the web part is running on. This causes the database version to change from 2 to 3.
· Updated the appinstall.pl script so that it asks the user to specify the dbHost value when assigning the app to a company. This way each company can have their databases on different servers than the app overall instead of the old way of assuming the database was on the same box as the app.
· Implemented the user lockout feature to prevent an attacker from trying to brute force a username/password.
· Moved the config_tb helpers to Portal::Methods and added the necessary helper methods for the User Lockout feature to Portal::Methods.
· Added the ability to specify extra error details for missing and invalid entries. See the Portal::Base manpage for more details.
· urlBuilder now requires the baseUrl parameter so that I can return a complete url with the baseUrl?arguments all put together.
· Massive work on Portal::App so that the derived Portal Apps don't have to do any of the session setup, database connections, etc. The run() method is now provided by Portal::App and has been designed to make sure user permissions are checked as early as possible and the derived app still has the flexibility to do extra things before and after the specified state/command is sourced and run. Xiwa is the only app currently using this ability, but other apps may/should be using it in the future.
· Updated Portal::AppState to implement the States run() method and provide the closeApp code via processCloseAppEvent().
· Added setupCSS() method to handle creating an HTMLObject::Normal doc and getting the current colorScheme for the user and adding it to the $doc instance. Added a call to includeCoreJSFiles() in setupCSS() also.
· Debianized! We are no longer maintaining RedHat rpms as we don't use RedHat Linux anymore.