Commit graph

593 commits

Author SHA1 Message Date
Benjamin Renard
e099a27533 Add dynamic groups support (with cache members attributes)
Add LSaddon dyngroup with feature to handle update static cache members
attributes on users or dyngroup URI changes. The update process could
also be runned using CLI update_dyngroups_members_cache command
(allowing cron task configuration).

LSexample also evoluate to add example of dynamic groups implementation.
On this occasion, the restore_lsexample script was completely rewrited.
2021-07-21 19:42:22 +02:00
Benjamin Renard
a7356f5e67 LSformRules: configure CLI parameters autocompleters 2021-07-21 16:35:02 +02:00
Benjamin Renard
f635ad609a Add test_form_rule CLI command
You have to manually load LSformRule class to use this command, for 
instance :

ldapsaisie -L LSformRule test_form_rule integer 12
2021-07-21 16:03:33 +02:00
Benjamin Renard
18cc960755 Add LSformRule_numberOfValues 2021-07-19 16:54:41 +02:00
Benjamin Renard
531991a1e5 LSform/LSformRule: Handle rule without options or message 2021-07-19 16:54:41 +02:00
Benjamin Renard
3298320b3d LSform / LSformRule: only show default error message if rule does not trigger itself an error 2021-07-19 16:54:41 +02:00
Benjamin Renard
2a0981a21e Fix displaying toggle-menu button in responsive view 2021-07-19 16:54:41 +02:00
Benjamin Renard
f07e10c40e Update french translation 2021-07-12 19:00:08 +02:00
Benjamin Renard
096b1d3301 LSform: display fields errors in same order as triggered 2021-07-12 18:59:47 +02:00
Benjamin Renard
0af81bf0a3 Improve LSformRules to throw LSformRuleException with error details 2021-07-12 18:59:34 +02:00
Benjamin Renard
9315acc545 Remove miss commited file 2021-07-12 18:29:44 +02:00
Benjamin Renard
ba8b78706a jsonCompositeValue & supannCompositeValue: fix checking value method
Use LSformRule::validate_values() to check value instead of 
reimplementing incomplete checking method.
2021-07-12 17:57:07 +02:00
Benjamin Renard
988d744836 LSformRule: add possibility to throw custom exception to provide error details 2021-07-12 17:54:08 +02:00
Benjamin Renard
16c6d9fa6e Add preprod CSS & SVG image to easily add a watermark 2021-07-09 18:13:46 +02:00
Benjamin Renard
9469103f0e Add footer with LdapSaisie version 2021-07-08 10:39:09 +02:00
Benjamin Renard
cc07f293ab LSformElement_supannCompositeAttribute: fix handling field JS reinitialization for date components 2021-07-07 18:32:15 +02:00
Benjamin Renard
a0fc721776 LSformElement_supannCompositeAttribute: fix some PHP warnings in template 2021-07-07 17:53:12 +02:00
Benjamin Renard
3161ace3b7 LSformElement_supannCompositeAttribute::getPostData(): fix handing empty form value 2021-07-07 17:50:56 +02:00
Benjamin Renard
e8b8dd1730 supannRessourceEtat & supannRessourceEtatDate: fix parsing & formating optional components value 2021-07-07 17:48:45 +02:00
Benjamin Renard
3c6ce596d9 LSsession::getLSuserObject(): improve errors logging 2021-07-07 16:27:35 +02:00
Benjamin Renard
3c02b94085 supannCompositeAttribute: fix clearing value 2021-07-07 16:26:55 +02:00
Benjamin Renard
6e98cfef20 supannRessourceEtat & supannRessourceEtatDate: fix parsing optional components value 2021-07-07 16:20:00 +02:00
Benjamin Renard
25162f406d supannRessourceEtat & supannRessourceEtatDate: add empty possible value to required components to allow empty value 2021-07-07 13:45:00 +02:00
Benjamin Renard
3c7ec2890a API / Show an object: make API return all accessible attribute
The method now return all accessible attributes and not only thow who 
are configured to be displayed in view
2021-06-30 18:11:26 +02:00
Benjamin Renard
6bc1e46afb Fix tmp files access 2021-06-29 17:00:37 +02:00
Benjamin Renard
0b850e8acb LSlang: fix handling locales that only existing in local directory 2021-06-29 16:50:25 +02:00
Benjamin Renard
516cc12d1b LSlang: fix loading alternative lang files in local directory 2021-06-29 16:46:50 +02:00
Benjamin Renard
b936decf89 withoutAccents(): use unidecode lib if available 2021-06-28 16:22:26 +02:00
Benjamin Renard
afb67b02e9 LSurl: add request HTTP method check that must match with one of supported by handler (default: GET or POST) 2021-06-24 10:21:50 +02:00
Benjamin Renard
c45f884aa1 LSrelation: add display_name_format parameter 2021-06-21 12:31:49 +02:00
Benjamin Renard
78de233321 API: add search parameters in return on LSobject search 2021-06-14 11:48:07 +02:00
Benjamin Renard
0360ab7951 API: add keepParamsBetweenSearches on LSobject search 2021-06-14 11:46:44 +02:00
Benjamin Renard
36eae85bc3 LSexample / personalTitle: remove Ms deprecated possible value 2021-06-11 18:29:52 +02:00
Benjamin Renard
df57967669 LSattr_html::select_box: add inline parameter 2021-06-11 18:26:25 +02:00
Benjamin Renard
bc652f81f8 Improve SUPANN attributes CSS 2021-06-11 17:58:31 +02:00
Benjamin Renard
107d8ba0af LSformElement supannRessourceEtat & supannRessourceEtatDate: do not check etat value on parsing attribute value 2021-06-11 16:43:59 +02:00
Benjamin Renard
c87f609610 LSformElement_supannLabeledValue: improve API mode 2021-06-11 16:36:19 +02:00
Benjamin Renard
c533aecc34 LSformElement_supannCompositeAttribute: handle API/CLI mode 2021-06-11 16:33:42 +02:00
Benjamin Renard
7c45c4bb8c LSformElement_supannCompositeAttribute: fix PHP syntax error 2021-06-11 16:22:32 +02:00
Benjamin Renard
9879dd3eda LSaddon SUPANN::supannParseCompositeValue(): check global value integrity 2021-06-11 16:21:57 +02:00
Benjamin Renard
72933c9408 Update french translation according to recent changes on LSaddon::supann 2021-06-11 14:37:19 +02:00
Benjamin Renard
ef2271e7eb Add support of supannRessourceEtat & supannRessourceEtatDate attributes 2021-06-11 14:28:08 +02:00
Benjamin Renard
88bb4eef49 LSformElement_supannCompositeAttribute: add flexibility
- Add possibility to override parse/format value methods to handle
  different composite value formats
- Add possibility to configure date components LDAP format
2021-06-11 14:25:52 +02:00
Benjamin Renard
441b5d0af9 LSformElement_supannLabeledValue: Add validation of POST values from configured nomenclatures 2021-06-11 14:19:03 +02:00
Benjamin Renard
7e68b42b4c Add support of some SUPANN attributes
Add support of following SUPANN attributes:
- supannEtuDiplome
- supannEtuElementPedagogique
- supannEtuEtape
- supannEtuRegimeInscription
- supannEtuSecteurDisciplinaire
- supannEtuTypeDiplome

For each, a new specific LSattr_html & LSformElement class was added,
and a function is provided to generate then from supannEtuInscription
attribute values.
2021-06-11 14:17:42 +02:00
Benjamin Renard
11f32dea04 LSaddon::SUPANN: fix nomenclatures sorting problem 2021-06-11 11:28:15 +02:00
Benjamin Renard
83e795044f LSattr_ldap_sambaAcctFlagsparse_flags(): fix handling null|empty value 2021-06-10 19:02:19 +02:00
Benjamin Renard
8dbbda801a LSattr_ldap::naiveDate: Add format option 2021-06-10 19:01:22 +02:00
Benjamin Renard
eccb234210 LSaddon::supann: Fix typo in previous commit 2021-06-10 18:50:29 +02:00
Benjamin Renard
159b3fbe7e Fix PHP warning 2021-06-10 18:45:39 +02:00
Benjamin Renard
40fdc92451 Code cleaning: fix tabs 2021-06-10 18:45:00 +02:00
Benjamin Renard
febb83e39d Update french translation according to recent changes on LSaddon::supann 2021-06-10 18:06:19 +02:00
Benjamin Renard
1683cadd73 LSaddon::supann: add new components of supannEtuInscription attribute (SUPANN 2021) 2021-06-10 17:58:03 +02:00
Benjamin Renard
bf28a6ea94 LSaddon::supann: rework on nomenclatures loading & add support of supannCodePopulation, supannEmpProfil & supannExtProfil 2021-06-10 17:56:34 +02:00
Benjamin Renard
cab8c2e66d LSform: fix typo 2021-06-09 18:52:26 +02:00
Benjamin Renard
1aed362863 LSformElement::supannLabeledValue: Fix typo 2021-06-09 18:51:52 +02:00
Benjamin Renard
ade6a031dc Add some missing SUPANN label images 2021-06-09 18:38:29 +02:00
Benjamin Renard
0f791ee3cc LSaddon::supann: add support for supannOIDCGenre attribute 2021-06-09 15:52:23 +02:00
Benjamin Renard
6dcae071b5 LSaddon::supann: Normalize affiliations & civilites nomenclatures 2021-06-09 15:50:27 +02:00
Benjamin Renard
0ac0a7e068 Add support for supannMailPrive, supannAdressePostalePrivee and supannTelephonePrive attributes 2021-06-09 15:48:46 +02:00
Benjamin Renard
077a44fdf9 LSform: fix displaying multiple errors on same field (on Ajax submit) 2021-06-09 14:48:35 +02:00
Benjamin Renard
b104454603 LSaddon::supann: add eduPersonUniqueId() 2021-06-03 18:16:58 +02:00
Benjamin Renard
2a1d079717 LSformElement::supannLabeledValue: fix unparsable value display 2021-06-03 17:17:09 +02:00
Benjamin Renard
631502d9c2 LSsearch::setParamsFromRequest(): fix error handling filter parameter 2021-05-25 10:19:16 +02:00
Benjamin Renard
09d1aeb020 routes.php: fix error calling LSsession::addErrorCode() vs LSerror::addErrorCode() 2021-05-25 10:15:37 +02:00
Benjamin Renard
4b634e408d LSldapObject: fix triggering after_modify event on create 2021-05-21 11:29:57 +02:00
Benjamin Renard
59d6d0865d LSformElement::password: fix using LSldapobject getDisplayFData method instead of getFData 2021-05-21 11:29:57 +02:00
Benjamin Renard
7005100ac4 LSioFormat: handle multiple formats for generated fields 2021-04-27 12:13:32 +02:00
Benjamin Renard
6d95f9bfd5 LSauthMethod: fix PHP warning 2021-04-14 16:09:03 +02:00
Benjamin Renard
c81e2d0ee3 LSformElement::mail: fix duplicated email JS button 2021-04-14 15:55:38 +02:00
Benjamin Renard
639f46d8a4 Add LSdefaut copyable feature and use it in showTechInfo 2021-04-14 15:46:36 +02:00
Benjamin Renard
2b6b8ce270 Fix project URLs and list emails addresses 2021-04-13 18:04:19 +02:00
Benjamin Renard
d637a570f1 LSattr_html::valueWithUnit: fix handling zero value 2021-03-25 15:52:51 +01:00
Benjamin Renard
dff2aa8b46 light-blue.css: fix handling LSformElement_valueWithUnit width 2021-03-25 15:36:07 +01:00
Benjamin Renard
6cce15ddf5 pwdPolicy: improve duration attributes 2021-03-25 15:35:38 +01:00
Benjamin Renard
573737adfd LSio::import/export: set timeout according to the number of objects 2021-03-23 16:40:03 +01:00
Benjamin Renard
0ffbf3274a API::search method: set timeout according to the number of objects in response 2021-03-23 16:34:21 +01:00
Benjamin Renard
15823ad677 API::search method: add attributesDetails parameter 2021-03-23 14:44:01 +01:00
Benjamin Renard
84c3cd0d9b API::search method: fix handling custom attributes 2021-03-23 14:28:40 +01:00
Benjamin Renard
d0397ec41e LSattribute & LSattr_html: fix handling current/provided data 2021-03-23 14:27:27 +01:00
Benjamin Renard
3ddc51004f LSformElement::image: fix bug deleting current image 2021-03-23 14:23:33 +01:00
Benjamin Renard
0e2911dfe5 LSformElement::image: fix getApiValue() method on multiple values 2021-03-23 12:38:36 +01:00
Benjamin Renard
f960b2d394 API: search method now return true attributes value as handle by LdapSaisie (instead of raw attributes's values) 2021-03-23 12:37:45 +01:00
Benjamin Renard
60d67f3123 pwdFailureTime: fix/improve no_value_label 2021-03-19 16:31:30 +01:00
Benjamin Renard
640c0c1d70 LSattr_ldap::pwdHistory: change timezone to local before displaying 2021-03-19 14:11:52 +01:00
Benjamin Renard
96c7e33034 API objects list method: add as_list parameter 2021-03-17 18:37:19 +01:00
Benjamin Renard
78fedd79b2 LSaccessRightsMatrixView: handle inherited rights from user LSprofiles 2021-03-16 17:52:08 +01:00
Benjamin Renard
3703d0330e LSaccessRightsMatrixView: handle LSform layout to ordering attributes 2021-03-16 17:48:49 +01:00
Benjamin Renard
3d9b3c2947 LSsession::displayAjaxReturn(): Adjust HTTP returned code on unsuccessfull request 2021-03-11 17:29:20 +01:00
Benjamin Renard
825b5eb52f Ppolicy : fix french translation (again) 2021-03-03 19:24:26 +01:00
Benjamin Renard
67774a6832 LSformElement :: mail: Move autocomplete feature in text parent class 2021-03-03 14:34:06 +01:00
Benjamin Renard
b26e21fb51 Ppolicy : fix french translation (again) 2021-03-02 16:28:37 +01:00
Benjamin Renard
7578b76737 Ppolicy : fix french translation 2021-03-02 09:57:55 +01:00
Benjamin Renard
d23c84a87d ligth-blue.css: fix handling ul.LSselect_selectable_object_types 2021-02-25 15:49:15 +01:00
Benjamin Renard
44ab0ecab5 LSexample: add sysaccounts pwdPolicy 2021-02-24 20:11:50 +01:00
Benjamin Renard
ba2de0f9ec LSexample: Add Ppolicy support 2021-02-24 19:15:42 +01:00
Benjamin Renard
c9f63fa5e9 Fix some PHP warnings 2021-02-23 20:03:04 +01:00
Benjamin Renard
3151721838 Fix/improve LSobject & LSsearch customActions code 2021-02-23 20:02:45 +01:00
Benjamin Renard
5b7b22dde1 Fix/improve/factorize search pagination
First page of a search is now one instead of zero. The pagination.tpl 
template file contain factorized code to display pages list HTML code.
2021-02-22 17:31:57 +01:00
Benjamin Renard
8c317e127c LSattribute::addToForm(): fix checking user rights before adding/freezing it 2021-02-22 15:50:43 +01:00
Benjamin Renard
a217e42a19 LSioFormat: Don't warn about non-added export attribute, just debug it 2021-02-18 16:02:46 +01:00
Benjamin Renard
4c4983b634 LSioFormat: Add some checks/logs during export process 2021-02-18 15:51:46 +01:00
Benjamin Renard
6098f3bc5f LSioFormatCSV: remove unused require on 'File/CSV/DataSource.php' 2021-02-18 15:49:51 +01:00
Benjamin Renard
6b4bc036e3 LSaddon::supann: add generate_supann_codeEtablissement_uai_nomenclature CLI command 2021-02-17 17:20:52 +01:00
Benjamin Renard
60eca6967c LSaddon::supann: Update/clean UAI nomenclatures 2021-02-17 17:17:51 +01:00
Benjamin Renard
68b1c182db LSaddon::supann: Update/clean nomenclatures 2021-02-17 11:58:55 +01:00
Benjamin Renard
fb62ce2eed Fix reconnectAs() calls 2021-02-17 11:45:39 +01:00
Benjamin Renard
d27a59f807 Add LSobject import/export API methods 2021-02-08 12:42:00 +01:00
Benjamin Renard
82a236a67c LSattr_ldap_password: fix verify method for Salted SHA2 passwords 2021-02-08 11:11:23 +01:00
Benjamin Renard
f47e40a5ac LSio: fix isSubmit() method to handle GET or POST forms 2021-02-05 18:39:24 +01:00
Benjamin Renard
1e284f098a Regroup LSimport & LSexport classes in one common LSio class 2021-02-05 18:37:07 +01:00
Benjamin Renard
f36c989136 Add import & export CLI commands 2021-02-05 18:12:44 +01:00
Benjamin Renard
b8040e3d8b LSformElement::select: fix typo in last commit 2021-02-05 16:41:10 +01:00
Benjamin Renard
19dd343106 LSformElement::getApiValue(): add $details parameter
This parameter permit to control if the returned value contain or not 
details. By default (no details), the value used the format as accept by 
create/modify method. The details mode is more efficient to display the 
value.
2021-02-05 12:22:44 +01:00
Benjamin Renard
36a1719b26 LSexample/LSpeople: improve pagination config 2021-02-05 12:18:58 +01:00
Benjamin Renard
5f4798a5a1 Add export feature using existing LSioFormats 2021-02-05 12:18:26 +01:00
Benjamin Renard
7ecfa33afc import: fix some PHP warnings and update comments 2021-02-04 12:35:14 +01:00
Benjamin Renard
7af066f4c2 LSimport: code cleaning and reload form options after submiting 2021-02-04 11:52:26 +01:00
Benjamin Renard
a25b1e8c10 LSldapObject: clean updata/validate form data code to fix handling just check mode 2021-02-04 11:49:35 +01:00
Benjamin Renard
e05f0df20d Fix PHP warning 2021-02-04 10:33:13 +01:00
Benjamin Renard
16373e6904 Fix content-type on Ajax return 2021-02-04 10:22:10 +01:00
Benjamin Renard
724e9acedd Fix PHP5 error compatibility in last commit 2021-02-03 14:46:06 +01: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
e92bc10c8b LSldapObject: fix default $attrValues handling for updateObjectsInRelation/deleteOneObjectInRelation methods 2021-02-03 14:19:37 +01:00
Benjamin Renard
305d7447ff LSsession: Fix relationCanAccess() method and add debuging infos 2021-02-03 12:44:38 +01:00
Benjamin Renard
841b3d0bcf LSsearch::setParamsFromRequest(): add check on parameters load from request data 2021-02-02 20:42:02 +01:00
Benjamin Renard
eb8cfbf66a LSsearch: rename method setParamsFormPostData() to setParamsFromRequest() 2021-02-02 20:30:08 +01:00
Benjamin Renard
2544687b27 LSsession::checkAccess(): fix checking read right 2021-02-02 20:28:02 +01:00
Benjamin Renard
cb0106fda9 LSurlRequest: fix fatal error on logging 2021-01-29 17:12:29 +01:00
Benjamin Renard
ac7e042c2a LSattribute: add default LDAP & HTML type (ascii / text) 2021-01-29 15:59:13 +01:00
Benjamin Renard
40a17c3524 LSlang: improve generate_lang_file command
Improve detection in PHP files, add detection in LSaddons/LSauthMethod 
config files and includes PHP files. Add -I/--include-upstream parameter 
(and use it for generate_ldapsaisie_pot command)
2021-01-29 15:23:22 +01:00
Benjamin Renard
bc9cc77cde LSattr_ldap::shadowExpire: fix to rounding method to avoid date change 2021-01-29 12:30:59 +01:00
Benjamin Renard
d48a3c2dc0 LSexample/LSpeople: fix sambaPwdCanChange as single-value 2021-01-29 12:00:03 +01:00
Benjamin Renard
29e499e1d6 LSldapObject::submitChange(): fix error renaming LSobject
Old RDN value was keep and block the update ot the other changed 
attributes.
2021-01-28 16:59:42 +01:00
Benjamin Renard
fadfe2d2ba LSldapObject::validateAttrData(): fix fatal errors on missing formated log messages 2021-01-28 16:57:51 +01:00
Benjamin Renard
2fec564d91 LSexample/LSgroup: upgrade generate_gidNumber_withSambaDomainObject to generate_samba_gidNumber 2021-01-28 16:43:48 +01:00
Benjamin Renard
9680f8a18e LSform: fix displaying error in form in case of global error 2021-01-18 15:04:14 +01:00
Benjamin Renard
957777d44f LSldapObject::validateAttrData(): fix checking LDAP validation result 2021-01-18 15:03:26 +01:00
Benjamin Renard
7ef6e57c49 LSldapObject::submitChange(): code cleaning 2020-12-22 19:46:57 +01:00
Benjamin Renard
a353ca5c37 LSldapObject::submitChange(): Add security check about isNew() return 2020-12-22 19:45:35 +01:00
Benjamin Renard
06b8fddc51 LSldapObject::validateAttrData(): check return type of LSldap::getNumberResult() 2020-12-22 19:44:51 +01:00
Benjamin Renard
89ecbb8a5c LSldap: fix search & getNumberResult methods to use basedn from configuration instead of empty one. 2020-12-22 19:43:50 +01:00
Benjamin Renard
14352da6bd LSformElement::jsonCompositeAttribute: Fix PHP warning 2020-12-22 19:32:14 +01:00
Benjamin Renard
514a2eb0fd Code cleaning 2020-12-22 18:42:56 +01:00
Benjamin Renard
7535530416 LSformRule: do not defined validate_one_by_one constant visibility
To keep compatibility with PHP < 7.1.
2020-12-22 18:05:28 +01:00
Benjamin Renard
43d2620f8e CLI search: add JSON output (with -j|--json parameters)
Futhermore, --pretty parameter also permit to prettify the JSON 
output.
2020-12-22 11:01:38 +01:00
Benjamin Renard
1c13aa7cdd CLI search: add --all parameter to permit to disable pagination 2020-12-22 11:00:49 +01:00
Benjamin Renard
f6f2e352bc CLI show: add JSON output (with -j|--json parameters)
Futhermore, -p|--pretty parameter also permit to prettify the JSON 
output.
2020-12-22 10:31:23 +01:00
Benjamin Renard
d39bba45fb CLI show: fix handling --raw-values parameter 2020-12-22 10:27:22 +01:00
Benjamin Renard
1428b5df62 LSattr_ldap::pwdHistory: fix fatal error on time encoding. 2020-12-21 14:54:37 +01:00