-
Notifications
You must be signed in to change notification settings - Fork 1
Changelog
Ryan Fischbach edited this page Dec 13, 2016
·
43 revisions
- added Account::addMobileHardwareIdsForAutoLogin() which sets the "hardware_ids" field of returned Account information via the get() and getAll() endpoints.
- APIResponse::setError() added a boolean SetResponseCode parameter
- added Arrays::parseCsvParamsStringToArray() util method to convert a CSV string of params into a true associative 2D array.
- AuthBasic::removeStaleTokens() was broken since it compared a timestamp with a string, not a SQL error, but a logic error.
- introduced the MODEL_NAME constant inside app/models so that descendant websites may use IDirected->getProp( ModelClass::MODEL_NAME ) rather than a string which may get misspelled.
- refactored fingerprints/circumstances POST vars to parse auth_header_data as if constructed for the HTTP Authorization header so there is only one way to build/parse Broadway Auth data; easier to extend and fewer mistakes that way; modified ping/pong results; added ability to pre-provision hardware ID mapped to an auth account; added traits for HTTP Auth header to make it easier to understand.
- BrokenLeg now also provides mnemonic constants for a selection of HTTP error codes, so that the numeric constants for errors can be more obviously tied to those standard codes.
- Strings::var_dump() modified to avoid fetching data from DB Cursor objects (PDOStatements).
- OutputToCSV modified to accept any object with a fetch() method rather than specifically a PDOStatement.
- Created a new costume, IteratedSet, for enabling printing out DB Cursor objects (PDOStatements); modified "results_as_json" view to detect and use printToJson() method, if found; added APIResponse::printToJson() method.
- SqlBuilder adds a couple of methods for standardizing logging SQL failures and throwing DbExceptions.
- Finally figured out how to get a costume to get all its public properties (very useful for exporting data); updated ABitsCostume and ASimpleCostume to export only public properties by default.
- Created new AuthAccount API endpoints; updated Auth DB schema (AuthBasic model); updated Permissions and AuthGroups to accommodate as well; "is_active" flag can prevent logins if FALSE.
- Added CLI terminal effects (colors, bold, reverse, etc.).
- Actor static methods are now denied URL access by default
- Scene now permits a switch to specifically enable/disable the Pager mechanism (for export purposes).
- UserParameterException added INVALID_ARGUMENT_VALUE.
- Added WornForRestService::sendRequestToRestService().
- Login fixed to handle multiple sessions/windows/devices with anti-CSRF tokens correctly.
- Password reset now sets the anti-CSRF token correctly so a JavaScript font-end will actually work as intended.
- Upgrade feature (e.g. db schema changes) now displays the error message, if any; also calls the SetupDb::normalizeFeature() non-statically like it should (meaning it can be overridden now).
- Added anti-CSRF token mechanism to default Accounts and Rights views.
- Fixed OutputToCSV so that double-double-quotes ("") are used whenever double quotes are encountered within data; also check for "+" at start of field data to prevent Excel from converting value to formula, prepend with '=' before enclosure.
- Output to ICS (vCalendar format) now available.
- SetupDb moved into PropCloset so a website can descend from it.
- Move configs folder out from [site]/app/configs to just [site]/configs for new sites.
- Remove the "no_sessions" workaround which just causes more trouble than it is worth.
- Updated PasswordReset feature.
- Updated SqlBuilder to handle paged queries easier.
- Added UserParameterException.
- Updated CLI with a -h param to specify which config to use.
- Allow CLI to operate from any folder, not just from the app/cli subfolder.
- CLI capability introduced.
- getModel()/getProp() can now accept the full class name as its parameter.
- Saving list of configuration settings now returns those that were changed.
- AuthGroups & BitsGroups refactored to ensure protection from SQL Injection. Admins were the only ones capable of introducing such SQL Injection, so the threat for earlier versions is quite low.
- "Action" configuration setting introduced so that Buttons are now an option.
- Traits for various classes have been introduced.
- CSRF tokens now take advantage of the AuthBasic token mechanism, if available.
- The hidden input companion field for checkboxes now has its value default to "0".
- Actor refactored so the SEO URL transformation can be tweaked on an Actor-by-Actor basis now.
- The base Actor public methods cannot be called via URL by default.
- BrokenLeg converts Exceptions more completely so that more information is passed to the caller.
- Actor names are now converted to class names using the standard function instead of relying on PHP's case insensitive nature.
- Several ancestor class names changed so they did not share the same name as their descendant as website installation was starting to get confused about which class to load.
- Many new API endpoints exist so that framework features that used to require page renders to accomplish can now be done via a JavaScript front-end calling API routines in the background.
- Install now provides an API endpoint to accomplish the entire install process in one call. This allows automation such as Ansible to install a website entirely without human interaction.
- Boolean website settings that employed a checkbox widget now work properly when unchecking them.
- "Auth" website settings now editable by a non-titan group admin.
- PHP 5.5 deprecated code fixed.
- Strings::wordWrap() greatly improved to attempt to break on word boundaries.
- Improved security for permission related endpoints.
- Cookie management updated to allow HTTPOnly flag
- getProp() smarter in that lower case class names figured out just like Actor class names
- Registration cap website option added
- Costumes with toJson() methods respected if passed to the "results_as_json" view
- CommonMySql costume created to help simplify common model tasks.
- Newly introduced CSRF protection mechanism debugged
- Admin> Settings page now protected by CSRF protection mechanism
- Introduced login auto-lockout after X failed attempts per hour.
- Introduced CSRF protection for API's using "ajaj" prefix.
- Introduced non-cached-auth for API's using "api" prefix.
- Created a standardized API response object, if desired.
- Shutdown code that helps debugging Out of Memeory errors.
- Features introduced, version numbers can be displayed and now have meaning.
- The CSS classes
data-*have been renamed todb-*to avoid HTML5 class conflicts. - SqlBuilder costume class can now handle filters and orderby clauses as well as convert
"="operations into" IN ()"operations if the parameter data is an array. - Actor views will now additionally check
app/views/*for their named view PHP file before giving a 404 error so that site-wide views can be re-used rather than copied everywhere. The check is done after checking for the actor/action-specific view and the framework-included site-wide view file in use is theresults_as_json.phpview. - The base class object now contains
debugLog()which does not depend on debug settings in case you want to log something regardless of any of the "is debugging" const or vars such as logging a specific db error.
This version and anything prior was not versioned.