Add DAOs for EmailNotification/Template.
Add entities for EmailNotification/Template.
Add models for EmailNotification/Template.
Add Hibernate mapping for email tables.
Some changes to resources mapping.
Add classes for job scheduling of emails.
Code refactoring.
Test email button changes.
Add solution to get welcome page URL from system.
Remarks to method that adds new row to notification_queue table.
New role in Spring security.
New content of Edit E-mail templates page.
Now Libreplan can be run on Java8.
This implied some changes:
* Latest versions of hibernate use the Bean Validation API. This
implied renaming the imports and use ConstraintViolationException
instead of InvalidValue. Besides some constraints had to be renamed,
otherwise they wouldn't be recognized by Hibernate validation. In
the new version of Hibernate validator @AssertTrue can only be
applied to properties. So all methods it was applied to must follow
the is.* format.
Automatic execution of Bean Validation API is disabled, otherwise an
infinite loop would happen. This is because there are some
validation constraints that do launch queries to the database. This
causes a flush of the objects in the session and automatic
validation is called again.
* A new library for persisting JodaTime is necessary since
joda-time-hibernate is incompatible with hibernate 4. This library
can automatically register its types for Date conversion so they're
removed from configuration.
* Now, in some places, an InvalidDataAccessApiUsageException is thrown
instead of a DataIntegrityViolationException.
This is because no constraint is violated, the API is being used
incorrectly because a transient instance is being provided where a
persisted one was expected.
* In hibernate 4 listeners cannot be configured via properties.
HibernateDatabaseModificationsListener registers itself in its @PostConstruct method.
* ehcache classes used are now different.
It's not necessary, the standard strategy redirect to the original URL
and if it's the default one, IndexController will redirect to the user
default location.
Only bound users will have access to page "Personal Area > Home".
Moreover bound users will have access to expenses sheet edition form, even if
they don't have access to "Cost > Expenses" page.
Finally users with role ROLE_SUERUSER, ROLE_SUERUSER or ROLE_TIMESHEETS will
have access to monthly timesheets edition page.
FEA: ItEr76S30PermissionsEnhancements
New role ROLE_WS_SUBCONTRACTING has been created, now the web services are
separated in two parts:
* Common web services are allowed to be read by role ROLE_WS_READER and written
by role ROLE_WS_WRITER
* Subcontracting web services are allowed to be read and written by role
ROLE_WS_SUBCONTRACTING
In this way you can give access to a different companies to your subcontracting
services, however prevent them to access to the rest of your data (via common
web services).
FEA: ItEr76S30PermissionsEnhancements
For the moment the same behavior than before the authentication filter is kept.
Later it will be used to do some redirects depending on if the user is bound or
not to any resource.
In order to define a custom authentication filter it's needed to set
auto-config="false" see
http://static.springsource.org/spring-security/site/docs/2.0.x/reference/ns-config.html#ns-auto-config
We also need an entry point specified by "entry-point-ref" attribute.
FEA: ItEr76S28UserDashboard