When getting settings from database, running across NULL loads default
setting for given option. Becuase entity unserializer always returned
NULLs instead of FALSEs due to bug in TextHelper, it ended up always
loading default settings (but only after reloading entity, setting it in
the settings page worked correctly until relog).
This fix is closely related to fde6fc2.
- Jobs specify main privilege and sub privileges separately
Rationale: increase maintenance, restrict what can be done runtime
- Renamed ChangeUser* to EditUser* (consistency with EditPost*)
- Simplified enum names and configuration reading
- IJob interface members must be explicitly implemented
Rationale: reduce chances of forgetting something, or typos in
inherited method names
- Invalid privileges names in configuration yield exceptions
- False booleans were serialized as NULLs, which lead to problems with
queries like 'SELECT ... WHERE NOT x'
- Fixed anonymous uploads
- More robust integer and boolean parsing in jobs
- Moved thumbs folder to public_html/
- Users can supply custom thumbs of any size and the system will treat
them like normal image
- Removed distinction between various thumb sizes in file system
- Introduced custom rewrite rule, which isn't exactly good-looking, but
its benefits far outweigh its shortcomings
- Loading up to 75 times faster (was: 100-300ms, is: 4-10ms on my
machine) thanks to removal of PHP proxying
Restored JobArgs approach. Previous introduction of hierarchic argument
definitions has backfired: it was confusing what class to take arguments
from, the concept of sharing arguments between different jobs was
unintelligible and one never knew where given argument was actually
defined.
This appraoch makes it easier to maintain the arguments list and
simplifies the code a lot.
- Fixed main page view
- Code moved from StaticPagesController to PostModel
- Code split into semantically meaningful methods
- Allowed anonymous featuring through API
- Added protection against automatic featuring of hidden post