Commit graph

9 commits

Author SHA1 Message Date
Benjamin Renard 9907e08f18 Code cleaning 2021-08-25 18:02:37 +02:00
Benjamin Renard a3aa857c78 Improve/fix LSdefaut / LSsession / LSerror / LSdebug / LSinfosBox 2021-08-25 16:50:29 +02:00
Benjamin Renard 2b6b8ce270 Fix project URLs and list emails addresses 2021-04-13 18:04:19 +02:00
Benjamin Renard 0ec390e1fe Add API feature
Some major changes have been made to handle this new feature :
- LSsession now have a flag about API mode. The displayTemplate() and
  displayAjaxReturn() methods have been adjust to correctly handle this
  mode.
- LSauth system have been adjust to handle a custom API mode :
  - LSauthMethod can support or not this mode : the $api_mode_supported
    permit to defined if supported (default, false). Currently, only
    HTTP (default in API mode) and annonymous mode support it.
  - An api_access parameter permit to configure witch type of user
    LSobject types could use the API. This flag must be set to True to
    allow a type of LSobject (default: False). In a same way, a
    web_access parameter now permit to disable Web access for some
    types of users (but this parameter is optional and its default value
    is True).
  - The HTTP method is the privileged first method for API mode. In this
    mode, if auth data aren't present in environment, it will request it
    by triggered a 403 HTTP error. Realm can be configured with new
    LSAUTHMETHOD_HTTP_API_REALM constant.
- The LStemplate system handle API mode to correctly react on errors: it
  return a JSON answer instead of HTML page. Error pages also now return
  adjusted HTTP code (404 or 500).
- The LSurl system have been adjust to handle API mode :
  - On declaring handlers, we could now specify if it's an API view with
    new $api_mode paremeter of add_handler() method
  - The LSurlRequest object have a new attribute to check if it's an API
    request
  - The error_404() method handle the API mode to return JSON answer.
    Furthermore, if no handlers matched with the requested URL, API mode
    is automatically enabled if the requested URL starts with 'api/'.
- LSform implement it own API mode flag and a new submited flag that
  be toggle via the new setSubmited() method. Some major changes also
  occured on LSformElement classes to specifically handle API
  input/output for each types of attributes:
  - a new getApiValue() method permit to retrieve the API value of the
    attribute (on show API view)
  - the getPostData() method now have to correctly handle API input for
    the attribute (on create/modify API views). A programmatic way have
    been adopted for each types of attributes.
- The LSimport and LScli create/modify commands also evolved to enable
  API mode of the LSform. This permit to take advantage of the new
  capability of LSform/LSformElement to handle input values with a
  programmatic way.
- New routes have been add to handle API views. All this new routes
  start with 'api/1.0/' and use the same URL schema as the web UI. The
  API currently permit to search/show/add/modify/remove LSobjects and
  manages their relations.
2021-02-03 14:40:28 +01:00
Benjamin Renard a8e2ecc343 Translate LSerror message at formating/diplaying time
It's permit to be sure to translate message in the right user language, 
even if its context isn't loaded at error emission time.
2020-08-25 17:31:50 +02:00
Benjamin Renard 3ce495c2c3 LSerror: format error message at adding time
Format error message at adding time to make sure to be able to format 
it, even if the component triggered it is not loaded.
2020-08-07 16:11:32 +02:00
Benjamin Renard ba85e5c2fc LSerror: fix PHP error 2020-08-06 16:44:18 +02:00
Benjamin Renard 0b4e6d4104 LSerror: permit to control message escape method
Globally rework on this class to allow control escape method. Also 
change escape method for logs to use addslashes() instead of 
htmlentities().
2020-05-28 15:48:25 +02:00
Benjamin Renard 7098b3ee79 Massive change of files organisation to move all files outside web-root
The web-root directory now contains URL rewrite stuff. All PHP & static files are
in root src directory and are served via LSurl routes.
2020-05-06 12:17:35 +02:00
Renamed from public_html/includes/class/class.LSerror.php (Browse further)