Complete quota upgrades with coupons. Also fix equals() and hashCode() for Invitations to consider the name or its components.
- Initial implementation of quota coupon workflow. Userclass modifications are not happening yet.- Factor out the common servlet methods into a base class.- Style the error messages in registration and coupons.
Prettify the jsp pages.
Set all required objectClass attributes when adding an entry to LDAP. Also consistently encode and decode request parameters on success and errors.
Use firstname & lastname instead of full name for more flexibility and escape commas in property file.
Add a user registration flow. Registration can be open for all, or limited to issued invitation codes, as configured in gss.properties.
Add a custom error page for HTTP status 503.
Make sure nocache files are never cached and cache files are cached for a year. This way redeployments should never require cleaning the browser cache again. Also, cache everything else for 40 days, to make the application startup snappier.
Add a custom error page for 403 errors and apply the main site style to all error pages.
Remove the redundant gss top-level directory.