mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-05-19 12:05:26 +02:00
Compare commits
492 commits
Author | SHA1 | Date | |
---|---|---|---|
151b229c3d | |||
118b784a5d | |||
2db4d0fbae | |||
bd98a8b8ef | |||
1a88707f87 | |||
4ce95e54b8 | |||
2ccf579125 | |||
171161ae18 | |||
d26c52400e | |||
62759330a8 | |||
5e9773a015 | |||
557db5d456 | |||
15f67ef00d | |||
753f47fa97 | |||
89c363bd80 | |||
e59ab4a94c | |||
87e58e6425 | |||
e9c49c242f | |||
e8781ab779 | |||
15e3ffe6ef | |||
34396a5fe1 | |||
Benjamin Renard | dc8e08b5d1 | ||
bf1a3affe4 | |||
2104187b14 | |||
78af62d428 | |||
2d08374a53 | |||
129cfa537b | |||
f176b626d5 | |||
f9bf3a7597 | |||
06654969d0 | |||
e985f50d8a | |||
59436c9fe4 | |||
1c42aa3a47 | |||
96d99f5b06 | |||
5998983315 | |||
5e8d625a34 | |||
7a4f0fac69 | |||
9384d2e312 | |||
e77a96066d | |||
c0e388f09b | |||
cfa2ff1e6d | |||
1639001a3c | |||
2de8c720b5 | |||
0a98056be9 | |||
c60730f25c | |||
aa197983a1 | |||
1b672f59e7 | |||
11a8448b0a | |||
95f60a534a | |||
961740c855 | |||
0c171789d3 | |||
05519c5432 | |||
fde66b2335 | |||
5376435d8b | |||
fa5b5ceb6d | |||
3a862ce93e | |||
fea76e7af2 | |||
6ff53b412e | |||
a4319237f2 | |||
a6d0f7d126 | |||
33e0687d1e | |||
b1ee3460b1 | |||
0eb0143921 | |||
425df3da3a | |||
1a2fe50ba2 | |||
7c48b8062b | |||
bc171e6092 | |||
b3cd453918 | |||
1c900320db | |||
65d1d50c3a | |||
087b7e3065 | |||
c98e31b7c6 | |||
cc9942019f | |||
513ed9a024 | |||
6ca8427d5d | |||
548315b248 | |||
4003fdfcfc | |||
341f555e0c | |||
27ad049ac7 | |||
99f83f326d | |||
c97d47ac00 | |||
823006937a | |||
7b7ff7e629 | |||
2d108c8b08 | |||
fa60f54b15 | |||
89ee2f1ec3 | |||
069dac2afe | |||
db491f51e7 | |||
2b52e863e6 | |||
3bbf770e33 | |||
48e5d45d32 | |||
e103bee065 | |||
13d83dbf75 | |||
80a50f98f1 | |||
140b000877 | |||
d387052068 | |||
1825ce429e | |||
4ec5769276 | |||
f3d6b10a9e | |||
58dbdcb7fe | |||
f3e7557421 | |||
85d6a87fcf | |||
29bfca1792 | |||
f8c38dd3b6 | |||
796e3287e9 | |||
2239120912 | |||
a529b8ce2b | |||
aae4751a41 | |||
1534a40c7b | |||
85592f94fd | |||
f113c87a15 | |||
68fcb6f81a | |||
e303706779 | |||
cbf1ff1769 | |||
a717f051b9 | |||
82b29e6abc | |||
98a5e6c1b3 | |||
4f69036f2f | |||
43cb6c3f93 | |||
1b38957235 | |||
f4f39d967e | |||
89a13d86c6 | |||
d80c15acc1 | |||
a3fc7bacfa | |||
d7ba794839 | |||
56e17a40f6 | |||
f53d868640 | |||
8e1aa74e12 | |||
ecaf2aeb13 | |||
20432adb14 | |||
bbde10bbf0 | |||
8a02680114 | |||
e71823b644 | |||
38fa02619d | |||
7f862c9765 | |||
a8e0707e7a | |||
a9d00cd3c1 | |||
fd17f87a57 | |||
a0ceb1dbdc | |||
466dec4a64 | |||
dcf68a2330 | |||
a56b20728a | |||
e23ee2f209 | |||
75258d9744 | |||
c0d8f9f81a | |||
1aa4dd8113 | |||
913a340ed4 | |||
1da20e7dcf | |||
2adbdb62c7 | |||
855bcc8564 | |||
3eba1e24d6 | |||
fd81cb496f | |||
4ae9e304ad | |||
c657e318dd | |||
38d5fd5094 | |||
c4e9a33d2d | |||
23d185c171 | |||
7eee7e32b9 | |||
457995bc22 | |||
f5d21ec93c | |||
728be381a6 | |||
064d0f720b | |||
faad922f03 | |||
9d3e69c86d | |||
9c53608fa2 | |||
ad38812859 | |||
bbf40090a9 | |||
fe1181b531 | |||
2375f95063 | |||
3ac8557e59 | |||
5d51114b8d | |||
db287937b7 | |||
dfe3f7d27a | |||
29966b75ae | |||
25f2ccd32e | |||
b42093cf45 | |||
d15fdc5d8e | |||
2d27a7049f | |||
74df3d2f61 | |||
06071f2f5f | |||
c9b2341dbf | |||
7cb8620cb5 | |||
27f06b7b66 | |||
c0d874c68d | |||
91b2b4e1ab | |||
6770babe14 | |||
5e500d5cde | |||
5f06ec8d28 | |||
d89d75f72b | |||
28d08aaae8 | |||
17b9701061 | |||
872a15af94 | |||
59ecc0d7fa | |||
9907e08f18 | |||
a3aa857c78 | |||
26c0026cfc | |||
fed9acfedd | |||
b5c5123bbb | |||
2b71bba8db | |||
2fa20316bc | |||
99f5cc3728 | |||
1ece486cd8 | |||
e67e087853 | |||
43b3a15191 | |||
bb4611d609 | |||
e099a27533 | |||
a7356f5e67 | |||
f635ad609a | |||
8cb36c7aa9 | |||
18cc960755 | |||
531991a1e5 | |||
3298320b3d | |||
2a0981a21e | |||
Benjamin Renard | 12cfb6aa23 | ||
f07e10c40e | |||
096b1d3301 | |||
0af81bf0a3 | |||
9315acc545 | |||
ba8b78706a | |||
988d744836 | |||
16c6d9fa6e | |||
9469103f0e | |||
cc07f293ab | |||
a0fc721776 | |||
3161ace3b7 | |||
e8b8dd1730 | |||
3c6ce596d9 | |||
3c02b94085 | |||
6e98cfef20 | |||
25162f406d | |||
3c7ec2890a | |||
6bc1e46afb | |||
0b850e8acb | |||
516cc12d1b | |||
b936decf89 | |||
afb67b02e9 | |||
b37a2b321f | |||
c45f884aa1 | |||
78de233321 | |||
0360ab7951 | |||
36eae85bc3 | |||
df57967669 | |||
bc652f81f8 | |||
107d8ba0af | |||
c87f609610 | |||
c533aecc34 | |||
7c45c4bb8c | |||
9879dd3eda | |||
72933c9408 | |||
ef2271e7eb | |||
88bb4eef49 | |||
441b5d0af9 | |||
7e68b42b4c | |||
11f32dea04 | |||
83e795044f | |||
8dbbda801a | |||
eccb234210 | |||
159b3fbe7e | |||
40fdc92451 | |||
febb83e39d | |||
1683cadd73 | |||
bf28a6ea94 | |||
cab8c2e66d | |||
1aed362863 | |||
ade6a031dc | |||
0f791ee3cc | |||
6dcae071b5 | |||
0ac0a7e068 | |||
077a44fdf9 | |||
b104454603 | |||
fdbb9842df | |||
2a1d079717 | |||
60532145e3 | |||
631502d9c2 | |||
09d1aeb020 | |||
4b634e408d | |||
59d6d0865d | |||
d94f96498a | |||
7005100ac4 | |||
6d95f9bfd5 | |||
c81e2d0ee3 | |||
639f46d8a4 | |||
aa48cd3980 | |||
f81ac1e31e | |||
0a0f2d7730 | |||
342e575e9f | |||
d6aad3acc8 | |||
2c64eb8e97 | |||
2b6b8ce270 | |||
20c1148f69 | |||
d637a570f1 | |||
dff2aa8b46 | |||
6cce15ddf5 | |||
573737adfd | |||
0ffbf3274a | |||
15823ad677 | |||
84c3cd0d9b | |||
d0397ec41e | |||
3ddc51004f | |||
0e2911dfe5 | |||
f960b2d394 | |||
60d67f3123 | |||
640c0c1d70 | |||
96c7e33034 | |||
78fedd79b2 | |||
3703d0330e | |||
3d9b3c2947 | |||
825b5eb52f | |||
67774a6832 | |||
b26e21fb51 | |||
7578b76737 | |||
d23c84a87d | |||
465d88a609 | |||
935060987b | |||
bf82051249 | |||
44ab0ecab5 | |||
009cb34122 | |||
f3b16bc4f2 | |||
ba2de0f9ec | |||
c9f63fa5e9 | |||
3151721838 | |||
5b7b22dde1 | |||
8c317e127c | |||
a217e42a19 | |||
4c4983b634 | |||
6098f3bc5f | |||
91af444d0a | |||
6b4bc036e3 | |||
60eca6967c | |||
68b1c182db | |||
fb62ce2eed | |||
d27a59f807 | |||
82a236a67c | |||
f47e40a5ac | |||
1e284f098a | |||
f36c989136 | |||
b8040e3d8b | |||
19dd343106 | |||
36a1719b26 | |||
5f4798a5a1 | |||
7ecfa33afc | |||
7af066f4c2 | |||
a25b1e8c10 | |||
e05f0df20d | |||
16373e6904 | |||
5c10277861 | |||
638bb83eed | |||
ff57a12b0e | |||
724e9acedd | |||
0ec390e1fe | |||
e92bc10c8b | |||
305d7447ff | |||
841b3d0bcf | |||
eb8cfbf66a | |||
2544687b27 | |||
cb0106fda9 | |||
ac7e042c2a | |||
40a17c3524 | |||
bc9cc77cde | |||
d48a3c2dc0 | |||
29e499e1d6 | |||
fadfe2d2ba | |||
2fec564d91 | |||
9680f8a18e | |||
957777d44f | |||
7ef6e57c49 | |||
a353ca5c37 | |||
06b8fddc51 | |||
89ecbb8a5c | |||
14352da6bd | |||
514a2eb0fd | |||
7535530416 | |||
43d2620f8e | |||
1c13aa7cdd | |||
f6f2e352bc | |||
d39bba45fb | |||
1428b5df62 | |||
114e3c48ac | |||
089693ea0e | |||
d59f8c52bb | |||
443d51865f | |||
28ac541c3c | |||
0f0bff5a77 | |||
ab922356c0 | |||
a49cf4ba0c | |||
8b292f538d | |||
2abc369c73 | |||
e2ff1503ab | |||
3a946a47e3 | |||
f2a78f3d5c | |||
f6a6c226f4 | |||
852b375964 | |||
1da0693138 | |||
a7ab192274 | |||
c6501d479b | |||
2161cc701a | |||
bc462c07b6 | |||
597054acad | |||
42dd0aa728 | |||
3c75ef482e | |||
4e8a6db06b | |||
0addf22c2e | |||
b4a5824ee8 | |||
106a2d9f04 | |||
770533b7ec | |||
f7231229f5 | |||
335d6a4efa | |||
b93187f208 | |||
b00f59af2e | |||
88248506cf | |||
ef9470bf31 | |||
8b996885d1 | |||
56ffbd7a71 | |||
d5bfddf124 | |||
6c35af3109 | |||
e0bf5a73f5 | |||
3598e48c6e | |||
85b74feb86 | |||
43cf5ccd7a | |||
de62999fea | |||
8f407e9345 | |||
5315005382 | |||
9edfa2b92e | |||
d6c9e358f3 | |||
255817d7aa | |||
a848888894 | |||
bf482c648f | |||
41d816c025 | |||
e4ca5bbf71 | |||
052882eb49 | |||
822d777dfd | |||
1169772c4a | |||
b8c00a8708 | |||
e62ddbdc19 | |||
aeea76ab2a | |||
00132e32ad | |||
060ebf1bff | |||
00d92d1c37 | |||
4e87ddb898 | |||
d344c56f45 | |||
be04b6becf | |||
d0d3e944ed | |||
988054bfc5 | |||
1e6fa6fe8e | |||
fd4bf4f38a | |||
02ad9ded1e | |||
b3210c0108 | |||
63f57cfd77 | |||
a4183a88fc | |||
15941ac678 | |||
7e74853021 | |||
cccce6edb5 | |||
6a3fd60d3e | |||
df1c46eab6 | |||
e89d13d002 | |||
14bccc1e17 | |||
88d8d7f026 | |||
9db67eb2ba | |||
1d1e813edf | |||
bbaa0a99df | |||
406b017023 | |||
4c427b26d6 | |||
0de62c218d | |||
8be45249cb | |||
5b9e6409f4 | |||
4c1c7b2fae | |||
6ed225be8f | |||
be497226ae | |||
7711b3c00a | |||
699631b63c | |||
5975d36a1c | |||
c5b378abe4 | |||
592288bfaa | |||
f0ef642cf0 | |||
0c9a077399 | |||
74468584c1 | |||
a8e2ecc343 | |||
827cf2ca7f | |||
3d49092262 | |||
75cbea9459 | |||
a7d202e5ff | |||
8a1eefc5e3 | |||
c4dc2a0441 | |||
11c2e3c9d4 | |||
7c8fb87c99 | |||
70370f99f9 | |||
e8768d94ce | |||
ada72f3604 | |||
b13ff9b832 | |||
34d7e10f9a | |||
845fdbb4d8 | |||
f223827157 |
7
.gitignore
vendored
7
.gitignore
vendored
|
@ -1,3 +1,10 @@
|
|||
upgrade.log
|
||||
*.sav
|
||||
*~
|
||||
vendor
|
||||
/src/local.*
|
||||
tests-report*.xml
|
||||
.phplint-cache
|
||||
/ldapsaisie-snapshot.tar.gz
|
||||
/dist
|
||||
/.env
|
||||
|
|
351
.gitlab-ci.yml
Normal file
351
.gitlab-ci.yml
Normal file
|
@ -0,0 +1,351 @@
|
|||
stages:
|
||||
- tests
|
||||
- build
|
||||
- publish
|
||||
- release
|
||||
|
||||
variables:
|
||||
DOC_BRANCH: doc
|
||||
DOC_REMOTE: https://gitlab-ci-token:${ACCESS_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_PATH}.git
|
||||
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
|
||||
PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${CI_PROJECT_NAME}/${CI_COMMIT_TAG}"
|
||||
|
||||
tests:bookworm:
|
||||
image:
|
||||
name: docker.io/brenard/ldapsaisie:bookworm
|
||||
entrypoint: [""]
|
||||
stage: tests
|
||||
rules:
|
||||
- changes:
|
||||
- src/**/*.php
|
||||
script:
|
||||
- rm -fr vendor
|
||||
- composer install
|
||||
- service slapd start
|
||||
- >
|
||||
if [ "$GITLAB_CI" == "true" ]; then
|
||||
./vendor/bin/phpstan analyse --no-interaction --configuration=.phpstan/config.neon --error-format=junit > tests-report-bookworm.xml
|
||||
else
|
||||
./vendor/bin/phpstan analyse --no-interaction --configuration=.phpstan/config.neon
|
||||
fi
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- tests-report-bookworm.xml
|
||||
reports:
|
||||
junit: tests-report-bookworm.xml
|
||||
|
||||
tests:bullseye:
|
||||
image:
|
||||
name: docker.io/brenard/ldapsaisie:bullseye
|
||||
entrypoint: [""]
|
||||
stage: tests
|
||||
rules:
|
||||
- changes:
|
||||
- src/**/*.php
|
||||
script:
|
||||
- rm -fr vendor
|
||||
- composer install
|
||||
- service slapd start
|
||||
- >
|
||||
if [ "$GITLAB_CI" == "true" ]; then
|
||||
./vendor/bin/phpstan analyse --no-interaction --configuration=.phpstan/config.neon --error-format=junit > tests-report-bullseye.xml
|
||||
else
|
||||
./vendor/bin/phpstan analyse --no-interaction --configuration=.phpstan/config.neon
|
||||
fi
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- tests-report-bullseye.xml
|
||||
reports:
|
||||
junit: tests-report-bullseye.xml
|
||||
|
||||
tests:buster:
|
||||
image:
|
||||
name: docker.io/brenard/ldapsaisie:buster
|
||||
entrypoint: [""]
|
||||
stage: tests
|
||||
rules:
|
||||
- changes:
|
||||
- src/**/*.php
|
||||
script:
|
||||
- rm -fr vendor
|
||||
- composer install
|
||||
- service slapd start
|
||||
- ./vendor/bin/phpstan analyse --no-interaction --configuration=.phpstan/config.neon --error-format=junit > tests-report-buster.xml
|
||||
- >
|
||||
if [ "$GITLAB_CI" == "true" ]; then
|
||||
./vendor/bin/phpstan analyse --no-interaction --configuration=.phpstan/config.neon --error-format=junit > tests-report-buster.xml
|
||||
else
|
||||
./vendor/bin/phpstan analyse --no-interaction --configuration=.phpstan/config.neon
|
||||
fi
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- tests-report-buster.xml
|
||||
reports:
|
||||
junit: tests-report-buster.xml
|
||||
|
||||
tests:stretch:
|
||||
image:
|
||||
name: docker.io/brenard/ldapsaisie:stretch
|
||||
entrypoint: [""]
|
||||
stage: tests
|
||||
rules:
|
||||
- changes:
|
||||
- src/*
|
||||
script:
|
||||
- cd /tmp/
|
||||
- composer require overtrue/phplint --dev
|
||||
- cd -
|
||||
- rm -f .phplint-cache
|
||||
- /tmp/vendor/bin/phplint src
|
||||
|
||||
tests:jessie:
|
||||
image:
|
||||
name: docker.io/brenard/ldapsaisie:jessie
|
||||
entrypoint: [""]
|
||||
stage: tests
|
||||
rules:
|
||||
- changes:
|
||||
- src/**/*.php
|
||||
script:
|
||||
- cd /tmp/
|
||||
- composer require overtrue/phplint --dev
|
||||
- cd -
|
||||
- rm -f .phplint-cache
|
||||
- /tmp/vendor/bin/phplint src
|
||||
|
||||
build:debian-stable:
|
||||
image: docker.io/brenard/debian-python-deb:debian11
|
||||
stage: build
|
||||
cache:
|
||||
paths:
|
||||
- .cache/pip
|
||||
only:
|
||||
- tags
|
||||
script:
|
||||
- ./build-deb.sh --install-build-deps
|
||||
- rm -fr dist/ldapsaisie-*
|
||||
- dpkg-parsechangelog --format dpkg|awk '/ ldapsaisie /,0'|tail -n +3 > dist/release-notes.md
|
||||
artifacts:
|
||||
paths:
|
||||
- dist/*
|
||||
|
||||
build:debian-sid:
|
||||
image: docker.io/brenard/debian-python-deb:debian11
|
||||
stage: build
|
||||
cache:
|
||||
paths:
|
||||
- .cache/pip
|
||||
only:
|
||||
- master
|
||||
script:
|
||||
- ./build-deb.sh --install-build-deps --sid
|
||||
- rm -fr dist/ldapsaisie-*
|
||||
artifacts:
|
||||
paths:
|
||||
- dist/*
|
||||
|
||||
build:snapshot:
|
||||
stage: build
|
||||
image: docker.io/alpine
|
||||
only:
|
||||
- master
|
||||
script:
|
||||
- tar -czf ldapsaisie-snapshot.tar.gz --exclude=ldapsaisie-snapshot.tar.gz ./
|
||||
artifacts:
|
||||
paths:
|
||||
- ldapsaisie-snapshot.tar.gz
|
||||
|
||||
build:doc:html:
|
||||
stage: build
|
||||
image: docker.io/python:alpine
|
||||
cache:
|
||||
paths:
|
||||
- .cache/pip
|
||||
- doc/venv
|
||||
only:
|
||||
- master
|
||||
before_script:
|
||||
- apk add make git
|
||||
- git config user.name $GITLAB_USER_NAME
|
||||
- git config user.email $GITLAB_USER_EMAIL
|
||||
- VERSION=`git describe --tags`
|
||||
- cd doc
|
||||
- git fetch origin $DOC_BRANCH
|
||||
- git rev-parse --verify $DOC_BRANCH && git branch -D $DOC_BRANCH || echo "No existing local git $DOC_BRANCH branch"
|
||||
- git checkout -b $DOC_BRANCH origin/$DOC_BRANCH
|
||||
- git checkout $CI_COMMIT_SHA
|
||||
- make clean && make venv
|
||||
script:
|
||||
- make LdapSaisie.html
|
||||
- test -n "$CI_COMMIT_TAG" && DOC_TAG=stable || DOC_TAG=dev
|
||||
- source venv/bin/activate # We must have to activate the venv to use mike (direct call not supported)
|
||||
- mike deploy --branch $DOC_BRANCH --remote $DOC_REMOTE --push --update-aliases $VERSION $DOC_TAG
|
||||
- mike set-default --branch $DOC_BRANCH --remote $DOC_REMOTE --push $DOC_TAG
|
||||
artifacts:
|
||||
paths:
|
||||
- doc/LdapSaisie.html
|
||||
|
||||
build:doc:pdf:
|
||||
stage: build
|
||||
image:
|
||||
name: docker.io/pink33n/html-to-pdf
|
||||
entrypoint: ["/bin/sh", "-c"]
|
||||
only:
|
||||
- master
|
||||
needs:
|
||||
- build:doc:html
|
||||
script:
|
||||
- rm -f doc/LdapSaisie.pdf
|
||||
- /usr/local/bin/entrypoint --url file://$(pwd)/doc/LdapSaisie.html --pdf doc/LdapSaisie.pdf || test -f doc/LdapSaisie.pdf
|
||||
artifacts:
|
||||
paths:
|
||||
- doc/LdapSaisie.pdf
|
||||
|
||||
build:doc:epub:
|
||||
stage: build
|
||||
image:
|
||||
name: docker.io/pandoc/core
|
||||
entrypoint: ["/bin/sh", "-c"]
|
||||
only:
|
||||
- master
|
||||
needs:
|
||||
- build:doc:html
|
||||
before_script:
|
||||
- apk add make
|
||||
script:
|
||||
- cd doc
|
||||
- test ! -d venv && mkdir venv && touch public_html LdapSaisie.html
|
||||
- make LdapSaisie.epub
|
||||
artifacts:
|
||||
paths:
|
||||
- doc/LdapSaisie.epub
|
||||
|
||||
build:doc:append_additional_versions:
|
||||
stage: build
|
||||
image: docker.io/python:alpine
|
||||
only:
|
||||
- master
|
||||
needs:
|
||||
- build:doc:html
|
||||
- build:doc:pdf
|
||||
- build:doc:epub
|
||||
before_script:
|
||||
- apk add git
|
||||
- git config user.name $GITLAB_USER_NAME
|
||||
- git config user.email $GITLAB_USER_EMAIL
|
||||
- VERSION=`git describe --tags`
|
||||
- cd doc
|
||||
- git fetch origin $DOC_BRANCH
|
||||
- git rev-parse --verify $DOC_BRANCH && git branch -D $DOC_BRANCH || echo "No existing local git $DOC_BRANCH branch"
|
||||
- git checkout -b $DOC_BRANCH origin/$DOC_BRANCH
|
||||
- git pull origin $DOC_BRANCH
|
||||
script:
|
||||
- cp LdapSaisie.html LdapSaisie.pdf LdapSaisie.epub dist/$VERSION/
|
||||
- git add dist/$VERSION/
|
||||
- git commit --amend --no-edit
|
||||
- git push --force $DOC_REMOTE $DOC_BRANCH
|
||||
|
||||
publish:doc:
|
||||
stage: publish
|
||||
image: docker.io/alpine:latest
|
||||
only:
|
||||
- master
|
||||
needs:
|
||||
- build:doc:append_additional_versions
|
||||
before_script:
|
||||
- apk update && apk add git openssh-client rsync
|
||||
- eval $(ssh-agent -s)
|
||||
- echo "$SSH_PRIVATE_KEY" | base64 -d | ssh-add -
|
||||
- mkdir ~/.ssh
|
||||
- echo "$SSH_HOST_KEY" | base64 -d > ~/.ssh/known_hosts
|
||||
- git fetch origin $DOC_BRANCH
|
||||
- git rev-parse --verify $DOC_BRANCH && git branch -D $DOC_BRANCH || echo "No existing local git $DOC_BRANCH branch"
|
||||
- git checkout -b $DOC_BRANCH origin/$DOC_BRANCH
|
||||
- git pull origin $DOC_BRANCH
|
||||
script:
|
||||
- rsync -atv --exclude '.git*' --delete --progress ./doc/dist/ $SSH_USER@$SSH_HOST:doc/
|
||||
|
||||
publish:snapshot:
|
||||
stage: publish
|
||||
image: docker.io/alpine:latest
|
||||
only:
|
||||
- master
|
||||
needs:
|
||||
- build:snapshot
|
||||
before_script:
|
||||
- apk update && apk add openssh-client rsync
|
||||
- eval $(ssh-agent -s)
|
||||
- echo "$SSH_PRIVATE_KEY" | base64 -d | ssh-add -
|
||||
- mkdir ~/.ssh
|
||||
- echo "$SSH_HOST_KEY" | base64 -d > ~/.ssh/known_hosts
|
||||
script:
|
||||
- rsync -atv ldapsaisie-snapshot.tar.gz $SSH_USER@$SSH_HOST:download/ldapsaisie-snapshot.tar.gz
|
||||
|
||||
publish:debian-stable:
|
||||
stage: publish
|
||||
image: docker.io/debian:stable-slim
|
||||
needs:
|
||||
- build:debian-stable
|
||||
only:
|
||||
- tags
|
||||
before_script:
|
||||
- apt-get update
|
||||
- apt-get install -y --no-install-recommends rsync openssh-client dupload
|
||||
- eval $(ssh-agent -s)
|
||||
- echo "$SSH_PRIVATE_KEY" | base64 -d | ssh-add -
|
||||
- mkdir ~/.ssh
|
||||
- echo "$SSH_HOST_KEY" | base64 -d > ~/.ssh/known_hosts
|
||||
- echo "$DUPLOAD_CONFIG" | base64 -d > ~/.dupload.conf
|
||||
script:
|
||||
- echo "Publish stable debian packages on APT repository..."
|
||||
- dupload --to debian-stable dist/ldapsaisie*changes
|
||||
|
||||
publish:gitlab:
|
||||
stage: publish
|
||||
image:
|
||||
name: docker.io/alpine/httpie
|
||||
entrypoint: ["/bin/sh", "-c"]
|
||||
needs:
|
||||
- build:debian-stable
|
||||
only:
|
||||
- tags
|
||||
script:
|
||||
- ./.gitlab/publish.sh
|
||||
artifacts:
|
||||
paths:
|
||||
- dist/release-notes.md
|
||||
- dist/release-files.txt
|
||||
|
||||
publish:debian-sid:
|
||||
stage: publish
|
||||
image: docker.io/debian:stable-slim
|
||||
only:
|
||||
- master
|
||||
needs:
|
||||
- build:debian-sid
|
||||
before_script:
|
||||
- apt-get update
|
||||
- apt-get install -y --no-install-recommends rsync openssh-client dupload
|
||||
- eval $(ssh-agent -s)
|
||||
- echo "$SSH_PRIVATE_KEY" | base64 -d | ssh-add -
|
||||
- mkdir ~/.ssh
|
||||
- echo "$SSH_HOST_KEY" | base64 -d > ~/.ssh/known_hosts
|
||||
- echo "$DUPLOAD_CONFIG" | base64 -d > ~/.dupload.conf
|
||||
script:
|
||||
- echo "Publish Sid debian packages on APT repository..."
|
||||
- dupload --to debian-sid dist/ldapsaisie*changes
|
||||
|
||||
release:
|
||||
stage: release
|
||||
image:
|
||||
name: registry.gitlab.com/gitlab-org/release-cli:latest
|
||||
entrypoint: ["/bin/sh", "-c"]
|
||||
needs:
|
||||
- publish:gitlab
|
||||
only:
|
||||
- tags
|
||||
script:
|
||||
- ./.gitlab/release.sh
|
14
.gitlab/publish.sh
Executable file
14
.gitlab/publish.sh
Executable file
|
@ -0,0 +1,14 @@
|
|||
#!/bin/sh
|
||||
|
||||
cd `dirname $0`/../dist
|
||||
rm -f release-files.txt
|
||||
touch release-files.txt
|
||||
|
||||
for file in *.deb
|
||||
do
|
||||
# The filename can contain only lowercase letters (a-z), uppercase letter (A-Z), numbers (0-9), dots (.),
|
||||
# hyphens (-), or underscores (_).
|
||||
filename=`echo $file|tr '~' '_'|tr '+' '_'|sed s/[^a-zA-Z0-9\.\_\-]//g`
|
||||
https --ignore-stdin --check-status PUT "${PACKAGE_REGISTRY_URL}/${filename}" "JOB-TOKEN: $CI_JOB_TOKEN" "@$file"
|
||||
echo $filename >> release-files.txt
|
||||
done
|
14
.gitlab/release.sh
Executable file
14
.gitlab/release.sh
Executable file
|
@ -0,0 +1,14 @@
|
|||
#!/bin/sh
|
||||
|
||||
echo "Creating a release for $CI_COMMIT_TAG"
|
||||
|
||||
cd `dirname $0`/../dist
|
||||
|
||||
|
||||
CMD="release-cli create --name $CI_COMMIT_TAG --description release-notes.md --tag-name $CI_COMMIT_TAG"
|
||||
for file in `cat release-files.txt`
|
||||
do
|
||||
CMD="$CMD --assets-link {\"name\":\"$file\",\"url\":\"${PACKAGE_REGISTRY_URL}/$file\"}"
|
||||
done
|
||||
|
||||
$CMD
|
9
.phpstan/compat.php
Normal file
9
.phpstan/compat.php
Normal file
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
$config = [];
|
||||
|
||||
if (PHP_VERSION_ID < 80100) {
|
||||
$config['parameters']['typeAliases']['FTP\Connection'] = 'resource';
|
||||
}
|
||||
|
||||
return $config;
|
18
.phpstan/config.neon
Normal file
18
.phpstan/config.neon
Normal file
|
@ -0,0 +1,18 @@
|
|||
includes:
|
||||
- compat.php
|
||||
|
||||
parameters:
|
||||
level: 3
|
||||
paths:
|
||||
- ../src
|
||||
excludePaths:
|
||||
- ../src/local
|
||||
- ../src/tmp
|
||||
bootstrapFiles:
|
||||
- ../src/includes/core.php
|
||||
- init.php
|
||||
typeAliases:
|
||||
LSformat: 'string'
|
||||
universalObjectCratesClasses:
|
||||
- LSsearchEntry
|
||||
- LSurlRequest
|
13
.phpstan/init.php
Normal file
13
.phpstan/init.php
Normal file
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
|
||||
require 'Net/LDAP2.php';
|
||||
require 'Console/Table.php';
|
||||
require 'Zxcvbn/autoload.php';
|
||||
require '/usr/share/php/phpseclib/autoload.php';
|
||||
require 'CAS.php';
|
||||
require 'Mail.php';
|
||||
require 'Mail/mime.php';
|
||||
require 'Html2Text.php';
|
||||
|
||||
spl_autoload_register(array('LSsession', 'loadLSclass'));
|
||||
LSsession :: initialize();
|
9
.pre-commit-config.yaml
Normal file
9
.pre-commit-config.yaml
Normal file
|
@ -0,0 +1,9 @@
|
|||
# Pre-commit hooks to run tests and ensure code is cleaned.
|
||||
# See https://pre-commit.com for more information
|
||||
repos:
|
||||
- repo: https://github.com/digitalpulp/pre-commit-php.git
|
||||
rev: 1.4.0
|
||||
hooks:
|
||||
- id: php-stan
|
||||
files: ^src\/.*\.(php)$
|
||||
args: ['--configuration=.phpstan/config.neon']
|
22
INSTALL
22
INSTALL
|
@ -23,8 +23,8 @@
|
|||
* La librairie File_CSV_DataSource (paquet php-file-csv-datasource dans Debian)
|
||||
* La librairie Console_Table (nécessaire pour le fonctionnement de l'outil CLI, paquet php-console-table dans Debian)
|
||||
* Les librairies Mail et Mail_Mime (nécessaire pour l'envoi de courriels, paquets php-mail et php-mail-mime dans Debian)
|
||||
* La librairie Net_FTP (nécessaire pour le fonctionnement du LSaddon FTP, paquet php-console-table dans Debian)
|
||||
* La librairie PhpSecLib (nécessaire pour le fonctionnement du LSaddon SSH, paquet php-console-table dans Debian)
|
||||
* L'extension PHP ftp (nécessaire pour le fonctionnement du LSaddon FTP, paquet php-ftp dans Debian)
|
||||
* La librairie PhpSecLib (nécessaire pour le fonctionnement du LSaddon SSH, paquet php-phpseclib dans Debian)
|
||||
|
||||
#################
|
||||
# Avertissement #
|
||||
|
@ -44,7 +44,7 @@
|
|||
L'installation à partir du paquet Debian peut être réalisée soit en téléchargeant manuellement le paquet, soit en
|
||||
déclarant le dépôt APT suivant dans votre fichier /etc/apt/sources.list :
|
||||
|
||||
deb http://ldapsaisie.easter-eggs.org/debian stable main
|
||||
deb http://ldapsaisie.org/debian stable main
|
||||
|
||||
|
||||
Il ne vous restera ensuite plus qu'a installer le paquet ldapsaisie avec la commande suivante :
|
||||
|
@ -60,7 +60,7 @@ logiciel ce fera ensuite dans le dossier /etc/ldapsaisie/local/.
|
|||
|
||||
Le dépôt Git peut être récupéré anonymement en utilisant la commande suivante :
|
||||
|
||||
git clone git://git.labs.libre-entreprise.org/ldapsaisie.git
|
||||
git clone https://gitlab.easter-eggs.com/ee/ldapsaisie.git
|
||||
|
||||
|
||||
La racine web de l'application se trouvera alors dans le dossier /ldapsaisie/src/public_html/.
|
||||
|
@ -70,7 +70,7 @@ La racine web de l'application se trouvera alors dans le dossier /ldapsaisie/src
|
|||
|
||||
Toutes les nuits, un snapshot de l'arbre Git est réalisé et est téléchargeable au format tar.gz à l'adresse suivante :
|
||||
|
||||
http://ldapsaisie.easter-eggs.org/download/ldapsaisie-snapshoot.tar.gz
|
||||
http://ldapsaisie.org/download/ldapsaisie-snapshoot.tar.gz
|
||||
|
||||
3. Arborescence du projet
|
||||
=========================
|
||||
|
@ -78,7 +78,7 @@ Toutes les nuits, un snapshot de l'arbre Git est réalisé et est téléchargeab
|
|||
Racine
|
||||
|
||||
doc/
|
||||
Les fichiers sources de la documentation (docbook).
|
||||
Les fichiers sources de la documentation (Markdown).
|
||||
lsexample/
|
||||
Les fichiers relatifs à l'annuaire d'exemple.
|
||||
src/
|
||||
|
@ -186,17 +186,11 @@ présente dans les sources du projet dans le dossier lsexample.
|
|||
Nom du fichier de log des mises à jour.
|
||||
THEME
|
||||
Le nom du theme à installer (facultatif et non traité dans ce tutoriel).
|
||||
BUILD_DOC
|
||||
Variable booléene définissant si la documentation doit être compiler en utilisant le script buildDocExports.sh.
|
||||
Ceci ne sera pas expliqué dans ce tutoriel et nous partirons donc du principe que cette variable est à 0.
|
||||
|
||||
########
|
||||
# Note #
|
||||
########
|
||||
#
|
||||
# * D'autres variables sont présentes dans ce fichier et concerne uniquement la compilation de la documentation.
|
||||
# Elle peuvent être ignorée à partir du moment ou la variable BUILD_DOC vaut 0.
|
||||
#
|
||||
# * Il est possible d'utiliser dans ce fichier de configuration la variable bash $ROOT_DIR correspondant au chemin
|
||||
# du dossier d'installation, c'est à dire dans notre exemple /var/www/ldapsaisie.
|
||||
#
|
||||
|
@ -266,8 +260,8 @@ types d'LSobjects : Pour plus de détails, consulter la documentation du projet.
|
|||
4. La dernière étape à ce niveau consiste à lancer le script upgradeFromGit.sh pour qu'il installe les fichiers que
|
||||
vous venez de créer. Ce script est conçu pour dire tout ce qu'il fait donc en cas de problème vous devriez
|
||||
rapidement comprendre où cela coince. Dans tout les cas, n'hésitez pas à poser vos questions à la communauté sur la
|
||||
liste <ldapsaisie-users@lists.labs.libre-entreprise.org>.
|
||||
liste <ldapsaisie-users@lists.ldapsaisie.org>.
|
||||
|
||||
Liens
|
||||
=====
|
||||
1. Documentation du projet : http://ldapsaisie.easter-eggs.org/doc
|
||||
1. Documentation du projet : http://ldapsaisie.org/doc
|
||||
|
|
119
README.md
Normal file
119
README.md
Normal file
|
@ -0,0 +1,119 @@
|
|||
[![LdapSaisie](src/images/default/logo.png)](https://ldapsaisie.org)
|
||||
|
||||
LdapSaisie is a Web application developed to manage LDAP directory. It has been written in PHP / JavaScript and is published under the GNU GPL license. This application is designed to abstract the complexity of the directory through a simple and intuitive administration interface. It was designed with the objective of maximal modularity and easy extension or adaptation: you can use modules, extensions and plugins. LdapSaisie allows any system administrator to manage data stored inside a LDAP server, and thus administrate its information system in a simple manner. It's also possible to let users access their own data, with read-only or read-write access.
|
||||
|
||||
__[Project website](https://ldapsaisie.org)__ | __[Documentation](https://ldapsaisie.org/doc/full)__ | __[Demonstration](https://ldapsaisie.org/demo)__
|
||||
|
||||
## Key features
|
||||
|
||||
* Management of one or several directories;
|
||||
* Management of simple and multi-branch directories;
|
||||
* Able to manage unlimited objects types;
|
||||
* Allow unlimited users to connect to the interface;
|
||||
* A smooth rights management allows to manage each object and attributes access rights, and allows to delegate rights;
|
||||
* Able to manage a lot of attribute type. Each attribute is given specific features which ease application navigation (Automatic password generation, field auto-completion);
|
||||
* Able to manage high rate of attributes verification rules;
|
||||
* Easy management of objects relationships;
|
||||
* Easy modification of application design using templates;
|
||||
* Management of personalized triggers, which allows to execute you own scripts, functions or methods at any action. The triggers scope is set to able a whole modification of application behavior;
|
||||
* Smooth attributes visualization management, allowing to auto-modify attributes according to others;
|
||||
* Possibility to manage hidden attributes.
|
||||
* Customizable responsive web interface
|
||||
|
||||
## Screenshots
|
||||
|
||||
Please see [project website](https://ldapsaisie.org/en:screenshot) for some screenshots of the web interface. Keep in mind that the web interface could be personalized to feet with your needs.
|
||||
|
||||
## Demonstration
|
||||
|
||||
A demonstration version is available at :
|
||||
|
||||
http://ldapsaisie.org/demo
|
||||
|
||||
This demonstration interface is connected to a sample LDAP directory such that the schema and the imported LDIF file are provided with the sources of the application (in the `lsexample` directory).
|
||||
|
||||
Several demonstration accounts exist and have more or less extensive rights. These different accounts are presented on the login page.
|
||||
|
||||
## Installation
|
||||
|
||||
### Requirements
|
||||
|
||||
* PHP (>= 5.6)
|
||||
* PEAR [NetLDAP2](http://pear.php.net/package/Net_LDAP2) package
|
||||
* [Smarty](http://www.smarty.net/)
|
||||
|
||||
Some others dependencies exists for specific features, please see [documentation](https://ldapsaisie.org/doc/all-in-one/LdapSaisie.html#install-requirements) for details (french).
|
||||
|
||||
### Download
|
||||
|
||||
#### Using Debian packages
|
||||
|
||||
You can easily install LdapSaisie using Debian packages by using the following command to configure the project's repository :
|
||||
```
|
||||
echo "deb http://ldapsaisie.org/debian buster main" | tee /etc/apt/sources.list.d/ldapsaisie.list
|
||||
wget -O - http://ldapsaisie.org/debian/ldapsaisie.gpg.key | apt-key add -
|
||||
apt-get update
|
||||
apt-get install ldapsaisie ldapsaisie-archive-keyring
|
||||
```
|
||||
|
||||
__Note:__ Hourly generated Debian packages from _master_ branch are also provided in the _sid_ Debian repository of the project. To use these packages, use the following command to configure the project's _sid_ repository:
|
||||
|
||||
```
|
||||
echo "deb http://ldapsaisie.org/debian sid main" | tee /etc/apt/sources.list.d/ldapsaisie.list
|
||||
```
|
||||
|
||||
#### Using Git
|
||||
|
||||
The Git repos can be cloned anonymously with the command :
|
||||
|
||||
```
|
||||
git clone https://gitlab.easter-eggs.com/ee/ldapsaisie.git
|
||||
```
|
||||
|
||||
#### Snapshot
|
||||
|
||||
Every 15 minutes, a snapshot of the Git repository is built and available for download here:
|
||||
|
||||
http://ldapsaisie.org/download/ldapsaisie-snapshoot.tar.gz
|
||||
|
||||
### Configuration
|
||||
|
||||
It's the main step of the installation process and the most complicated. Firstly, you have to configure the global configuration mostly contain in the file `conf/config.inc.php`. Second, you will have to configure your object types and their relationships. You could refer to example files provided with the application and to the [official documentation](https://ldapsaisie.org/doc/all-in-one/LdapSaisie.html#config-LSobject) (in french).
|
||||
|
||||
__Note:__ A more details [tutorial](https://ldapsaisie.org/doc/all-in-one/LdapSaisie.html#install-tutorial) (in french) is also provided in official documentation.
|
||||
|
||||
## Upgrade
|
||||
|
||||
### Using Debian packages
|
||||
|
||||
When using Debian packages, the upgrading process to pretty simple: just upgrade the package:
|
||||
|
||||
```
|
||||
apt-get update
|
||||
apt-get install ldapsaisie
|
||||
```
|
||||
|
||||
Once the application has been updated, paid attention to new features and points of vigilance described in [official documentation](https://ldapsaisie.org/doc/all-in-one/LdapSaisie.html#upgrade) (in french).
|
||||
|
||||
### Using Git
|
||||
|
||||
When using git, you could use the `upgradeFromGit.sh` which automates the update if you have followed the installation procedure for it.
|
||||
|
||||
This script will then take care of:
|
||||
|
||||
* Clean the working-tree Git from the symbolic links of the local files (and possibly the theme) set up during a previous execution;
|
||||
* Empty the template cache;
|
||||
* Update the Git working-tree via a `git pull`;
|
||||
* Install symbolic links for local files. In case of locally modified files, the script will notify you and will allow you to simply update your local file (via a `vim -d`);
|
||||
* Detect changes in the MO files (translation) and in this case trigger a reload of the web server to be taken into account;
|
||||
* Option: to compile an up-to-date local version of the documentation;
|
||||
|
||||
Once the application has been updated, paid attention to new features and points of vigilance described in [official documentation](https://ldapsaisie.org/doc/all-in-one/LdapSaisie.html#upgrade) (in french).
|
||||
|
||||
## License
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along with this program (see `LICENSE` file); if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
133
build-deb.sh
Executable file
133
build-deb.sh
Executable file
|
@ -0,0 +1,133 @@
|
|||
#!/bin/bash
|
||||
|
||||
INSTALL_BUILD_DEPS=0
|
||||
SID=0
|
||||
|
||||
function usage() {
|
||||
[ -n "$@" ] && echo -e "$@\n" > /dev/stderr
|
||||
echo "Usage: $0 [--install-build-deps] [--sid]"
|
||||
[ -n "$@" ] && exit 1
|
||||
}
|
||||
|
||||
idx=1
|
||||
while [ $idx -le $# ]
|
||||
do
|
||||
OPT=${!idx}
|
||||
case $OPT in
|
||||
--install-build-deps)
|
||||
INSTALL_BUILD_DEPS=1
|
||||
;;
|
||||
--sid)
|
||||
SID=1
|
||||
;;
|
||||
-x)
|
||||
set -x
|
||||
;;
|
||||
*)
|
||||
usage "Unkown parameter '$OPT'"
|
||||
esac
|
||||
let idx=idx+1
|
||||
done
|
||||
|
||||
# Enter source directory
|
||||
cd $( dirname $0 )
|
||||
|
||||
# Install build dependencies
|
||||
if [ $INSTALL_BUILD_DEPS -eq 1 ]
|
||||
then
|
||||
apt-get update
|
||||
apt-get install --no-install-recommends --yes devscripts equivs sed rsync git lsb-release wget ca-certificates
|
||||
mk-build-deps --install --tool='apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes' debian/control
|
||||
fi
|
||||
|
||||
DEBIAN_RELEASE=$( lsb_release -r -s|sed 's/\..*$//' )
|
||||
|
||||
# Install build dependencies based on Debian release
|
||||
if [ $INSTALL_BUILD_DEPS -eq 1 ]
|
||||
then
|
||||
# On Debian Stretch, install GitPython using pip because strect version of python3-git have bugs
|
||||
if [ $DEBIAN_RELEASE -eq 9 ]
|
||||
then
|
||||
apt-get install --no-install-recommends --yes python3-pip
|
||||
python3 -m pip install GitPython
|
||||
else
|
||||
apt-get install --no-install-recommends --yes python3-git
|
||||
fi
|
||||
fi
|
||||
|
||||
# Install GPG key (if provided)
|
||||
if [ -n "$GPG_KEY" ]
|
||||
then
|
||||
[ $INSTALL_BUILD_DEPS -eq 1 ] && apt-get install --no-install-recommends --yes gnupg2
|
||||
echo "$GPG_KEY"|base64 -d|gpg --import
|
||||
fi
|
||||
|
||||
# Retreive source package name
|
||||
SOURCE_PACKAGE_NAME=$( grep -E ^Source: debian/control|sed 's/^Source: //' )
|
||||
|
||||
[ $SID -eq 1 ] && DEBIAN_CODENAME=sid || DEBIAN_CODENAME=$( lsb_release -c -s )
|
||||
|
||||
# Clean previous build
|
||||
rm -fr $SOURCE_PACKAGE_NAME-build-deps* dist
|
||||
|
||||
# Compute version using git describe
|
||||
VERSION="$( git describe --tags 2> /dev/null )"
|
||||
|
||||
# If no tag exist, git describe will fail: in this case, compute a 0.0 version with same format
|
||||
# as git describe
|
||||
[ $? -ne 0 ] && VERSION="0.0-$( git log --oneline|wc -l )-$( git describe --tags --always )"
|
||||
|
||||
# Create dist directory
|
||||
mkdir dist
|
||||
DIST_DIR=dist/$SOURCE_PACKAGE_NAME-$VERSION
|
||||
rsync -av --exclude 'dist' --exclude '.git*' --exclude 'build.sh' --exclude 'docker-builds.sh' ./ $DIST_DIR/
|
||||
|
||||
# Check gitdch is installed
|
||||
GITDCH=$(which gitdch)
|
||||
set -e
|
||||
if [ -z "$GITDCH" ]
|
||||
then
|
||||
TMP_GITDCH=$(mktemp -d)
|
||||
echo "Temporary install gitdch in $TMP_GITDCH"
|
||||
wget -O $TMP_GITDCH/gitdch https://gitea.zionetrix.net/bn8/gitdch/raw/master/gitdch
|
||||
chmod +x $TMP_GITDCH/gitdch
|
||||
GITDCH=$TMP_GITDCH/gitdch
|
||||
else
|
||||
TMP_GITDCH=""
|
||||
fi
|
||||
|
||||
# Compute gitdch extra args
|
||||
GITDCH_EXTRA_ARGS=()
|
||||
[ -n "$DEBFULLNAME" ] && GITDCH_EXTRA_ARGS+=( "--maintainer-name" "$DEBFULLNAME" )
|
||||
[ -n "$DEBEMAIL" ] && GITDCH_EXTRA_ARGS+=( "--maintainer-email" "$DEBEMAIL" )
|
||||
|
||||
if [ -e debian/changelog ]
|
||||
then
|
||||
LAST_MANUAL_COMMIT_ID=$( git log --oneline -n1 -- debian/changelog|awk '{print $1}' )
|
||||
GITDCH_EXTRA_ARGS+=( "--append" "--revision" "${LAST_MANUAL_COMMIT_ID}..HEAD" )
|
||||
fi
|
||||
|
||||
# Generate debian changelog using generate_debian_changelog.py
|
||||
$GITDCH \
|
||||
--package-name $SOURCE_PACKAGE_NAME \
|
||||
--version="${VERSION}" \
|
||||
--code-name $DEBIAN_CODENAME \
|
||||
--output $DIST_DIR/debian/changelog \
|
||||
--release-notes ../release-notes.md \
|
||||
--exclude "^Docker: " \
|
||||
--exclude "^CI: " \
|
||||
--exclude "^debian: " \
|
||||
--exclude "\.gitlab-ci\.yml" \
|
||||
--exclude "build-deb\.sh" \
|
||||
--exclude "README\.md" \
|
||||
--exclude "^Merge branch " \
|
||||
--verbose "${GITDCH_EXTRA_ARGS[@]}"
|
||||
|
||||
# Clean temporary gitdch installation
|
||||
[ -n "$TMP_GITDCH" ] && rm -fr $TMP_GITDCH
|
||||
|
||||
# Build debian package
|
||||
BUILD_ARGS=""
|
||||
[ -z "$GPG_KEY" ] && BUILD_ARGS="--no-sign" || echo "GPG key provide, enable package signing."
|
||||
cd $DIST_DIR/
|
||||
dpkg-buildpackage $BUILD_ARGS
|
40
buildDoc.sh
40
buildDoc.sh
|
@ -1,40 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
ROOT_DIR=$( cd `dirname $0`; pwd )
|
||||
LOCAL_CFG_DIR=$ROOT_DIR/config.local
|
||||
|
||||
# Import config
|
||||
if [ ! -f $LOCAL_CFG_DIR/local.sh ]
|
||||
then
|
||||
echo "Error : You don't have create your own local.sh file in config.local directory. You could rely on the local.sh.example file to create your version."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source $LOCAL_CFG_DIR/local.sh
|
||||
|
||||
cd $ROOT_DIR/doc
|
||||
|
||||
make clean >> $LOG_FILE 2>&1
|
||||
make >> $LOG_FILE 2>&1 &
|
||||
|
||||
export P=$!
|
||||
|
||||
|
||||
trap exitwhell INT
|
||||
|
||||
function exitwhell() {
|
||||
kill -9 $P 2> /dev/null
|
||||
echo " -- INT -- "
|
||||
}
|
||||
|
||||
while [ -d /proc/$P ]
|
||||
do
|
||||
echo -n .
|
||||
sleep 1
|
||||
done
|
||||
echo done.
|
||||
|
||||
if [ -n "$EXPORT_DOC_DIR" ]
|
||||
then
|
||||
$ROOT_DIR/buildDocExports.sh
|
||||
fi
|
|
@ -1,167 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
ROOT_DIR=$( cd `dirname $0`; pwd )
|
||||
LOCAL_CFG_DIR=$ROOT_DIR/config.local
|
||||
|
||||
# Import config
|
||||
if [ ! -f $LOCAL_CFG_DIR/local.sh ]
|
||||
then
|
||||
echo "Error : You don't have create your own local.sh file in config.local directory. You could rely on the local.sh.example file to create your version."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source $LOCAL_CFG_DIR/local.sh
|
||||
|
||||
if [ ! -n "$EXPORT_DOC_DIR" ]
|
||||
then
|
||||
echo "The EXPORT_DOC_DIR variable is not define. Export doc is disabled."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ ! -d "$EXPORT_DOC_DIR" ]
|
||||
then
|
||||
echo "Error : Export directory $EXPORT_DOC_DIR does not exist !"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
DOC_DIR=$ROOT_DIR/doc
|
||||
TMP_DIR=`mktemp -d`
|
||||
ERROR=0
|
||||
|
||||
echo "-> Export documentation in $EXPORT_DOC_DIR :"
|
||||
|
||||
# PDF
|
||||
if [ -n "$PDF" ]
|
||||
then
|
||||
echo -en "\t- PDF : "
|
||||
# PDF
|
||||
cp -f $DOC_DIR/exports/pdf/LdapSaisie.pdf $EXPORT_DOC_DIR/LdapSaisie.pdf
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo -e "\n-> Error"
|
||||
ERROR=1
|
||||
else
|
||||
echo Ok
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
# EPUB
|
||||
if [ -n "$EPUB" ]
|
||||
then
|
||||
echo -en "\t- EPUB : "
|
||||
# EPUB
|
||||
cp -f $DOC_DIR/exports/epub/LdapSaisie.epub $EXPORT_DOC_DIR/LdapSaisie.epub
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo -e "\n-> Error"
|
||||
ERROR=1
|
||||
else
|
||||
echo Ok
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
# ALL-IN-ONE
|
||||
if [ -n "$ALL_IN_ONE" ]
|
||||
then
|
||||
echo -en "\t- All-In-One : "
|
||||
rm -fr $TMP_DIR/$ALL_IN_ONE
|
||||
mkdir $TMP_DIR/$ALL_IN_ONE
|
||||
|
||||
cp $DOC_DIR/exports/html/all-in-one/LdapSaisie.html $TMP_DIR/$ALL_IN_ONE/
|
||||
sed -i 's/\.\.\/\.\.\/\.\.\///g' $TMP_DIR/$ALL_IN_ONE/LdapSaisie.html
|
||||
|
||||
# IMAGES
|
||||
cp -fr $IMAGES $TMP_DIR/$ALL_IN_ONE/images
|
||||
|
||||
mkdir $TMP_DIR/$ALL_IN_ONE/styles
|
||||
cp $CSS $TMP_DIR/$ALL_IN_ONE/styles/
|
||||
|
||||
echo "done. Build archive and move it later ..."
|
||||
fi
|
||||
|
||||
|
||||
# ONLINE
|
||||
if [ -n "$ONLINE" ]
|
||||
then
|
||||
echo -en "\t- On-line : "
|
||||
rm -fr $TMP_DIR/$ONLINE
|
||||
mkdir $TMP_DIR/$ONLINE
|
||||
|
||||
cp -fr $DOC_DIR/exports/html/online/*.html $TMP_DIR/$ONLINE
|
||||
sed -i 's/\.\.\/\.\.\/\.\.\///g' $TMP_DIR/$ONLINE/*
|
||||
|
||||
# IMAGES
|
||||
cp -fr $IMAGES $TMP_DIR/$ONLINE/images
|
||||
|
||||
mkdir $TMP_DIR/$ONLINE/styles
|
||||
cp $CSS $TMP_DIR/$ONLINE/styles/
|
||||
|
||||
echo "done. Build archive and move it later ..."
|
||||
fi
|
||||
|
||||
|
||||
# DOCBOOK
|
||||
if [ -n "$DOCBOOK" ]
|
||||
then
|
||||
echo -en "\t- Docbook : "
|
||||
|
||||
rm -fr $TMP_DIR/$DOCBOOK
|
||||
mkdir $TMP_DIR/$DOCBOOK
|
||||
|
||||
cd $DOC_DIR
|
||||
for i in `find -type d|grep -v 'export'`
|
||||
do
|
||||
mkdir -p $TMP_DIR/$DOCBOOK/$i
|
||||
done
|
||||
|
||||
for i in `find -type f|egrep -v '(Makefile|^./export)'`
|
||||
do
|
||||
cp $i $TMP_DIR/$DOCBOOK/$i
|
||||
done
|
||||
|
||||
echo "done. Build archive and move it later ..."
|
||||
fi
|
||||
|
||||
echo "-> Build archives and move all in export directory :"
|
||||
cd $TMP_DIR/
|
||||
for i in $ALL_IN_ONE $ONLINE $DOCBOOK
|
||||
do
|
||||
echo -e "\t$i : "
|
||||
echo -en "\t\t+ Archive : "
|
||||
tar -cjf LdapSaisie--Doc--$i.tar.bz2 $i && mv LdapSaisie--Doc--$i.tar.bz2 $EXPORT_DOC_DIR/
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
echo Ok
|
||||
else
|
||||
echo -e "\n-> Error"
|
||||
ERROR=1
|
||||
fi
|
||||
|
||||
echo -en "\t\t+ Web dir : "
|
||||
[ ! -d "$EXPORT_DOC_DIR/$i" ] && echo "you must create export $i directory manualy before run this script. (path : $EXPORT_DOC_DIR/$i)" && continue
|
||||
rm -fr $EXPORT_DOC_DIR/$i/* && cp -fr $i/* $EXPORT_DOC_DIR/$i/ && rm -fr $i
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
echo Ok
|
||||
else
|
||||
echo -e "\n-> Error"
|
||||
ERROR=1
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n "$LAST_UPDATE_FILE" ]
|
||||
then
|
||||
echo -n "-> Create last-update file : "
|
||||
echo "Last update :" > $LAST_UPDATE_FILE
|
||||
date >> $LAST_UPDATE_FILE
|
||||
cd $ROOT_DIR
|
||||
git log|head -n 1 >> $LAST_UPDATE_FILE
|
||||
echo >> $LAST_UPDATE_FILE
|
||||
echo done.
|
||||
fi
|
||||
|
||||
rm -fr $TMP_DIR
|
||||
|
||||
exit $ERROR
|
|
@ -1,42 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
ROOT_DIR=$( cd `dirname $0`; pwd )
|
||||
LOCAL_CFG_DIR=$ROOT_DIR/config.local
|
||||
|
||||
# Import config
|
||||
if [ ! -f $LOCAL_CFG_DIR/local.sh ]
|
||||
then
|
||||
echo "Error : You don't have create your own local.sh file in config.local directory. You could rely on the local.sh.example file to create your version."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source $LOCAL_CFG_DIR/local.sh
|
||||
|
||||
if [ ! -n "$EXPORT_DOC_DIR" ]
|
||||
then
|
||||
echo "The EXPORT_DOC_DIR variable is not define. Export doc is disabled."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ ! -d "$EXPORT_DOC_DIR" ]
|
||||
then
|
||||
echo "Error : Export directory $EXPORT_DOC_DIR does not exist !"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if [ ! -n "$LAST_UPDATE_FILE" ]
|
||||
then
|
||||
echo "Error : The LAST_UPDATE_FILE is necessary for update detection !"
|
||||
exit 3
|
||||
fi
|
||||
|
||||
cd $ROOT_DIR
|
||||
|
||||
CURRENT=`grep ^commit $LAST_UPDATE_FILE | cut -d ' ' -f 2`
|
||||
if [ "`git diff $CURRENT -- doc`" != "" ]
|
||||
then
|
||||
echo "Export documentation is necessary"
|
||||
echo "================================="
|
||||
echo "Current doc exports was generated from the commit $CURRENT."
|
||||
echo "Changes have been made since."
|
||||
fi
|
5
composer.json
Normal file
5
composer.json
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"require-dev": {
|
||||
"phpstan/phpstan": "^1.9"
|
||||
}
|
||||
}
|
78
composer.lock
generated
Normal file
78
composer.lock
generated
Normal file
|
@ -0,0 +1,78 @@
|
|||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "37f736b754e8e0455f279bf0da013262",
|
||||
"packages": [],
|
||||
"packages-dev": [
|
||||
{
|
||||
"name": "phpstan/phpstan",
|
||||
"version": "1.9.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpstan/phpstan.git",
|
||||
"reference": "d03bccee595e2146b7c9d174486b84f4dc61b0f2"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/d03bccee595e2146b7c9d174486b84f4dc61b0f2",
|
||||
"reference": "d03bccee595e2146b7c9d174486b84f4dc61b0f2",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.2|^8.0"
|
||||
},
|
||||
"conflict": {
|
||||
"phpstan/phpstan-shim": "*"
|
||||
},
|
||||
"bin": [
|
||||
"phpstan",
|
||||
"phpstan.phar"
|
||||
],
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "PHPStan - PHP Static Analysis Tool",
|
||||
"keywords": [
|
||||
"dev",
|
||||
"static analysis"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/phpstan/phpstan/issues",
|
||||
"source": "https://github.com/phpstan/phpstan/tree/1.9.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/ondrejmirtes",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/phpstan",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-12-17T13:33:52+00:00"
|
||||
}
|
||||
],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": [],
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.3.0"
|
||||
}
|
|
@ -16,39 +16,3 @@ THEME_IMG_REF="default"
|
|||
|
||||
# Webserver service reload command to run on gettext MO files changed
|
||||
#WEBSERVER_RELOAD_CMD='sudo service apache2 force-reload'
|
||||
|
||||
# Do doc export ?
|
||||
BUILD_DOC=1
|
||||
|
||||
# The export dir
|
||||
# If EXPORT_DIR is a zero length string, will not export doc
|
||||
EXPORT_DOC_DIR=/var/www/ldapsaisie-doc
|
||||
|
||||
# PDF export name file
|
||||
# If PDF is a zero length string, pdf doc export will not build
|
||||
PDF=LdapSaisie.pdf
|
||||
|
||||
# EPUB export name file
|
||||
# If EPUB is a zero length string, epub doc export will not build
|
||||
EPUB=LdapSaisie.epub
|
||||
|
||||
# ALL_IN_ONE export name
|
||||
# If ALL_IN_ONE is a zero length string, all-in-one doc export will not build
|
||||
ALL_IN_ONE=all-in-one
|
||||
|
||||
# On-line export name
|
||||
# If ONLINE is a zero length string, on-line doc export will not build
|
||||
ONLINE=online
|
||||
|
||||
# Docbook export name
|
||||
# If DOCBOOK is a zero length string, docbook doc export will not buil
|
||||
DOCBOOK=docbook
|
||||
|
||||
# The CSS file to use in export
|
||||
CSS=$ROOT_DIR/doc/styles/LS.css
|
||||
|
||||
# The image doc directory
|
||||
IMAGES=$ROOT_DIR/doc/images
|
||||
|
||||
# The name of last update file
|
||||
LAST_UPDATE_FILE=$EXPORT_DOC_DIR/last_update.txt
|
||||
|
|
413
debian/changelog
vendored
413
debian/changelog
vendored
|
@ -1,3 +1,414 @@
|
|||
ldapsaisie (4.2.0-1) stable; urgency=medium
|
||||
|
||||
* PHP 8.2 support
|
||||
* LSconfig: add escape_key, explode_keys and implode_keys helper methods
|
||||
* Improve LSldapObject::getDisplayValue() method to match with getValue() method's parameters
|
||||
* Fix LSattribute::getDisplayValue() when called on updated attribute
|
||||
* LSattr_ldap::date: replace unique format parameter by a list
|
||||
* Fix some french translated messages
|
||||
* Auth:
|
||||
* LSauth: add filter_function parameter
|
||||
* LSauthMethod::CAS: fix support of phpCAS >= 1.6.0 and patched Debian Buster 1.3.6-1+deb10u1 version
|
||||
* Addons
|
||||
* accesslog:
|
||||
* Improve displaying changes attributes values
|
||||
* Fix infinity loop problem handling entry renaming event with the same DN
|
||||
* ftp: Remove PEAR Net_FTP dependency
|
||||
* posix: Add deleteHomeDirectoryByFTP function
|
||||
* supann: Add supannCMSIdEtiquette attribute support
|
||||
* doc: switch format to Markdown & Mkdocs
|
||||
|
||||
-- LdapSaisie project <support+ldapsaisie@easter-eggs.com> Thu, 26 Oct 2023 11:55:52 +0200
|
||||
|
||||
ldapsaisie (4.1.0-1) unstable; urgency=medium
|
||||
|
||||
* PHP8 compatibility
|
||||
* Import/export:
|
||||
* Allow translation of labels
|
||||
* Add before/after import triggers feature
|
||||
* Allow to generate attribute value using a custom callable
|
||||
* Add update_only mode
|
||||
* Trace errors and messages during import to map them with objects and hooks.
|
||||
* Improve handling time & memory limits and allow before_import hook to set them
|
||||
* import: Check generated field value and stop import in case of error
|
||||
* import: Fix displaying attribute errors two times
|
||||
* Translation:
|
||||
* Fix handling backslash in export POT file
|
||||
* Improve internal message extrators from PHP files
|
||||
* CLI commands messages translation
|
||||
* generate_lang_file: add possibility to translate message in a text editor
|
||||
* generate_lang_file: ignore LSformat string with simple string substitution
|
||||
* Make location paths in ldapsaisie.pot file relative
|
||||
* generate_ldapsaisie_pot: Add -I/--internal paramater to use internal message extractor for PHP files instead of xgettext
|
||||
* Templating tr function: provided message could now be formated as LSformat string using extra provided parameters
|
||||
* Search:
|
||||
* handle translation of LSformat, alternativeLSformats and formaterLSformat
|
||||
* Fix/improve handling data keep in session
|
||||
* globalSearch: defaulty display extraDisplayedColumns
|
||||
* LSsession:
|
||||
* fix saving context info method to keep existing other info
|
||||
* canExecuteCustomAction(): fix handling self LSprofile
|
||||
* loadLSprofiles(): reset current LSprofiles on each call
|
||||
* LSprofiles by LSobject: add possibility to compute basedn using LSformat on authenticated user
|
||||
* LSldap:
|
||||
* add formatDate() method
|
||||
* add possibility to configure hooks
|
||||
* getAttr(): be sure to return on array when $multiple is true
|
||||
* add LDAP password policy support
|
||||
* update(): fix object creation with required userPassword attribute
|
||||
* translate code comments
|
||||
* fix updating internal attributes
|
||||
* LSform:
|
||||
* fix handling default values of dataEntryForm
|
||||
* dataEntryForm: Add forceGeneration parameter
|
||||
* LSformElements
|
||||
* inarray: add reverse parameter
|
||||
* jsonCompositeAttribute:
|
||||
* fix checking non-multiple components value
|
||||
* fix handling empty value & $onlyIfPresent parameter
|
||||
* pre: Fix long lines diplay
|
||||
* select_list/select_box: display values respecting possible values order and force sub-options at the end when sorting
|
||||
* Themes:
|
||||
* light-blue.css: Fix LSobject-list links color on line hover
|
||||
* Fix default ASC & DESC images color to fit with clear themes
|
||||
* Addons:
|
||||
* Some news addons: accesslog, impersonate, orgchart, ppolicy, showSupportInfo
|
||||
* Code cleaning
|
||||
* Mail:
|
||||
* fix catch all message suffix in HTML mode
|
||||
* make optional parameter of sendMail() defaulty null
|
||||
* add MAIL_CATCH_ALL parameter
|
||||
* SUPANN:
|
||||
* Rename some functions:
|
||||
* supannCheckEduPersonPrimaryAffiliation => validate_eduPersonPrimaryAffiliation
|
||||
* supannCheckEduPersonAffiliation => validate_eduPersonAffiliation
|
||||
* Add some new functions:
|
||||
* generate_supannRessourceEtat
|
||||
* generate_supannEntiteAffectationPrincipale & validate_supannEntiteAffectationPrincipale
|
||||
* Add UAI code of ENSAD
|
||||
* LSformElements:
|
||||
* supannCompositeAttribute: fix checking components value
|
||||
* supannEtuInscription: fix cursusann component regex
|
||||
* LSexample:
|
||||
* Make restore_lsexample compatible with OpenLDAP 2.5 (and Debian Bookworm)
|
||||
* LSexample: restore compatibility with Debian stretch
|
||||
* Remove showObjectAccessLogs custom action on LSpeople
|
||||
* Defaulty enable LSpeople API access
|
||||
* Other changes:
|
||||
* LSerror::getErrors(): add $reset parameter
|
||||
* LSselect: fix ajax input
|
||||
* AJAX routes: ensure to enable AJAX mode even if an error occured handling request
|
||||
* LSldapObject::validateAttrsData(): fix handling attribute generation of empty required attributes even if their new value have been provided
|
||||
* Add argon2 passwords support
|
||||
* LSdefault / copyable helper: add copyable-no-btn helper class and fix translating messages
|
||||
* Add some helper functions: generate_uuid(), getRdn() and parentDn()
|
||||
* Code cleaning and quality improvement using PHPstan and pre-commit & CI to maintain it
|
||||
* Fix typos
|
||||
|
||||
-- Benjamin Renard <brenard@easter-eggs.com> Sat, 22 Jul 2023 13:38:40 +0200
|
||||
|
||||
ldapsaisie (4.0.0-1) unstable; urgency=medium
|
||||
|
||||
* Add API feature
|
||||
* Add full import / export objets feature (see LSio & LSioFormat)
|
||||
* Global improvements on SUPANN support:
|
||||
* nomenclatures:
|
||||
* Update/clean nomenclatures
|
||||
* Normalize affiliations & civilites nomenclatures
|
||||
* rework on nomenclatures loading
|
||||
* Add support for new attributes :
|
||||
* supannMailPrive
|
||||
* supannAdressePostalePrivee
|
||||
* supannTelephonePrive
|
||||
* supannOIDCGenre
|
||||
* supannCodePopulation
|
||||
* supannEmpProfil
|
||||
* supannExtProfil
|
||||
* supannEtuDiplome
|
||||
* supannEtuElementPedagogique
|
||||
* supannEtuEtape
|
||||
* supannEtuRegimeInscription
|
||||
* supannEtuSecteurDisciplinaire
|
||||
* supannEtuTypeDiplome
|
||||
* supannRessourceEtat
|
||||
* supannRessourceEtatDate
|
||||
* add new components of supannEtuInscription attribute (SUPANN 2021)
|
||||
* add generate_supann_codeEtablissement_uai_nomenclature CLI command
|
||||
* add eduPersonUniqueId()
|
||||
* supannParseCompositeValue(): check global value integrity
|
||||
* Improve SUPANN attributes CSS
|
||||
* Add dynamic groups support (with cache members attributes)
|
||||
* Ensure attributes values are always an array in LSattribute & LSattr_ldap
|
||||
* Remove historic read right on all attributes of the hard-coded "admin" LSprofile
|
||||
* LSsession:
|
||||
* improve loadLSaddons() method
|
||||
* fix errors in changeAuthUser() and add logging messages
|
||||
* Fix/improve LSsession_13 errors (unconfigured/unknown custom action function)
|
||||
* checkAccess(): fix checking read right
|
||||
* Fix relationCanAccess() method and add debuging infos
|
||||
* displayAjaxReturn(): Adjust HTTP returned code on unsuccessfull request
|
||||
* getLSuserObject(): improve errors logging
|
||||
* setApiMode now trigger LSsession :: setAjaxDisplay()
|
||||
* LSldap: fix search & getNumberResult methods to use basedn from configuration instead of empty
|
||||
one.
|
||||
* LSldapObject:
|
||||
* make method _updateData() protected instead of private
|
||||
* fix/improve validateAttrData()
|
||||
* submitChange():
|
||||
* on new object, check if generated DN is not already affected
|
||||
* Add security check about isNew() return
|
||||
* fix error renaming LSobject
|
||||
* fix default $attrValues handling for updateObjectsInRelation/deleteOneObjectInRelation methods
|
||||
* clean update/validate form data code to fix handling just check mode
|
||||
* fix triggering after_modify event on create
|
||||
* getValue(): ensure return is array in case of attribute
|
||||
* LSrelation: add display_name_format parameter
|
||||
* LSattribute:
|
||||
* fix canBeGenerated() when default_value isn't a string
|
||||
* fix handling default_value in generateValue()
|
||||
* add default LDAP & HTML type (ascii / text)
|
||||
* addToForm(): fix checking user rights before adding/freezing it
|
||||
* fix handling current/provided data
|
||||
* addToForm(): fix freezing
|
||||
* LSattr_ldap:
|
||||
* shadowExpire:
|
||||
* fix getUpdateData()
|
||||
* fix to rounding method to avoid date change
|
||||
* compositeValueToJSON: use static instead of self keyword (to allow override)
|
||||
* Add pwdHistory
|
||||
* date: add note about date & time with micro-seconds
|
||||
* naiveDate: Add format option
|
||||
* password: fix verify method for Salted SHA2 passwords
|
||||
* sambaAcctFlagsparse_flags(): fix handling null|empty value
|
||||
* LSattr_html:
|
||||
* jsonCompositeAttribute: Add fullWidth parameter and improve responsive display
|
||||
* sambaAcctFlags: Add note about how setting default_value
|
||||
* valueWithUnit: fix handling zero value
|
||||
* select_box: add inline parameter
|
||||
* fix handling current/provided data
|
||||
* add $singleValue class variable to handle this common case
|
||||
* LSform:
|
||||
* fix displaying error in form in case of global error
|
||||
* fix displaying multiple errors on same field (on Ajax submit)
|
||||
* display fields errors in same order as triggered
|
||||
* fix reporting failure on Ajax submit
|
||||
* LSformElement:
|
||||
* getApiValue(): add $details parameter
|
||||
* getEmptyField(): do not set value to null (already set by fetchTemplate())
|
||||
* labeledValue:
|
||||
* fix/improve display
|
||||
* add translate_labels parameter and fix translating it
|
||||
* fix label translation on freeze view
|
||||
* date: fix getPostData() method
|
||||
* mail:
|
||||
* Move autocomplete feature in text parent class
|
||||
* fix duplicated email JS button
|
||||
* supannLabeledValue: Add validation of POST values from configured nomenclatures
|
||||
* image: fix bug deleting current image
|
||||
* password:
|
||||
* fix using LSldapobject getDisplayFData method instead of getFData
|
||||
* fix sendind email in create form
|
||||
* fix multiple sent email in some cases
|
||||
* supannLabeledValue:
|
||||
* fix unparsable value display
|
||||
* improve API mode
|
||||
* supannCompositeAttribute:
|
||||
* Add possibility to override parse/format value methods to handledifferent composite value
|
||||
formats
|
||||
* Add possibility to configure date components LDAP format
|
||||
* handle API/CLI mode
|
||||
* LSformRule:
|
||||
* add validate_values() method and use it to value rules
|
||||
* do not defined validate_one_by_one constant visibility
|
||||
* add possibility to throw custom exception to provide error details
|
||||
* Improve LSformRules to throw LSformRuleException with error details and only show default
|
||||
error message if rule does not trigger itself an error
|
||||
* Handle rule without options or message
|
||||
* Add numberOfValues rule
|
||||
* configure CLI parameters autocompleters
|
||||
* compare: code cleaning
|
||||
* add zxcvbn rule for password security check
|
||||
* LSsearch:
|
||||
* rename method setParamsFormPostData() to setParamsFromRequest()
|
||||
* setParamsFromRequest(): add check on parameters load from request data
|
||||
* setParamsFromRequest(): fix error handling filter parameter
|
||||
* LSaddons:
|
||||
* mail: Add test_send_mail CLI command
|
||||
* mailquota: improve error reporting
|
||||
* posix: fix generate_shadowLastChange()
|
||||
* samba: fix PHP warning about LS_SAMBA_UNIX_ID_POOL_DN contant
|
||||
* LSaccessRightsMatrixView:
|
||||
* handle LSform layout to ordering attributes
|
||||
* handle inherited rights from user LSprofiles
|
||||
* LSurl:
|
||||
* add request HTTP method check that must match with one of supported by handler
|
||||
(default: GET or POST)
|
||||
* add_handler: fix handling all params in case of multiple patterns
|
||||
* expose current request as static class variable
|
||||
* handle_request() now handle Ajax mode detection
|
||||
* LSurlRequest: fix fatal error on logging
|
||||
* LSconfig :: get(): add array casting (using ensureIsArray())
|
||||
* LSlang:
|
||||
* fix loading alternative lang files in local directory
|
||||
* fix handling locales that only existing in local directory
|
||||
* Authentication:
|
||||
* Add authz proxy authorization support
|
||||
* LSauthMethod_HTTP: fix logging HTTP_AUTHORIZATION parsing error
|
||||
* Interface:
|
||||
* Fix/improve/factorize search pagination
|
||||
* Fix/improve LSobject & LSsearch customActions code
|
||||
* Add LSdefaut copyable feature and use it in showTechInfo
|
||||
* routes.php: fix error calling LSsession::addErrorCode() vs LSerror::addErrorCode()
|
||||
* Add footer with LdapSaisie version
|
||||
* Add preprod CSS & SVG image to easily add a watermark
|
||||
* Improve/fix LSdefaut / LSsession / LSerror / LSdebug / LSinfosBox
|
||||
* Fix handling noRedirect parameter of LSobject's customAction
|
||||
* Fix handling disableOnSuccessMsg parameter on LSobject customActions
|
||||
* LStemplate:
|
||||
* detect and stop template displaying loop (trigger a fatal error)
|
||||
* fatal_error(): correctly handle Ajax mode
|
||||
* CSS:
|
||||
* Fix possibility to scroll the menu on responsive view
|
||||
* light-blue.css:
|
||||
* improve custom select display
|
||||
* fix handling ul.LSselect_selectable_object_types
|
||||
* fix handling LSformElement_valueWithUnit width
|
||||
* Fix displaying toggle-menu button in responsive view
|
||||
* fix tables style
|
||||
* Add LStable CSS class to make easier to create customized table
|
||||
* HTML buttons are now handle by default CSS (and light-blue one)
|
||||
* CLI:
|
||||
* show:
|
||||
* fix handling --raw-values parameter
|
||||
* add JSON output (with -j|--json parameters)
|
||||
* search:
|
||||
* add --all parameter to permit to disable pagination
|
||||
* add JSON output (with -j|--json parameters)
|
||||
* generate_lang_file: some improvements
|
||||
* add -F/--fix-utf8 parameter
|
||||
* add -K/--keep-unused parameter
|
||||
* Add import & export commands
|
||||
* Add test_form_rule command
|
||||
* Default config files:
|
||||
* add ending-line commas to avoid problem on editing
|
||||
* fix value_attribute ('dn' vs '%{dn}')
|
||||
* Debian packaging:
|
||||
* Make logrotate handling all log file in /var/log/ldapsaisie
|
||||
* remove deprecated php-file-csv-datasource dependency
|
||||
* add recommend on php-unidecode (for withoutAccents() improvements)
|
||||
* helpers:
|
||||
* Add ensureIsArray() helper and use it to make code more readable
|
||||
* withoutAccents(): use unidecode lib if available
|
||||
* Improve getCallableName()
|
||||
* Code cleaning and fix some PHP warnings
|
||||
* Add some debugging/trace messages
|
||||
* Doc:
|
||||
* Add note about how setting default_value
|
||||
* API relation method: use group objects from LSexample
|
||||
* Add anchors for API sections
|
||||
* Remove PEAR File_CSV_DataSource deprecated dependency
|
||||
* add IDs to sections
|
||||
* Add README file
|
||||
* Improve doc about attribute values validation
|
||||
* LSrelation: Make canEdit_attribute parameter more visible in case of simple relation
|
||||
* improve contrib / LSformRules section
|
||||
* Fix project URLs and list emails addresses
|
||||
* LSexample:
|
||||
* LSpeople:
|
||||
* fix sambaPwdCanChange as single-value
|
||||
* improve pagination config
|
||||
* personalTitle: remove Ms deprecated possible value
|
||||
* LSgroup: upgrade generate_gidNumber_withSambaDomainObject to generate_samba_gidNumber
|
||||
* Add Ppolicy support
|
||||
* Add restore_lsexample script
|
||||
|
||||
-- Benjamin Renard <brenard@easter-eggs.com> Mon, 20 Dec 2021 14:11:51 +0100
|
||||
|
||||
ldapsaisie (3.0.2-1) unstable; urgency=medium
|
||||
|
||||
* LSsession:
|
||||
* includeFile(): improve logging
|
||||
* loadLSprofiles(): restructuring code and improve comments and logging
|
||||
* loadLSobject(): auto declare simple PHP class for simple LSObject type if
|
||||
PHP class file not found
|
||||
* Improve error messages
|
||||
* LSauthMethod :: authenticate(): fix PHP warning
|
||||
* LSurl::redirect: fix handling absolute URL without protocol
|
||||
For instance "//localhost/phpldapadmin/")
|
||||
* light-blue.css: fix objet link color in list when table row is hover
|
||||
* LStemplate::getImagePath(): handle SVG image type/ext as preferred format
|
||||
* LSsearch:
|
||||
* Fix/improve logging
|
||||
* Remove buggy _hash cache parameter and replace it by an hash accessible key
|
||||
* getHash(): fix handling onlyAccessible parameter
|
||||
* LSsearchEntry: remove useless $hash private property
|
||||
* LScli: add --trace parameter
|
||||
* modify page: fix URL encode object DN in redirection URL
|
||||
* LSlang:
|
||||
* Fix warning about return not True
|
||||
* generate_lang_file CLI command:
|
||||
* Add Q choice in interactive mode to quit
|
||||
* Factor handling possible_values of select list&box
|
||||
* Improve logging
|
||||
* Handle redirections of old-style URL even if user not authenticated
|
||||
* Translate LSerror message at formating/diplaying time
|
||||
* Attribute types:
|
||||
* image: fix error on non-AJAX form when no file is submitted
|
||||
* date:
|
||||
* Add special_values parameter (also add for LSformRule::date)
|
||||
* Make today button working even if input is empty
|
||||
* Add clear button
|
||||
* select_box: fix double translation of labels on unfreeze field
|
||||
* select_list:
|
||||
* clean code of getPossibleValues() method
|
||||
* add get_possible_values parameter
|
||||
* shadowExpire: fix getUpdateData() method to return string values and
|
||||
add doc about this undocumented LDAP attribute type
|
||||
* LSformRule:
|
||||
* provide reference to LSformElement instead of copied value
|
||||
* imagesize: use self :: log_debug() instead of LSdebug()
|
||||
* date: add special_values parameter
|
||||
* LSldapObject:
|
||||
* getValue(): add $first and $default parameters
|
||||
* submitChange(): improve logging
|
||||
* add isValidTypeName() method and use it in LSsession::loadLSobject().
|
||||
LSobject type name must now only contains letter, digits, dash or underscore.
|
||||
* loadData(): explicitly list need attributes in LDAP request
|
||||
* LSrelation:
|
||||
* fix error codes prefix
|
||||
* check relation is correctly configured before using it to avoid some unreal warnings
|
||||
in case of misconfigured relation
|
||||
* LSformElement::getEmptyField() / LSformElement.tpl: Provide value index as $value_idx
|
||||
template variable
|
||||
* Improve POSIX and Samba support:
|
||||
* Improve LSaddons samba & posix
|
||||
* Add LSattr LDAP & HTML sambaAcctFlags type
|
||||
* Fix home and profile path formats in default configuration
|
||||
* Improve POSIX & Samba config in LSexample
|
||||
* LSaddons:
|
||||
* Add showTechInfo LSaddon
|
||||
* Improve LSaddons samba & posix
|
||||
* LSmail: add possibility to send HTML email
|
||||
* SUPPAN: add support for some attributes
|
||||
* LSaccessRightsMatrixView: handle customActions & customSearchActions
|
||||
* LSldap: fix/improve update() and getEntry() methods
|
||||
* Logging:
|
||||
* Improve logging on LSobject & LSattribute triggers executions
|
||||
* Extend LSlog_handler using LSlog_staticLoggerClass
|
||||
* Add warning on unknown key requested using __get methods
|
||||
* Add __toString() method to all common extendable PHP classes to make context logging
|
||||
easier
|
||||
* Log referrer URL in case of old-style URL redirection
|
||||
* LSform:
|
||||
* fix non-AJAX form submission (or form with input[type=file])
|
||||
* fix/improve handling config (especially, fix handling ajaxSubmit configuration parameter)
|
||||
* Fix handling "0" (zero string) value
|
||||
* Doc:
|
||||
* some fixes and improvements
|
||||
* Publish and complete contrib section about LSaddons, LSformElements and LSformRules
|
||||
|
||||
-- Benjamin Renard <brenard@easter-eggs.com> Wed, 30 Sep 2020 11:35:29 +0200
|
||||
|
||||
ldapsaisie (3.0.1-1) unstable; urgency=medium
|
||||
|
||||
* LSformElement JS: fire change event on input field cleared
|
||||
|
@ -259,7 +670,7 @@ ldapsaisie (1.8-4) unstable; urgency=medium
|
|||
* Add LSattr_html :: wysiwyg
|
||||
* Add LSaddon exportSearchResultAsCSV
|
||||
* Fix default LSpeople configuration
|
||||
* LSauthMethod::HTTP : support multiple methods to retreive user and
|
||||
* LSauthMethod::HTTP : support multiple methods to retrieve user and
|
||||
password from HTTP server
|
||||
* Documentation :
|
||||
+ Improve doc on LSattr_html::pre
|
||||
|
|
6
debian/control
vendored
6
debian/control
vendored
|
@ -1,13 +1,13 @@
|
|||
Source: ldapsaisie
|
||||
Section: admin
|
||||
Priority: extra
|
||||
Build-Depends: debhelper, xsltproc, docbook-xsl, bash-completion
|
||||
Build-Depends: debhelper, bash-completion, python3, python3-venv, python3-pip
|
||||
Maintainer: Benjamin Renard <brenard@easter-eggs.com>
|
||||
|
||||
Package: ldapsaisie
|
||||
Architecture: all
|
||||
Depends: apache2 | httpd, php-ldap | php5-ldap, php-fpm | libapache2-mod-php5 | libapache2-mod-php | php5-cli | php-cli, smarty | smarty3, php-net-ldap2, php-net-ftp, php-mail, php-mail-mime, php-file-csv-datasource, php-console-table
|
||||
Recommends: php-mbstring, php-phpseclib
|
||||
Depends: apache2 | httpd, php-ldap | php5-ldap, php-fpm | libapache2-mod-php5 | libapache2-mod-php | php5-cli | php-cli, smarty | smarty3, php-net-ldap2, php-console-table
|
||||
Recommends: php-mbstring, php-phpseclib, php-unidecode, php-zxcvbn, php-ftp, php-mail, php-mail-mime, php-html2text, php-gnupg
|
||||
Description: web based interface for managing LDAP servers content
|
||||
LdapSaisie is a Web application developed to manage LDAP directory.
|
||||
It has been written in PHP / JavaScript and is published under the
|
||||
|
|
42
debian/ldapsaisie.NEWS
vendored
42
debian/ldapsaisie.NEWS
vendored
|
@ -1,3 +1,45 @@
|
|||
ldapsaisie (4.0.0-1) unstable; urgency=medium
|
||||
|
||||
This major release was built around three main goals :
|
||||
* Add an API feature that allow to provide the same features of the web interface in progammatic
|
||||
way
|
||||
* Add full import and export objets feature
|
||||
* Improve the SUPANN support to handle support new attributes provided in 2020 v2 release ot the
|
||||
recommendations.
|
||||
|
||||
Around these main goals, a lot of small fixes and improvements have been done.
|
||||
|
||||
Please also note that an historic read right on all attributes of the hard-coded "admin"
|
||||
LSprofile have been removed.
|
||||
|
||||
-- Benjamin Renard <brenard@easter-eggs.com> Mon, 20 Dec 2021 14:11:51 +0100
|
||||
|
||||
ldapsaisie (3.0.2-1) unstable; urgency=medium
|
||||
|
||||
This release include a lot of small fixes and improvements, especially in logging.
|
||||
It also include some noteworthy improvements :
|
||||
- Empty LSldapObject PHP classes for your custom object types is now useless: they
|
||||
will be self-generated if they don't exists.
|
||||
- SVG images are now supported as preferred format.
|
||||
- Possible values list of select attributes could now be generated using a custom
|
||||
configurable function (see doc for details).
|
||||
- Date attribute now support configurable special values
|
||||
- LSldapObject :: getValue() method now accept $first and $default parameters that
|
||||
could be useful to simplify your custom code.
|
||||
- LSldapObject :: loadData() explicitly list need attributes in LDAP request. More
|
||||
than permit to be more efficient, this permit to handle special LDAP attributes
|
||||
which must be explicitly requested to be return by LDAP server.
|
||||
- LSformElement::getEmptyField() / LSformElement.tpl now provide value index as
|
||||
$value_idx template variable. This could be useful to handle composite attribute.
|
||||
- Improve POSIX, Samba and Supann support: handle some new attributes
|
||||
- Add showTechInfo LSaddon that could be useful for admin to see technical information
|
||||
of LDAP object.
|
||||
- "0" (zero string) value are finally properly managed.
|
||||
Please see /usr/share/doc/ldapsaisie/changelog.Debian.gz for complete list of
|
||||
changes.
|
||||
|
||||
-- Benjamin Renard <brenard@easter-eggs.com> Wed, 30 Sep 2020 11:35:29 +0200
|
||||
|
||||
ldapsaisie (3.0.0-1) unstable; urgency=medium
|
||||
|
||||
This release introduce important modifications and especially :
|
||||
|
|
2
debian/ldapsaisie.bash-completion
vendored
2
debian/ldapsaisie.bash-completion
vendored
|
@ -5,7 +5,7 @@ _ldapsaisie()
|
|||
local cur words cword
|
||||
_get_comp_words_by_ref -n "=" cur words cword
|
||||
|
||||
# Retreive COMPREPLY using bash_autocomplete ldapsaisie CLI command
|
||||
# Retrieve COMPREPLY using bash_autocomplete ldapsaisie CLI command
|
||||
COMPREPLY=( $(ldapsaisie bash_autocomplete ${cword} -- ${words[@]}) )
|
||||
|
||||
# If current word to complete contain '=' and if it's a word-break char
|
||||
|
|
2
debian/ldapsaisie.docs
vendored
Normal file
2
debian/ldapsaisie.docs
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
lsexample
|
||||
doc/LdapSaisie.html
|
2
debian/ldapsaisie.install
vendored
2
debian/ldapsaisie.install
vendored
|
@ -1,4 +1,2 @@
|
|||
debian/conf/apache.conf etc/ldapsaisie/
|
||||
lsexample/schema/lsexample.schema etc/ldap/schema/
|
||||
lsexample/schema/lsexample.ldif etc/ldap/schema/
|
||||
src/* usr/share/ldapsaisie/
|
||||
|
|
2
debian/ldapsaisie.logrotate
vendored
2
debian/ldapsaisie.logrotate
vendored
|
@ -1,4 +1,4 @@
|
|||
/var/log/ldapsaisie/ldapsaisie.log {
|
||||
/var/log/ldapsaisie/*.log {
|
||||
daily
|
||||
missingok
|
||||
rotate 7
|
||||
|
|
4
debian/rules
vendored
4
debian/rules
vendored
|
@ -4,7 +4,7 @@
|
|||
dh $@ --with bash-completion
|
||||
|
||||
override_dh_auto_build:
|
||||
make -C $(CURDIR)/doc/exports/html -f Makefile debian
|
||||
make -C $(CURDIR)/doc -f Makefile debian
|
||||
|
||||
override_dh_clean:
|
||||
dh_clean
|
||||
|
@ -23,6 +23,8 @@ override_dh_install:
|
|||
sed -i 's/tmp\/LS.log/\/var\/log\/ldapsaisie\/ldapsaisie.log/' $(CURDIR)/debian/ldapsaisie/usr/share/ldapsaisie/conf/config.inc.php
|
||||
# Change default public_root_url
|
||||
sed -i "s/^\(\s*'public_root_url' => \).*/\1'\/ldapsaisie\/',/" $(CURDIR)/debian/ldapsaisie/usr/share/ldapsaisie/conf/config.inc.php
|
||||
# Change LS_VERSION
|
||||
sed -i "s/^define('LS_VERSION',.*/define('LS_VERSION', '$(shell dpkg-parsechangelog | egrep '^Version:' | cut -f 2 -d ' ')');/" $(CURDIR)/debian/ldapsaisie/usr/share/ldapsaisie/includes/core.php
|
||||
|
||||
# Make a copy of default config.inc.php to /usr/local/share/ldapsaisie/conf/config.inc.example.php (=/etc/ldapsaisie/local/conf/config.inc.php)
|
||||
cp $(CURDIR)/debian/ldapsaisie/usr/share/ldapsaisie/conf/config.inc.php $(CURDIR)/debian/ldapsaisie/usr/local/share/ldapsaisie/conf/config.inc.example.php
|
||||
|
|
6
doc/.gitignore
vendored
Normal file
6
doc/.gitignore
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
public_html
|
||||
LdapSaisie.html
|
||||
LdapSaisie.pdf
|
||||
LdapSaisie.epub
|
||||
venv
|
||||
dist
|
|
@ -1,41 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!ENTITY LdapSaisie "<application>LdapSaisie</application>">
|
||||
<!ENTITY netldap "<application><ulink url='http://pear.php.net/package/Net_LDAP2'>Net_LDAP2</ulink></application>">
|
||||
<!ENTITY smarty "<application><ulink url='http://www.smarty.net/'>Smarty</ulink></application>">
|
||||
<!ENTITY php "<application><ulink url='http://www.php.net/'>PHP</ulink></application>">
|
||||
<!ENTITY PEAR "<application><ulink url='http://pear.php.net/'>PEAR</ulink></application>">
|
||||
<!ENTITY PEAR_PearFile_CSV_DataSource "<application><ulink url='https://pear.php.net/package/File_CSV_DataSource'>File_CSV_DataSource</ulink></application>">
|
||||
<!ENTITY PEAR_Console_Table "<application><ulink url='https://pear.php.net/package/Console_Table'>Console_Table</ulink></application>">
|
||||
<!ENTITY PEAR_Net_FTP "<application><ulink url='https://pear.php.net/package/Net_FTP'>Net_FTP</ulink></application>">
|
||||
<!ENTITY PEAR_Mail "<application><ulink url='https://pear.php.net/package/Mail'>Mail</ulink></application>">
|
||||
<!ENTITY PEAR_Mail_Mime "<application><ulink url='https://pear.php.net/package/Mail_Mime'>Mail_Mime</ulink></application>">
|
||||
<!ENTITY PhpSecLib "<application><ulink url='https://github.com/phpseclib/phpseclib'>PhpSecLib</ulink></application>">
|
||||
<!ENTITY openldap "<application><ulink url='http://www.openldap.org/'>OpenLDAP</ulink></application>">
|
||||
<!ENTITY courier "<application><ulink url='http://www.courier-mta.org/'>Courier</ulink></application>">
|
||||
<!ENTITY CAS "<application><ulink url='http://www.jasig.org/cas'>CAS</ulink></application>">
|
||||
<!ENTITY phpCAS "<application><ulink url='http://www.ja-sig.org/wiki/display/CASC/phpCAS'>phpCAS</ulink></application>">
|
||||
<!ENTITY PhpLdapAdmin "<application><ulink url='http://phpldapadmin.sourceforge.net'>PhpLdapAdmin</ulink></application>">
|
||||
<!ENTITY TinyMCE "<application><ulink url='https://www.tinymce.com'>TinyMCE</ulink></application>">
|
||||
|
||||
<!ENTITY subDn "<link linkend='config-subDn'>subDn</link>">
|
||||
<!ENTITY LSprofile "<link linkend='config-LSprofile'>LSprofile</link>">
|
||||
<!ENTITY LSprofiles "<link linkend='config-LSprofile'>LSprofiles</link>">
|
||||
<!ENTITY LSobject "<link linkend='config-LSobject'>LSobject</link>">
|
||||
<!ENTITY LSobjects "<link linkend='config-LSobject'>LSobjects</link>">
|
||||
<!ENTITY LSattribute "<link linkend='config-LSattribute'>LSattribute</link>">
|
||||
<!ENTITY LSattributes "<link linkend='config-LSattribute'>LSattributes</link>">
|
||||
<!ENTITY customActions "<link linkend='config-LSobject-customActions'>customActions</link>">
|
||||
<!ENTITY customSearchActions "<link linkend='config-LSobject-customSearchActions'>customActions</link>">
|
||||
<!ENTITY LSrelation "<link linkend='config-LSobject-LSrelation'>LSrelation</link>">
|
||||
<!ENTITY LSrelations "<link linkend='config-LSobject-LSrelation'>LSrelations</link>">
|
||||
<!ENTITY LSform "<link linkend='config-LSobject-LSform'>LSform</link>">
|
||||
<!ENTITY LSforms "<link linkend='config-LSobject-LSform'>LSforms</link>">
|
||||
<!ENTITY LSformat "<link linkend='config-LSformat'>LSformat</link>">
|
||||
<!ENTITY LSformats "<link linkend='config-LSformat'>LSformats</link>">
|
||||
<!ENTITY LSaddon "<link linkend='config-LSaddon'>LSaddon</link>">
|
||||
<!ENTITY LSaddons "<link linkend='config-LSaddon'>LSaddons</link>">
|
||||
<!ENTITY LSauthMethod "<link linkend='config-LSauthMethod'>LSauthMethod</link>">
|
||||
<!ENTITY LSselect "<emphasis>LSselect</emphasis>">
|
||||
<!ENTITY LSsearch "<link linkend='config-LSobject-LSsearch'>LSsearch</link>">
|
||||
|
||||
<!ENTITY GIT_RAW_ROOT_URL "https://gitlab.easter-eggs.com/ee/ldapsaisie/-/raw/master">
|
|
@ -1,54 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE
|
||||
book SYSTEM "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||||
[
|
||||
<!ENTITY % LS-entities SYSTEM "LS.entities.xml">
|
||||
%LS-entities;
|
||||
|
||||
<!ENTITY % conf-entities SYSTEM "conf/conf.entities.xml">
|
||||
%conf-entities;
|
||||
<!ENTITY % conf-LSattribute-LSattr_html-entities SYSTEM "conf/LSattribute/LSattr_html/LSattr_html.entities.xml">
|
||||
%conf-LSattribute-LSattr_html-entities;
|
||||
<!ENTITY % conf-LSattribute-LSattr_ldap-entities SYSTEM "conf/LSattribute/LSattr_ldap/LSattr_ldap.entities.xml">
|
||||
%conf-LSattribute-LSattr_ldap-entities;
|
||||
<!ENTITY % conf-LSattribute-check_data-entities SYSTEM "conf/LSattribute/check_data/LSattribute-check_data.entities.xml">
|
||||
%conf-LSattribute-check_data-entities;
|
||||
<!ENTITY % conf-LSaddon-entities SYSTEM "conf/LSaddon/LSaddon.entities.xml">
|
||||
%conf-LSaddon-entities;
|
||||
<!ENTITY % conf-LSauthMethod-entities SYSTEM "conf/LSauthMethod/LSauthMethod.entities.xml">
|
||||
%conf-LSauthMethod-entities;
|
||||
|
||||
<!ENTITY intro SYSTEM "intro/intro.docbook">
|
||||
<!ENTITY install SYSTEM "install/install.docbook">
|
||||
<!ENTITY install-arbo SYSTEM "install/arbo.docbook">
|
||||
<!ENTITY upgrade SYSTEM "upgrade/upgrade.docbook">
|
||||
]>
|
||||
|
||||
<book lang="fr">
|
||||
|
||||
<bookinfo lang="fr">
|
||||
<title>LdapSaisie</title>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Benjamin</firstname>
|
||||
<surname>Renard</surname>
|
||||
<affiliation>
|
||||
<address>
|
||||
<email>brenard@easter-eggs.com</email>
|
||||
<email>benjamin.renard@zionetrix.net</email>
|
||||
</address>
|
||||
</affiliation>
|
||||
</author>
|
||||
</authorgroup>
|
||||
<productname>LdapSaisie</productname>
|
||||
<releaseinfo>Version 0.3</releaseinfo>
|
||||
</bookinfo>
|
||||
|
||||
&intro;
|
||||
|
||||
&install;
|
||||
|
||||
&upgrade;
|
||||
|
||||
&conf;
|
||||
</book>
|
44
doc/Makefile
44
doc/Makefile
|
@ -1,16 +1,40 @@
|
|||
DOCBOOK_FILE=LdapSaisie.docbook
|
||||
build: venv public_html LdapSaisie.html LdapSaisie.pdf LdapSaisie.epub
|
||||
|
||||
all: validate export
|
||||
public_html: venv
|
||||
venv/bin/mkdocs build -s
|
||||
|
||||
# Validation
|
||||
validate:
|
||||
xmllint --valid --noout $(DOCBOOK_FILE)
|
||||
LdapSaisie.html: venv public_html
|
||||
venv/bin/htmlark public_html/print_page/index.html -o LdapSaisie.tmp.html
|
||||
venv/bin/python clean-all-in-one-html-file.py LdapSaisie.tmp.html LdapSaisie.html
|
||||
rm -f LdapSaisie.tmp.html
|
||||
|
||||
export:
|
||||
cd exports; make all
|
||||
LdapSaisie.pdf: LdapSaisie.html
|
||||
docker run -v $(CURDIR):/workspace pink33n/html-to-pdf --url file:///workspace/LdapSaisie.html --pdf LdapSaisie.pdf
|
||||
|
||||
html:
|
||||
cd exports/html; make all-in-one/LdapSaisie.html
|
||||
LdapSaisie.epub: LdapSaisie.html
|
||||
pandoc LdapSaisie.html \
|
||||
-f html \
|
||||
--toc \
|
||||
--standalone \
|
||||
--top-level-division=chapter \
|
||||
--highlight-style style/pygments.theme \
|
||||
--css style/epub.css \
|
||||
--metadata=title:"Documentation LdapSaisie" \
|
||||
--metadata=author:"Benjamin Renard" \
|
||||
--metadata=lang:"fr-FR" \
|
||||
--metadata=cover-image:"../logos/ldapsaisie-logo.png" \
|
||||
--pdf-engine=weasyprint \
|
||||
-o LdapSaisie.epub
|
||||
|
||||
venv:
|
||||
python3 -m venv venv
|
||||
venv/bin/python -m pip install --upgrade pip setuptools
|
||||
venv/bin/python -m pip install -r requirements.txt
|
||||
|
||||
clean:
|
||||
cd exports; make clean
|
||||
rm -fr venv public_html LdapSaisie.html LdapSaisie.pdf LdapSaisie.epub
|
||||
|
||||
serve: venv
|
||||
venv/bin/mkdocs serve
|
||||
|
||||
debian: LdapSaisie.html
|
||||
|
|
35
doc/README
35
doc/README
|
@ -1,35 +0,0 @@
|
|||
Makefile :
|
||||
##########
|
||||
|
||||
The root Makefile permit currently 3 actions :
|
||||
* Validation : For the xml validation of docbook files
|
||||
make validate
|
||||
|
||||
* Export : For build the documentation exports in all available formats
|
||||
make export
|
||||
|
||||
* Clean : Delete non-sources files
|
||||
make clean
|
||||
|
||||
Dependencies :
|
||||
##############
|
||||
|
||||
For validation :
|
||||
================
|
||||
* xmllint command (in debian package libxml2-utils)
|
||||
|
||||
For exports :
|
||||
=============
|
||||
* in HTML :
|
||||
~~~~~~~~~~~
|
||||
+ xsltproc command (in debian package xsltproc)
|
||||
+ XSL stylesheets by N.Walsh (html/docbook.xsl, htmlhelp/htmlhelp.xsl
|
||||
and xhtml/chunk.xsl) (in debian package docbook-xsl)
|
||||
|
||||
* in PDF :
|
||||
~~~~~~~~~~
|
||||
+ jw command (in debian package docbook-utils)
|
||||
|
||||
* in EPUB :
|
||||
~~~~~~~~~~~
|
||||
+ dbtoepub command ((in debian package dbtoepub)
|
40
doc/clean-all-in-one-html-file.py
Normal file
40
doc/clean-all-in-one-html-file.py
Normal file
|
@ -0,0 +1,40 @@
|
|||
import sys
|
||||
import os.path
|
||||
|
||||
from bs4 import BeautifulSoup
|
||||
|
||||
# Check & handle arguments
|
||||
if len(sys.argv) < 2:
|
||||
print(f'Usage: {sys.argv[0]} [/path/to/input.html] [/path/to/output.html]')
|
||||
sys.exit(1)
|
||||
|
||||
input_path = sys.argv[1]
|
||||
|
||||
if not os.path.exists(input_path):
|
||||
print(f'{input_path} not found')
|
||||
sys.exit(1)
|
||||
|
||||
output_path = sys.argv[2] if len(sys.argv) > 2 else input_path
|
||||
|
||||
# Open & parse HTML input file
|
||||
with open(input_path, 'r') as fp:
|
||||
soup = BeautifulSoup(fp, 'html.parser')
|
||||
|
||||
# Delete some useless elements
|
||||
to_delete = [
|
||||
(['div'], {'class': 'md-sidebar'}),
|
||||
(['div'], {'class': 'md-search'}),
|
||||
(['label'], {'for': '__search'}),
|
||||
(['div'], {'id': 'print-site-banner'}),
|
||||
(['div'], {'class': 'md-header__source'}),
|
||||
]
|
||||
for args, kwargs in to_delete:
|
||||
for el in soup.find_all(*args, **kwargs):
|
||||
el.decompose()
|
||||
|
||||
# Change LdapSaisie logo header link to JS scroll top action
|
||||
soup.find('a', attrs={'class': 'md-logo'})['href'] = 'javascript:window.scrollTo(0,0)'
|
||||
|
||||
# Store resulting HTML document in output file
|
||||
with open(output_path, 'w') as fp:
|
||||
fp.write(str(soup))
|
|
@ -1,57 +0,0 @@
|
|||
<sect2 id='config-search-params'>
|
||||
<title>Paramètres étendus des recherches dans l'annuaire</title>
|
||||
<para>Les paramètres des recherches sont ceux supportés par &netldap;. Ces
|
||||
paramètres sont passés sous la forme d'un tableau associatif. Les paramètres
|
||||
supportés sont détaillés ci-dessous :
|
||||
|
||||
<informaltable>
|
||||
<tgroup cols="3"> <!-- on décrit le nombre de colonnes -->
|
||||
<thead> <!-- on passe au "header" du tableau -->
|
||||
<row>
|
||||
<entry>Nom</entry>
|
||||
<entry>Description</entry>
|
||||
<entry>Valeur par défaut</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody> <!-- et on remplit les lignes -->
|
||||
<row>
|
||||
<entry><parameter>scope</parameter></entry>
|
||||
<entry>
|
||||
<simpara>Définition de l'étendue de la recherche :</simpara>
|
||||
<itemizedlist>
|
||||
<listitem><simpara><literal>base</literal> - Sur une entrée seulement</simpara></listitem>
|
||||
<listitem><simpara><literal>one</literal> - Sur les entrées imédiatement contenu par le <parameter>basedn</parameter> de la recherche</simpara></listitem>
|
||||
<listitem><simpara><literal>sub</literal> - Sur l'arbre entier</simpara></listitem>
|
||||
</itemizedlist>
|
||||
</entry>
|
||||
<entry><literal>sub</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><parameter>sizelimit</parameter></entry>
|
||||
<entry>Le nombre maximum d'entrées retournées par la recherche.</entry>
|
||||
<entry><literal>0</literal> (illimité)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><parameter>timelimit</parameter></entry>
|
||||
<entry>Le délai d'attente maximum de la réponse du serveur en secondes.</entry>
|
||||
<entry><literal>0</literal> (illimité)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><parameter>attrsonly</parameter></entry>
|
||||
<entry>Si <emphasis>vrai</emphasis>, seuls les noms des atttributs seront
|
||||
retournés.</entry>
|
||||
<entry><literal>false</literal></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><parameter>attributes</parameter></entry>
|
||||
<entry>Tableau contenant les noms des attributs que les entrées retournées
|
||||
peuvent contenir et que l'on souhaite récupérer.</entry>
|
||||
<entry><literal>array()</literal>(tous)</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
<remark>Pour plus d'information sur le sujet, vous pouvez consulter la
|
||||
documentation officiel du projet &netldap;.</remark>
|
||||
</para>
|
||||
</sect2>
|
|
@ -1,20 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<sect1 id='config-LSaddon'>
|
||||
<title>Configuration des LSaddons</title>
|
||||
<para>
|
||||
Cette partie décrit la manière de configurer les différents &LSaddons;
|
||||
actuellement supportés par &LdapSaisie;. Ces addons peuvent avoir un
|
||||
fichier de configuration et il sera alors stocké dans le dossier
|
||||
<literal>conf/LSaddons/</literal> et potera le nom
|
||||
<literal>config.LSaddons.[addon name].php</literal>.
|
||||
</para>
|
||||
|
||||
&conf-LSaddon_asterisk;
|
||||
&conf-LSaddon_exportSearchResultAsCSV;
|
||||
&conf-LSaddon_LSaccessRightsMatrixView;
|
||||
&conf-LSaddon_mail;
|
||||
&conf-LSaddon_maildir;
|
||||
&conf-LSaddon_mailquota;
|
||||
&conf-LSaddon_phpldapadmin;
|
||||
|
||||
</sect1>
|
|
@ -1,9 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!ENTITY conf-LSaddon_asterisk SYSTEM "LSaddon_asterisk.docbook">
|
||||
<!ENTITY conf-LSaddon_exportSearchResultAsCSV SYSTEM "LSaddon_exportSearchResultAsCSV.docbook">
|
||||
<!ENTITY conf-LSaddon_LSaccessRightsMatrixView SYSTEM "LSaddon_LSaccessRightsMatrixView.docbook">
|
||||
<!ENTITY conf-LSaddon_mail SYSTEM "LSaddon_mail.docbook">
|
||||
<!ENTITY conf-LSaddon_maildir SYSTEM "LSaddon_maildir.docbook">
|
||||
<!ENTITY conf-LSaddon_mailquota SYSTEM "LSaddon_mailquota.docbook">
|
||||
<!ENTITY conf-LSaddon_phpldapadmin SYSTEM "LSaddon_phpldapadmin.docbook">
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
<sect2 id="config-LSaddon_LSaccessRightsMatrixView">
|
||||
<title>LSaddon_LSaccessRightsMatrixView</title>
|
||||
<para>Cet &LSaddon; offre une interface de visualisation des droits d'accès
|
||||
des différents &LSprofiles; configurés. Pour chaque type d'objet, la matrice
|
||||
des droits d'accès par attribut et par profil est affiché sous la forme d'un
|
||||
tableau.</para>
|
||||
|
||||
<para>Le fichier de configuration permet de définir au travers la variable
|
||||
<literal>$GLOBALS['LSaccessRightsMatrixView_allowed_LSprofiles']</literal>
|
||||
la liste des &LSprofiles; autorisés à accéder à cette interface.</para>
|
||||
</sect2>
|
|
@ -1,7 +0,0 @@
|
|||
<sect2 id="config-LSaddon_asterisk">
|
||||
<title>LSaddon_asterisk</title>
|
||||
<para>Cet &LSaddon; est utilisé pour gérer les fonctionnalités spécifiques au serveur de téléphonie Asterisk.
|
||||
Cet &LSaddon; donne accès à une fonction permettant l'encodage d'un mot de passe au format spécifique attendu
|
||||
par Asterisk. Ce format est un hash MD5 d'une chaine de caractère composée du nom d'utilisateur, d'une chaine
|
||||
fixe spécifiée dans la configuration d'Asterisk et du mot de passe en clair.</para>
|
||||
</sect2>
|
|
@ -1,50 +0,0 @@
|
|||
<sect2 id="config-LSaddon_exportSearchResultAsCSV">
|
||||
<title>LSaddon_exportSearchResultAsCSV</title>
|
||||
<para>Cet &LSaddon; fournie une fonction du même nom pouvant être utilisée
|
||||
comme &customSearchActions; et permettant de télécharger le résultat d'une
|
||||
recherche au format CSV. L'export généré reprend exactement le contenu des
|
||||
colonnes du tableau du résultat de la recherche. Le DN de l'objet LDAP
|
||||
correspondant est également fournis dans une colonne.</para>
|
||||
|
||||
<para>Des paramètres de configuration sont disponibles dans le fichier de
|
||||
configuration <literal>config.LSaddons.exportSearchResultAsCSV.php</literal>.
|
||||
Ils permettent notamment de contrôller le format du fichier CSV généré.</para>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure du fichier</citetitle>
|
||||
<![CDATA[// CSV file delimiter
|
||||
define('LS_EXPORTSEARCHRESULTASCSV_DELIMITER',',');
|
||||
|
||||
// CSV file enclosure
|
||||
define('LS_EXPORTSEARCHRESULTASCSV_ENCLOSURE','"');
|
||||
|
||||
// CSV file escape character (available since PHP 5.5.4)
|
||||
define('LS_EXPORTSEARCHRESULTASCSV_ESCAPE_CHAR','\\');]]>
|
||||
</programlisting>
|
||||
|
||||
<para>Ci-dessous, vous trouverez un exemple de configuration de la fonction
|
||||
<literal>exportSearchResultAsCSV()</literal> comme &customSearchActions;</para>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Exemple d'utilisation</citetitle><![CDATA[$GLOBALS['LSobjects']['LSpeople']['LSsearch'] = array (
|
||||
[...]
|
||||
'customActions' => array (
|
||||
'exportSearchResultAsCSV' => array (
|
||||
'label' => 'Export result as CSV',
|
||||
'icon' => 'export_csv',
|
||||
'function' => 'exportSearchResultAsCSV',
|
||||
'noConfirmation' => true,
|
||||
'disableOnSuccessMsg' => true,
|
||||
'rights' => array (
|
||||
'admin'
|
||||
)
|
||||
),
|
||||
),
|
||||
[...]
|
||||
);]]>
|
||||
</programlisting>
|
||||
|
||||
<note><simpara>Le label et l'icône fournis dans cet exemple sont traduits
|
||||
et délivrés avec &LdapSaisie;</simpara></note>
|
||||
|
||||
</sect2>
|
|
@ -1,85 +0,0 @@
|
|||
<sect2 id="config-LSaddon_mail">
|
||||
<title>LSaddon_mail</title>
|
||||
<para>Cet &LSaddon; est utilisé pour gérer l'envoie de mail. Le module
|
||||
&PEAR; Mail doit être installé. Il doit être configuré en éditant son
|
||||
fichier de configuration <literal>config.LSaddons.mail.php</literal>.</para>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure du fichier</citetitle>/*
|
||||
***********************************************
|
||||
* Configuration du support de l'envoi de mail *
|
||||
***********************************************
|
||||
*/
|
||||
|
||||
// Pear :: Mail
|
||||
define('PEAR_MAIL','/usr/share/php/Mail.php');
|
||||
|
||||
// Pear :: Mail_mime
|
||||
define('PEAR_MAIL_MIME','/usr/share/php/Mail/mime.php');
|
||||
|
||||
/*
|
||||
* Méthode d'envoie :
|
||||
* - mail : envoie avec la méthode PHP mail()
|
||||
* - sendmail : envoie la commande sendmail du système
|
||||
* - smtp : envoie en utilisant un serveur SMTP
|
||||
*/
|
||||
define('MAIL_SEND_METHOD','smtp');
|
||||
|
||||
/*
|
||||
* Paramètres d'envoie :
|
||||
* Ces paramètres dépende de la méthode utilisé. Repporté vous à la documentation
|
||||
* de PEAR :: Mail pour plus d'information.
|
||||
* Lien : http://pear.php.net/manual/en/package.mail.mail.factory.php
|
||||
* Infos :
|
||||
* List of parameter for the backends
|
||||
* mail
|
||||
* o If safe mode is disabled, $params will be passed as the fifth
|
||||
* argument to the PHP mail() function. If $params is an array,
|
||||
* its elements will be joined as a space-delimited string.
|
||||
* sendmail
|
||||
* o $params["sendmail_path"] - The location of the sendmail program
|
||||
* on the filesystem. Default is /usr/bin/sendmail.
|
||||
* o $params["sendmail_args"] - Additional parameters to pass to the
|
||||
* sendmail. Default is -i.
|
||||
* smtp
|
||||
* o $params["host"] - The server to connect. Default is localhost.
|
||||
* o $params["port"] - The port to connect. Default is 25.
|
||||
* o $params["auth"] - Whether or not to use SMTP authentication.
|
||||
* Default is FALSE.
|
||||
* o $params["username"] - The username to use for SMTP authentication.
|
||||
* o $params["password"] - The password to use for SMTP authentication.
|
||||
* o $params["localhost"] - The value to give when sending EHLO or HELO.
|
||||
* Default is localhost
|
||||
* o $params["timeout"] - The SMTP connection timeout.
|
||||
* Default is NULL (no timeout).
|
||||
* o $params["verp"] - Whether to use VERP or not. Default is FALSE.
|
||||
* o $params["debug"] - Whether to enable SMTP debug mode or not.
|
||||
* Default is FALSE.
|
||||
* o $params["persist"] - Indicates whether or not the SMTP connection
|
||||
* should persist over multiple calls to the send() method.
|
||||
*/
|
||||
$MAIL_SEND_PARAMS = NULL;
|
||||
|
||||
/*
|
||||
* Headers :
|
||||
*/
|
||||
$MAIL_HEARDERS = array(
|
||||
);
|
||||
</programlisting>
|
||||
|
||||
<para>Cet &LSaddon; offre la possibilité d'utilisé la fonction &php;
|
||||
<function>sendMail()</function>.
|
||||
<funcsynopsis>
|
||||
<funcprototype>
|
||||
<funcdef>bool <function>sendMail</function></funcdef>
|
||||
<paramdef>string <parameter>$to</parameter></paramdef>
|
||||
<paramdef>string <parameter>$subject</parameter></paramdef>
|
||||
<paramdef>string <parameter>$msg</parameter></paramdef>
|
||||
<paramdef>array <parameter>$headers</parameter></paramdef>
|
||||
<paramdef>array <parameter>$attachments</parameter></paramdef>
|
||||
<paramdef>string <parameter>$eol</parameter></paramdef>
|
||||
<paramdef>string <parameter>$encoding</parameter></paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
</para>
|
||||
</sect2>
|
|
@ -1,5 +0,0 @@
|
|||
<sect2 id="config-LSaddon_maildir">
|
||||
<title>LSaddon_maildir</title>
|
||||
<para>Cet &LSaddon; est utilisé pour gérer la manipulation distante de maildir.
|
||||
FIXME</para>
|
||||
</sect2>
|
|
@ -1,60 +0,0 @@
|
|||
<sect2 id="config-LSaddon_mailquota">
|
||||
<title>LSaddon_mailquota</title>
|
||||
<para>Cet &LSaddon; fournie une fonction <literal>mailquota_get_usage</literal>
|
||||
pouvant être utilisée pour récupérer l'utilisation du quota d'une boîte mail
|
||||
IMAP. Pour cela, &LdapSaisie; se connecte au serveur IMAP en utilisant un
|
||||
compte maître.</para>
|
||||
<para>Cet &LSaddon; fournie une également une fonction
|
||||
<literal>mailquota_show_usage</literal> pouvant être utilisée comme
|
||||
&customSearchActions; et permettant d'afficher l'utilisation du quota de la
|
||||
boîte mail correspondante via une message dynamique (<literal>LSinfo</literal>).
|
||||
</para>
|
||||
|
||||
<para>Des paramètres de configuration sont disponibles dans le fichier de
|
||||
configuration <literal>config.LSaddons.mailquota.php</literal>.</para>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure du fichier</citetitle>
|
||||
<![CDATA[// IMAP Mailbox connection string LSformat (composed with LSldapObject attributes)
|
||||
// See : https://php.net/imap_open (parameter $mailbox)
|
||||
define('MAILQUOTA_IMAP_MAILBOX','{localhost}');
|
||||
|
||||
// IMAP Master user
|
||||
define('MAILQUOTA_IMAP_MASTER_USER', 'ldapsaisie');
|
||||
|
||||
// IMAP Master user's password
|
||||
define('MAILQUOTA_IMAP_MASTER_USER_PWD', 'secret');
|
||||
|
||||
// IMAP Master user LSformat composed with :
|
||||
// * masteruser = master username (MAILQUOTA_IMAP_MASTER_USER)
|
||||
// * LSldapObject attributes
|
||||
define('MAILQUOTA_IMAP_MASTER_USER_FORMAT', '%{mail}*%{masteruser}');
|
||||
|
||||
// IMAP quota root mailbox
|
||||
define('MAILQUOTA_IMAP_QUOTA_ROOT_MAILBOX', 'INBOX');]]>
|
||||
</programlisting>
|
||||
|
||||
<para>Ci-dessous, vous trouverez un exemple de configuration de la fonction
|
||||
<literal>mailquota_show_usage()</literal> comme &customActions;</para>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Exemple d'utilisation</citetitle><![CDATA[$GLOBALS['LSobjects']['LSpeople'] = array (
|
||||
[...]
|
||||
'customActions' => array (
|
||||
'showmailquotausage' => array (
|
||||
'function' => 'mailquota_show_usage',
|
||||
'label' => 'Show mail quota usage',
|
||||
'noConfirmation' => true,
|
||||
'disableOnSuccessMsg' => true,
|
||||
'icon' => 'mail',
|
||||
'rights' => array (
|
||||
'admin'
|
||||
)
|
||||
),
|
||||
[...]
|
||||
),
|
||||
[...]
|
||||
);]]>
|
||||
</programlisting>
|
||||
|
||||
</sect2>
|
|
@ -1,44 +0,0 @@
|
|||
<sect2 id="config-LSaddon_phpldapadmin">
|
||||
<title>LSaddon_phpldapadmin</title>
|
||||
<para>Cet &LSaddon; est utilisé pour permettre un lien facile entre le logiciel
|
||||
&PhpLdapAdmin; et LdapSaisie. Il sera possible ainsi à partir d'un objet dans
|
||||
LdapSaisie de voir ce même objet dans &PhpLdapAdmin;.</para>
|
||||
|
||||
<para>Il est necessaire de configurer l'URL de votre installation de &PhpLdapAdmin; dans
|
||||
le fichier de configuration <literal>config.LSaddons.phpldapadmin.php</literal>.</para>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure du fichier</citetitle>
|
||||
<![CDATA[// PhpLdapAdmin View Object URL format
|
||||
define('LS_PHPLDAPADMIN_VIEW_OBJECT_URL_FORMAT','//'.$_SERVER['SERVER_NAME'].'/phpldapadmin/cmd.php?cmd=template_engine&server_id=0&dn=%{dn}');]]>
|
||||
</programlisting>
|
||||
|
||||
<para>Cet &LSaddon; offre la possibilité d'utilisé la fonction &php;
|
||||
<function>redirectToPhpLdapAdmin()</function> comme &customActions;.
|
||||
<funcsynopsis>
|
||||
<funcprototype>
|
||||
<funcdef>bool <function>redirectToPhpLdapAdmin</function></funcdef>
|
||||
<paramdef>LSldapObject <parameter>$ldapObject</parameter></paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
</para>
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Exemple d'utilisation</citetitle><![CDATA[$GLOBALS['LSobjects']['LSpeople'] = array (
|
||||
[...]
|
||||
'customActions' => array (
|
||||
'redirectPhpLdapAdmin' => array (
|
||||
'function' => 'redirectToPhpLdapAdmin',
|
||||
'label' => 'See in PhpLdapAdmin',
|
||||
'hideLabel' => True,
|
||||
'noConfirmation' => true,
|
||||
'disableOnSuccessMsg' => true,
|
||||
'icon' => 'phpldapadmin',
|
||||
'rights' => array (
|
||||
'admin'
|
||||
)
|
||||
),
|
||||
),
|
||||
[...]
|
||||
);]]>
|
||||
</programlisting>
|
||||
</sect2>
|
|
@ -1,290 +0,0 @@
|
|||
<sect2 id="config-LSattribute">
|
||||
<title>Configuration des attributs</title>
|
||||
<para>Cette section décrit les options de configuration des attributs des
|
||||
&LSobjects;. Les attributs sont définis dans le tableau associatif
|
||||
<varname>attrs</varname> de la configuration des &LSobjects;. Dans ce tableau,
|
||||
les clé les noms des attributs et les valeurs liés sont la configuration des
|
||||
attributs.</para>
|
||||
|
||||
<warning><simpara>Contrairement à ce qui existe dans le standard LDAP, les
|
||||
noms des attributs sont sensibles à la casse. Il faut que le nom des attributs
|
||||
dans &LdapSaisie; soient scrupuleusement les mêmes que ceux retourné par
|
||||
&netldap;</simpara></warning>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure</citetitle>...
|
||||
<![CDATA['attrs' => array (
|
||||
/* ----------- start -----------*/
|
||||
'attr1' => array (
|
||||
'label' => '[label de l'attr1',
|
||||
'displayAttrName' => '[booleen]',
|
||||
'help_info' => '[Message d'aide sur l'attribut attr1]',
|
||||
'help_info_in_view' => '[booleen]',
|
||||
'ldap_type' => 'ldaptype1',
|
||||
'ldap_options' => array(
|
||||
// Options LDAP liées au type LDAP de l'attribut
|
||||
),
|
||||
'html_type' => 'htmltype1',
|
||||
'html_options' => array(
|
||||
// Options HTML liées au type HTML de l'attribut
|
||||
),
|
||||
'no_value_label' => '[No set value label]',
|
||||
'multiple' => 0,
|
||||
'required' => 1,
|
||||
'generate_function' => 'fonction1',
|
||||
'generate_value_format' => '[LSformat]',
|
||||
'default_value' => 'valeur1',
|
||||
'check_data' => array (
|
||||
// Régle de vérification syntaxique des données saisies
|
||||
),
|
||||
'validation' => array (
|
||||
// Règle de vérification d'intégrité des données saisies
|
||||
),
|
||||
'rights' => array(
|
||||
'LSprofile1' => 'droit1',
|
||||
'LSprofile2' => 'droit2',
|
||||
...
|
||||
),
|
||||
'view' => 1,
|
||||
'form' => array (
|
||||
'create' => 1,
|
||||
'modify' => 0,
|
||||
...
|
||||
),
|
||||
'dependAttrs' => array(
|
||||
// Attributs en dépendance
|
||||
),
|
||||
'onDisplay' => 'fonction2'
|
||||
|
||||
'before_modify' => 'function1',
|
||||
'after_modify' => 'function2'
|
||||
),
|
||||
/* ----------- end -----------*/
|
||||
...
|
||||
);]]>
|
||||
...
|
||||
</programlisting>
|
||||
|
||||
<!-- Début Paramètres Configuration -->
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>label</term>
|
||||
<listitem>
|
||||
<simpara>Le label de l'attribut.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>displayAttrName</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si le nom de l'attribut doit être affiché en
|
||||
préfixe du message d'aide (paramètre <parameter>help_info</parameter>).</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>help_info</term>
|
||||
<listitem>
|
||||
<simpara>Message d'aide qui sera affiché dans une bulle d'aide à côté du
|
||||
nom de l'attribut dans les formulaires.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>help_info_in_view</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si le message d'aide doit être affiché sur la vue
|
||||
de visualisation de l'objet.</simpara>
|
||||
<simpara>Valeurs possibles : <emphasis>0</emphasis> ou <emphasis>1</emphasis></simpara>
|
||||
<simpara>Valeur par défaut : <emphasis>0</emphasis></simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>ldap_type</term>
|
||||
<listitem>
|
||||
<simpara>Le type LDAP de l'attribut.
|
||||
<link linkend='config-LSattr_ldap'>Voir la section concernée.</link></simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>ldap_options</term>
|
||||
<listitem>
|
||||
<simpara>Tableau associatif contenant les paramètres de configuration du
|
||||
type LDAP de l'attribut.
|
||||
<link linkend='config-LSattr_ldap'>Voir la section concernée.</link></simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>html_type</term>
|
||||
<listitem>
|
||||
<simpara>Le type HTML de l'attribut.
|
||||
<link linkend='config-LSattr_html'>Voir la section concernée.</link></simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>html_options</term>
|
||||
<listitem>
|
||||
<simpara>Tableau associatif contenant les paramètres de configuration du
|
||||
type HTML de l'attribut.
|
||||
<link linkend='config-LSattr_html'>Voir la section concernée.</link></simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>no_value_label</term>
|
||||
<listitem>
|
||||
<simpara>Label affiché lorsque l'attribut n'a pas de valeur (facultatif).</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>multiple</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si cet attribut peut stocker plusieurs valeurs.</simpara>
|
||||
<simpara>Valeurs possibles : <emphasis>0</emphasis> ou <emphasis>1</emphasis></simpara>
|
||||
<simpara>Valeur par défaut : <emphasis>0</emphasis></simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>required</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si cet attribut doit obligatoirement être
|
||||
défini.</simpara>
|
||||
<simpara>Valeurs possibles : <emphasis>0</emphasis> ou <emphasis>1</emphasis></simpara>
|
||||
<simpara>Valeur par défaut : <emphasis>0</emphasis></simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>generate_function</term>
|
||||
<listitem>
|
||||
<simpara>Nom de la fonction permettant de générer la valeur de l'attribut.
|
||||
Cette fonction sera éxecutée, en passant en premier paramètre, l'objet
|
||||
&LSobject; courant.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>generate_value_format</term>
|
||||
<listitem>
|
||||
<simpara>&LSformat; permettant la génération de l'attribut.</simpara>
|
||||
<note><simpara>Cette méthode de génération est utilisée uniquement si aucune fonction de génération
|
||||
de la valeur n'est définie (paramètre <parameter>generate_function</parameter>).</simpara></note>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>default_value</term>
|
||||
<listitem>
|
||||
<simpara>Valeur par défaut de l'attribut.</simpara>
|
||||
<simpara>Valeurs possibles : <emphasis>0</emphasis> ou <emphasis>1</emphasis></simpara>
|
||||
<note><simpara>Cette valeur est également utilisée dans le cadre de la génération automatique
|
||||
de la valeur de l'attribut si aucune autre méthode n'est disponible (via une fonction ou un &LSformat;).</simpara></note>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>check_data</term>
|
||||
<listitem>
|
||||
<simpara>Tableau associatif contenant les règles de vérification syntaxique
|
||||
des données de l'attribut.<link linkend='config-LSattribute-check-data'>Voir
|
||||
la section concernée.</link></simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>validation</term>
|
||||
<listitem>
|
||||
<simpara>Tableau associatif contenant les règles de vérification d'intégrité
|
||||
des données de l'attribut.<link linkend='config-LSattribute-validation'>Voir
|
||||
la section concernée.</link></simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>rights</term>
|
||||
<listitem>
|
||||
<simpara>Tableau associatif dont les clés sont les noms des &LSprofiles; ayant
|
||||
des droits sur cet attribut et les valeurs associées sont les droits
|
||||
correspondants. La valeur des droits d'un &LSprofile; peut être
|
||||
<literal>r</literal> pour le droit de lecture ou <literal>w</literal> pour
|
||||
le droit de lecture-écriture. Par défaut, un &LSprofile; n'a aucun droit.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>view</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si l'attribut est, ou non, affiché lors de la
|
||||
visualisation des objets du type courant.</simpara>
|
||||
<simpara>Valeurs possibles : <emphasis>0</emphasis> ou <emphasis>1</emphasis></simpara>
|
||||
<simpara>Valeur par défaut : <emphasis>0</emphasis></simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>form</term>
|
||||
<listitem>
|
||||
<simpara>Tableau associatif dont les clés sont les noms des &LSforms; et les
|
||||
valeurs associées la définition de l'affichage dans ce &LSform;. Si cette
|
||||
valeur vaut <emphasis>0</emphasis>, alors l'attribut sera lecture-seule et si
|
||||
cette valeur vaut <emphasis>1</emphasis>, cet attribut sera affiché en
|
||||
lecture-écriture.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>dependAttrs</term>
|
||||
<listitem>
|
||||
<simpara>Tableau associatif listant les attributs dépendants de celui-ci.
|
||||
Les attributs listés ici seront regénérés lors de chaque modification
|
||||
de l'attribut courant. Cette génération sera effectué avec la fonction
|
||||
définie dans le paramètre <varname>generate_function</varname> de
|
||||
l'attribut.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>onDisplay</term>
|
||||
<listitem>
|
||||
<simpara>Nom ou liste de nom des fonctions retournant les valeurs d'affichages
|
||||
de l'attribut. Si c'est une liste, chacune des fonctions seront executée les
|
||||
unes après les autres. Ces fonctions seront éxecutées, en passant en premier
|
||||
paramètre, le tableau des valeurs de l'objet.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>before_modify</term>
|
||||
<listitem>
|
||||
<simpara>Nom de la fonction qui sera exécutée avant toutes modifications de
|
||||
la valeur de l'attribut.<link linkend="config-LSattribute-triggers">Voir la
|
||||
section concernée</link></simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>after_modify</term>
|
||||
<listitem>
|
||||
<simpara>Nom de la fonction qui sera exécutée après toutes modifications de
|
||||
la valeur de l'attribut.<link linkend="config-LSattribute-triggers">Voir la
|
||||
section concernée</link></simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
&conf-LSattribute-LSattr_ldap;
|
||||
&conf-LSattribute-LSattr_html;
|
||||
|
||||
&conf-LSattribute-check-data;
|
||||
&conf-LSattribute-validation;
|
||||
&conf-LSattribute-triggers;
|
||||
|
||||
</sect2>
|
|
@ -1,30 +0,0 @@
|
|||
<sect3 id="config-LSattr_html">
|
||||
<title>Configuration des attributs HTML</title>
|
||||
<para>Cette section décrit les options propres à chacun des types d'attributs HTML
|
||||
supportés par &LdapSaisie;.</para>
|
||||
|
||||
&conf-LSattr_html_boolean;
|
||||
&conf-LSattr_html_date;
|
||||
&conf-LSattr_html_image;
|
||||
&conf-LSattr_html_jsonCompositeAttribute;
|
||||
&conf-LSattr_html_labeledValue;
|
||||
&conf-LSattr_html_mail;
|
||||
&conf-LSattr_html_maildir;
|
||||
&conf-LSattr_html_mailQuota;
|
||||
&conf-LSattr_html_password;
|
||||
&conf-LSattr_html_postaladdress;
|
||||
&conf-LSattr_html_pre;
|
||||
&conf-LSattr_html_rss;
|
||||
&conf-LSattr_html_select_box;
|
||||
&conf-LSattr_html_select_list;
|
||||
&conf-LSattr_html_select_object;
|
||||
&conf-LSattr_html_ssh_key;
|
||||
&conf-LSattr_html_tel;
|
||||
&conf-LSattr_html_text;
|
||||
&conf-LSattr_html_textarea;
|
||||
&conf-LSattr_html_url;
|
||||
&conf-LSattr_html_valueWithUnit;
|
||||
&conf-LSattr_html_wywiwyg;
|
||||
&conf-LSattr_html_xmpp;
|
||||
|
||||
</sect3>
|
|
@ -1,28 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!ENTITY conf-LSattr_html_boolean SYSTEM "LSattr_html_boolean.docbook">
|
||||
<!ENTITY conf-LSattr_html_date SYSTEM "LSattr_html_date.docbook">
|
||||
<!ENTITY conf-LSattr_html_image SYSTEM "LSattr_html_image.docbook">
|
||||
<!ENTITY conf-LSattr_html_jsonCompositeAttribute SYSTEM "LSattr_html_jsonCompositeAttribute.docbook">
|
||||
<!ENTITY conf-LSattr_html_labeledValue SYSTEM "LSattr_html_labeledValue.docbook">
|
||||
<!ENTITY conf-LSattr_html_mail SYSTEM "LSattr_html_mail.docbook">
|
||||
<!ENTITY conf-LSattr_html_maildir SYSTEM "LSattr_html_maildir.docbook">
|
||||
<!ENTITY conf-LSattr_html_mailQuota SYSTEM "LSattr_html_mailQuota.docbook">
|
||||
<!ENTITY conf-LSattr_html_password SYSTEM "LSattr_html_password.docbook">
|
||||
<!ENTITY conf-LSattr_html_postaladdress SYSTEM "LSattr_html_postaladdress.docbook">
|
||||
<!ENTITY conf-LSattr_html_pre SYSTEM "LSattr_html_pre.docbook">
|
||||
<!ENTITY conf-LSattr_html_rss SYSTEM "LSattr_html_rss.docbook">
|
||||
<!ENTITY conf-LSattr_html_select_box SYSTEM "LSattr_html_select_box.docbook">
|
||||
<!ENTITY conf-LSattr_html_select_list SYSTEM "LSattr_html_select_list.docbook">
|
||||
<!ENTITY conf-LSattr_html_select_object SYSTEM "LSattr_html_select_object.docbook">
|
||||
<!ENTITY conf-LSattr_html_ssh_key SYSTEM "LSattr_html_ssh_key.docbook">
|
||||
<!ENTITY conf-LSattr_html_tel SYSTEM "LSattr_html_tel.docbook">
|
||||
<!ENTITY conf-LSattr_html_text SYSTEM "LSattr_html_text.docbook">
|
||||
<!ENTITY conf-LSattr_html_textarea SYSTEM "LSattr_html_textarea.docbook">
|
||||
<!ENTITY conf-LSattr_html_url SYSTEM "LSattr_html_url.docbook">
|
||||
<!ENTITY conf-LSattr_html_valueWithUnit SYSTEM "LSattr_html_valueWithUnit.docbook">
|
||||
<!ENTITY conf-LSattr_html_wywiwyg SYSTEM "LSattr_html_wywiwyg.docbook">
|
||||
<!ENTITY conf-LSattr_html_xmpp SYSTEM "LSattr_html_xmpp.docbook">
|
||||
|
||||
<!ENTITY LSattr_html_jsonCompositeAttribute "<link linkend='config-LSattr_html_jsonCompositeAttribute'>LSattr_html_jsonCompositeAttribute</link>">
|
||||
<!ENTITY LSattr_html_select_list "<link linkend='config-LSattr_html_select_list'>LSattr_html_select_list</link>">
|
||||
<!ENTITY LSattr_html_textarea "<link linkend='config-LSattr_html_textarea'>LSattr_html_textarea</link>">
|
|
@ -1,53 +0,0 @@
|
|||
<sect4 id="config-LSattr_html_boolean">
|
||||
<title>LSattr_html_boolean</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est
|
||||
un booléen.</para>
|
||||
|
||||
|
||||
<para>La valeur retournée est l'une des chaînes de caractères suivantes :
|
||||
<itemizedlist>
|
||||
<listitem><simpara><literal>yes</literal> pour <emphasis>Vrai</emphasis></simpara></listitem>
|
||||
<listitem><simpara><literal>no</literal> pour <emphasis>Faux</emphasis></simpara></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure</citetitle>...
|
||||
<![CDATA['html_options' => array (
|
||||
'true_label' => '[label]',
|
||||
'false_label' => '[label]',
|
||||
),]]>
|
||||
...
|
||||
</programlisting>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>true_label</term>
|
||||
<listitem>
|
||||
<simpara>Label affiché pour désigner la valeur <literal>Vrai</literal>.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>false_label</term>
|
||||
<listitem>
|
||||
<simpara>Label affiché pour désigner la valeur <literal>Faux</literal>.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<note><simpara>Pour le moment, les attributs à valeurs multiples ne sont pas gérés.
|
||||
</simpara></note>
|
||||
|
||||
<note><simpara>Pour maîtriser les valeurs stockées dans l'annuaire, il faut
|
||||
coupler ce type d'attribut HTML avec le type d'attribut LDAP
|
||||
<link linkend='config-LSattr_ldap_boolean'>boolean</link></simpara></note>
|
||||
|
||||
<important><simpara>La définition de la valeur par défaut d'un attribut utilisant
|
||||
ce type HTML (paramètre <literal>default_value</literal>), doit se faire à l'aide
|
||||
des valeurs <literal>yes</literal> ou <literal>no</literal>.</simpara></important>
|
||||
|
||||
</sect4>
|
|
@ -1,218 +0,0 @@
|
|||
<sect4 id="config-LSattr_html_date">
|
||||
<title>LSattr_html_date</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est
|
||||
une date. L'outil de sélection de date <application>
|
||||
<ulink url='http://mootools.net/forge/p/mootools_datepicker'>
|
||||
MooTools-DatePicker</ulink></application> est utilisé pour la sélection
|
||||
graphique de la date et de l'heure.</para>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure</citetitle>...
|
||||
<![CDATA['html_options' => array (
|
||||
'format' => '[Format d'affichage de la date]',
|
||||
'time' => '[Booleen pour le choix ou non de l heure]',
|
||||
'manual' => '[Booleen pour l edition manuelle ou non]',
|
||||
'showNowButton' => '[Booleen]',
|
||||
'showTodayButton' => '[Booleen]',
|
||||
'style' => '[Nom du style utilise]'
|
||||
),]]>
|
||||
...
|
||||
</programlisting>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>format</term>
|
||||
<listitem>
|
||||
<para>Format d'affichage de la date dans le champ de saisie. Ce format
|
||||
est composé à partir des motifs clés suivants :
|
||||
<informaltable>
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Mot clé</entry>
|
||||
<entry>Valeur de substitution</entry>
|
||||
<entry>Exemple de valeur</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><literal>%a</literal></entry>
|
||||
<entry><simpara>Nom abrégé du jour de la semaine</simpara></entry>
|
||||
<entry><simpara>De Sun à Sat</simpara></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%A</literal></entry>
|
||||
<entry><simpara>Nom complet du jour de la semaine</simpara></entry>
|
||||
<entry><simpara>De Sunday à Saturday</simpara></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%b</literal></entry>
|
||||
<entry><simpara>Nom du mois, abrégé, suivant la locale</simpara></entry>
|
||||
<entry><simpara>De Jan à Dec</simpara></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%B</literal></entry>
|
||||
<entry><simpara>Nom complet du mois, suivant la locale</simpara></entry>
|
||||
<entry><simpara>De January à December</simpara></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%c</literal></entry>
|
||||
<entry><simpara>Date et heure préférées, basées sur la locale</simpara></entry>
|
||||
<entry><simpara>Exemple : Tue Feb 5 00:45:10 2009 pour le 5 Février 2009 à 12:45:10 AM</simpara></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%d</literal></entry>
|
||||
<entry><simpara>Jour du mois en numérique, sur 2 chiffres (avec le zéro initial)</simpara></entry>
|
||||
<entry><simpara>De 01 à 31</simpara></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%e</literal></entry>
|
||||
<entry><simpara>Jour du mois, avec un espace précédant le premier chiffre. L'implémentation Windows est différente, voyez après pour plus d'informations.</simpara></entry>
|
||||
<entry><simpara>De 1 à 31</simpara></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%H</literal></entry>
|
||||
<entry><simpara>L'heure, sur 2 chiffres, au format 24 heures</simpara></entry>
|
||||
<entry><simpara>De 00 à 23</simpara></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%I</literal></entry>
|
||||
<entry><simpara>Heure, sur 2 chiffres, au format 12 heures</simpara></entry>
|
||||
<entry><simpara>De 01 à 12</simpara></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%j</literal></entry>
|
||||
<entry><simpara>Jour de l'année, sur 3 chiffres avec un zéro initial</simpara></entry>
|
||||
<entry><simpara>001 à 366</simpara></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%m</literal></entry>
|
||||
<entry><simpara>Mois, sur 2 chiffres</simpara></entry>
|
||||
<entry><simpara>De 01 (pour Janvier) à 12 (pour Décembre)</simpara></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%M</literal></entry>
|
||||
<entry><simpara>Minute, sur 2 chiffres</simpara></entry>
|
||||
<entry><simpara>De 00 à 59</simpara></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%p</literal></entry>
|
||||
<entry><simpara>'AM' ou 'PM', en majuscule, basé sur l'heure fournie</simpara></entry>
|
||||
<entry><simpara>Exemple : AM pour 00:31, PM pour 22:23</simpara></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%s</literal></entry>
|
||||
<entry><simpara>Timestamp de l'époque Unix (identique à la fonction time())</simpara></entry>
|
||||
<entry><simpara>Exemple : 305815200 pour le 10 Septembre 1979 08:40:00 AM</simpara></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%S</literal></entry>
|
||||
<entry><simpara>Seconde, sur 2 chiffres</simpara></entry>
|
||||
<entry><simpara>De 00 à 59</simpara></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%T</literal></entry>
|
||||
<entry><simpara>Identique à "%H:%M:%S" Exemple : 21:34:17 pour 09:34:17 PM</simpara></entry>
|
||||
<entry><simpara></simpara></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%U</literal></entry>
|
||||
<entry><simpara>Numéro de la semaine de l'année donnée, en commençant par le premier Lundi comme première semaine</simpara></entry>
|
||||
<entry><simpara>13 (pour la 13ème semaine pleine de l'année)</simpara></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%w</literal></entry>
|
||||
<entry><simpara>Représentation numérique du jour de la semaine</simpara></entry>
|
||||
<entry><simpara>De 0 (pour Dimanche) à 6 (pour Samedi)</simpara></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%y</literal></entry>
|
||||
<entry><simpara>L'année, sur 2 chiffres</simpara></entry>
|
||||
<entry><simpara>Exemple : 09 pour 2009, 79 pour 1979</simpara></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%Y</literal></entry>
|
||||
<entry><simpara>L'année, sur 4 chiffres</simpara></entry>
|
||||
<entry><simpara>Exemple : 2038</simpara></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%z</literal></entry>
|
||||
<entry><simpara> Soit le décalage horaire depuis UTC, ou son abréviation (suivant le système d'exploitation)</simpara></entry>
|
||||
<entry><simpara> Exemple : -0500 ou EST pour l'heure de l'Est</simpara></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%Z</literal></entry>
|
||||
<entry><simpara> Le décalage horaire ou son abréviation NON fournie par %z (suivant le système d'exploitation)</simpara></entry>
|
||||
<entry><simpara> Exemple : -0500 ou EST pour l'heure de l'Est</simpara></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%%</literal></entry>
|
||||
<entry><simpara>Le caractère de pourcentage ("%")</simpara></entry>
|
||||
<entry><simpara>---</simpara></entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
</para>
|
||||
<note><simpara>La valeur par défaut est <emphasis>%d/%m/%Y, %T</emphasis>.
|
||||
Exemple : <emphasis>23/04/2009, 23:03:04</emphasis></simpara></note>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>time</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si l'outil de sélection permetra ou non le choix
|
||||
de l'heure en plus de la date</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>manual</term>
|
||||
<listitem>
|
||||
<simpara>Booléen autorisant ou non l'édition manuelle du champs. Si ce paramètre
|
||||
vaut <literal>False</literal>, la sélection se fera uniquement à l'aide de l'outil
|
||||
graphique</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>showNowButton</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si le bouton <emphasis>Maintenant</emphasis> est
|
||||
affiché ou non. Par défaut, il est affiché.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>showTodayButton</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si le bouton <emphasis>Aujourd'hui</emphasis> est
|
||||
affiché ou non. Par défaut, il est affiché.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>style</term>
|
||||
<listitem>
|
||||
<para>Nom du style d'affichage de l'outil de sélection. Les valeurs possibles
|
||||
sont par défaut :
|
||||
<itemizedlist>
|
||||
<listitem><simpara>default</simpara></listitem>
|
||||
<listitem><simpara>dashboard</simpara></listitem>
|
||||
<listitem><simpara>vista</simpara></listitem>
|
||||
<listitem><simpara>jqui</simpara></listitem>
|
||||
</itemizedlist>
|
||||
<note><simpara>La création de nouveau thème est possible. Pour plus d'information,
|
||||
consulter <ulink url='http://mootools.net/forge/p/mootools_datepicker'>l'aide de
|
||||
l'outil de sélection de date</ulink>.</simpara></note>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
|
||||
</sect4>
|
|
@ -1,6 +0,0 @@
|
|||
<sect4 id="config-LSattr_html_image">
|
||||
<title>LSattr_html_image</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est
|
||||
une image. Pour le moment, les attributs à valeurs multiples ne sont pas gérés.
|
||||
</para>
|
||||
</sect4>
|
|
@ -1,122 +0,0 @@
|
|||
<sect4 id="config-LSattr_html_jsonCompositeAttribute">
|
||||
<title>LSattr_html_jsonCompositeAttribute</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont les valeurs sont
|
||||
des dictionnaires de valeurs encodées aux formats <emphasis>JSON</emphasis>.</para>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Exemple de valeur gérée</citetitle>
|
||||
<![CDATA[{"component1": "value1", "component2": "value2", "component3": "value3"}]]>
|
||||
</programlisting>
|
||||
|
||||
<para>Le principe est que ces dictionnaires contienent plusieurs composants référencés
|
||||
par leur clé et stockant une valeur dont le type peut être un texte libre ou
|
||||
bien être issue d'une liste déroulante configurable selon le même principe que
|
||||
le type d'attribut &LSattr_html_select_list;.</para>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure</citetitle>...
|
||||
<![CDATA['html_options' => array (
|
||||
'components' => array (
|
||||
'[clé composant 1]' => array (
|
||||
'label' => '[Label du composant]',
|
||||
'help_info' => '[Message d'aide sur le composant]',
|
||||
'type' => '[Type de la valeur stocké]',
|
||||
'required' => [Booléen],
|
||||
'multiple' => [Booléen],
|
||||
'check_data' => => array (
|
||||
// Régle de vérification syntaxique des données saisies
|
||||
),
|
||||
),
|
||||
'[clé composant 2]' => array (
|
||||
'label' => '[Label du composant 2]',
|
||||
'type' => 'select_list',
|
||||
'required' => [Booléen],
|
||||
'options' => array (
|
||||
[Configuration équivalente à un attribut LSattr_html_select_list]
|
||||
)
|
||||
),
|
||||
[...]
|
||||
),
|
||||
),]]>
|
||||
...
|
||||
</programlisting>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>components</term>
|
||||
<listitem>
|
||||
<para>Tableau associatif obligatoire contenant en valeur clé, l'identifiant des
|
||||
composants, correspondant à la clé dans le dictionnaire <emphasis>JSON</emphasis>,
|
||||
et en valeurs associés, la configuration du composant.</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>label</term>
|
||||
<listitem>
|
||||
<simpara>Le label du composant.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>help_info</term>
|
||||
<listitem>
|
||||
<simpara>Message d'aide sur le composant (affiché uniquement en mode édition).
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>type</term>
|
||||
<listitem>
|
||||
<simpara>Le type de valeur du composant. Les types possibles sont
|
||||
<literal>text</literal> ou <literal>select_list</literal> pour respectivement
|
||||
soit une valeur saisie librement, soit une valeur sélectionnée parmis une liste
|
||||
déroulante.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>options</term>
|
||||
<listitem>
|
||||
<simpara>Dans le cadre d'un composant de type <literal>select_list</literal>, cela
|
||||
correspond à la configuration de la liste déroulante. Cette configuration utilise la
|
||||
même syntaxe de configuration que celle du type d'attribut &LSattr_html_select_list;
|
||||
et son paramètre <literal>html_options</literal>.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>multiple</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si ce composant peut stocker plusieurs valeurs (Défaut :
|
||||
<emphasis>Faux</emphasis>).</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>required</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si ce composant doit obligatoirement être défini (Défaut :
|
||||
<emphasis>Faux</emphasis>).</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>check_data</term>
|
||||
<listitem>
|
||||
<simpara>Tableau associatif contenant les règles de vérification syntaxique
|
||||
des données du composant. Ces règles sont configurables de la même manière
|
||||
que les celles des valeurs attributs.
|
||||
<link linkend='config-LSattribute-check-data'>Voir la section concernée.</link>
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
</sect4>
|
|
@ -1,33 +0,0 @@
|
|||
<sect4 id="config-LSattr_html_labeledValue">
|
||||
<title>LSattr_html_labeledValue</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est
|
||||
prefixé d'un <literal>label</literal> et qui respecte le format suivant :
|
||||
<literal>[label]valeur</literal>.</para>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure</citetitle>...
|
||||
<![CDATA['html_options' => array(
|
||||
'labels' => array ( // Liste des labels possible
|
||||
'label1' => 'Libellé label1',
|
||||
'label2' => 'Libellé label2',
|
||||
[...]
|
||||
),
|
||||
),]]>
|
||||
...
|
||||
</programlisting>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>labels</term>
|
||||
<listitem>
|
||||
<simpara>Tableau associatif obligatoire contenant en valeur clé, le
|
||||
<literal>label</literal> utilisé dans la valeur stockée et en valeur
|
||||
associée, le valeur d'affichage du <literal>label</literal>.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect4>
|
|
@ -1,152 +0,0 @@
|
|||
<sect4 id="config-LSattr_html_mail">
|
||||
<title>LSattr_html_mail</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est
|
||||
une adresse e-mail. Il offre les fonctionnalités suivantes :
|
||||
<itemizedlist>
|
||||
<listitem><simpara>la possibilité d'envoyer des mails directement depuis l'interface
|
||||
de l'application ;</simpara></listitem>
|
||||
<listitem><simpara>l'autocomplétion lors de la saisie d'une adresse.</simpara></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure</citetitle>...
|
||||
<![CDATA['html_options' => array(
|
||||
'disableMailSending' => [booléen],
|
||||
|
||||
// Autocomplétion pour un type d'LSobject donné
|
||||
'autocomplete' => array (
|
||||
'object_type' => '[Type d'LSobject]',
|
||||
'mail_attributes' => array (
|
||||
'mail',
|
||||
'mailAlternateAddress',
|
||||
[...]
|
||||
),
|
||||
'filter' => '[filtre LDAP]',
|
||||
'basedn' => '[base DN spécifique]',
|
||||
'scope' => '[scope de recherche]',
|
||||
'displayFormat' => '[LSformat]',
|
||||
'onlyAccessible' => [booléen],
|
||||
),
|
||||
|
||||
// Autocomplétion sur la base d'une recherche LDAP brute
|
||||
'autocomplete' => array (
|
||||
'mail_attributes' => array (
|
||||
'mail',
|
||||
'mailAlternateAddress',
|
||||
[...]
|
||||
),
|
||||
'filter' => '[filtre LDAP]',
|
||||
'basedn' => '[base DN spécifique]',
|
||||
'scope' => '[scope de recherche]',
|
||||
'displayFormat' => '[LSformat]',
|
||||
'onlyAccessible' => [booléen],
|
||||
),
|
||||
|
||||
// Autocomplétion (par défaut)
|
||||
'autocomplete' => true,
|
||||
|
||||
),]]>
|
||||
...
|
||||
</programlisting>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>disableMailSending</term>
|
||||
<listitem>
|
||||
<simpara>Désactive l'envoi de mail depuis l'interface pour cet attribut.</simpara>
|
||||
<note><simpara>Ceci ne désactive pas pour autant le lien HTML de type
|
||||
<emphasis>mailto:</emphasis>. Pour cela, utilisez plutôt le type d'attribut HTML
|
||||
<link linkend='config-LSattr_html_text'>text</link>.</simpara></note>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>autocomplete</term>
|
||||
<listitem>
|
||||
<para>Paramètrage de l'autocomplétion des adresses mails saisies : Il peut s'agir
|
||||
d'un tableau configurant les paramètres de l'autocomplétion ou simplement
|
||||
<literal>true</literal> pour activer l'autocomplétion par défaut, c'est à dire la recherche brute
|
||||
dans l'annuaire de n'importe quel objet ayant l'attribut <literal>mail</literal>.</para>
|
||||
<para>En cas de configuration avancée, il est possible de faire une recherche :
|
||||
<itemizedlist>
|
||||
<listitem><simpara>Sur la base d'un type d'&LSobject; donné : l'autocomplétion se fera
|
||||
alors comme n'importe quelle recherche d'un type d'objet donné.</simpara></listitem>
|
||||
<listitem><simpara>Sur la base d'une recherche brute dans l'annuaire : l'autocomplétion se
|
||||
fera alors sur la valeur de l'adresse mail recherchée et au travers une recherche brute dans
|
||||
l'annuaire sur n'importe quels objets ayant une adresse email correspondant.</simpara></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
<para>Les paramètres associés à ces deux cas de figure sont décrits ci-dessous :
|
||||
<variablelist>
|
||||
|
||||
<varlistentry>
|
||||
<term>object_type</term>
|
||||
<listitem>
|
||||
<simpara>Le type d'&LSobject; recherché.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>mail_attributes</term>
|
||||
<listitem>
|
||||
<simpara>Le(s) nom de l'attribut stockant les adresses emails recherchées. Il peut s'agir d'une chaîne
|
||||
de caractères ou d'un tableau s'il y a plusieurs attributs.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>filter</term>
|
||||
<listitem>
|
||||
<simpara>Un filtre de recherche falcultatif venant en plus de celui calculé automatiquement à partir
|
||||
du mot clé de recherche.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>basedn</term>
|
||||
<listitem>
|
||||
<simpara>Le <emphasis>basedn</emphasis> de la recherche. <emphasis>Paramètre
|
||||
facultatif.</emphasis></simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>scope</term>
|
||||
<listitem>
|
||||
<simpara>Le <emphasis>scope</emphasis> de la recherche. <emphasis>Paramètre
|
||||
facultatif, par défaut : <literal>sub</literal>.</emphasis></simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>displayFormat</term>
|
||||
<listitem>
|
||||
<simpara>Le &LSformat; d'affichage des objets trouvés. Ce paramètre est facultatif et par défaut,
|
||||
il s'agira du format d'affichage propre au type d'&LSobject; (si défini) et à défaut, l'adresse
|
||||
mail trouvée sera affichée.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>onlyAccessible</term>
|
||||
<listitem>
|
||||
<simpara>Booléen falcultatif définissant si seul les &LSobjects; auxquels l'utilisateur connecté à accès
|
||||
doivent être considérés comme sélectionnables (Faux par défaut). Ce paramètre n'est appliqué que dans
|
||||
le cas d'une recherche pour un type d'&LSobject; donné.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<important><simpara>Ce type d'attribut HTML est dérivé du type
|
||||
<link linkend='config-LSattr_html_text'>text</link>. Il profite donc de toutes
|
||||
les fonctionnalités d'un champ de ce type (autogénération, ...).</simpara>
|
||||
</important>
|
||||
</sect4>
|
|
@ -1,29 +0,0 @@
|
|||
<sect4 id="config-LSattr_html_mailQuota">
|
||||
<title>LSattr_html_mailQuota</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est
|
||||
le quota d'une boite mail. Le format de la valeur générée correspondant au format
|
||||
attendu par le serveur de mail &courier; par défaut. Exemple : <emphasis>50000000S</emphasis>
|
||||
correspond à un quota de 50Mio.</para>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure</citetitle>...
|
||||
<![CDATA['html_options' => array(
|
||||
'suffix' => '[suffix]',
|
||||
)
|
||||
),]]>
|
||||
...
|
||||
</programlisting>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>suffix</term>
|
||||
<listitem>
|
||||
<simpara>Chaine de caractères suffixant la valeur du quota (Par défaut : <literal>S</literal>).</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect4>
|
|
@ -1,82 +0,0 @@
|
|||
<sect4 id="config-LSattr_html_maildir">
|
||||
<title>LSattr_html_maildir</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est
|
||||
le chemin d'une maildir. Typiquement, ce type attribut HTML est utile dans
|
||||
le cas de l'attribut <emphasis>mailbox</emphasis> utilisé par maildrop pour
|
||||
stocker le chemin des boites mails. Ce type d'attribut offre la possibilité de
|
||||
gérér un niveau de l'attribut et à travers les déclencheurs gérés par &LdapSaisie;
|
||||
la création, la modification et ou la suppression de la boite mails. Le &LSaddon;
|
||||
<link linkend='config-LSaddon_maildir'>boolean</link> est utilisé pour manipuler
|
||||
la boite mail à distance.
|
||||
</para>
|
||||
|
||||
<note><simpara>Actuellement, cet &LSaddon; ne gérant que l'accès via FTP au
|
||||
serveur distant, l'API d'accès via FTP est attaquée directement.</simpara></note>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure</citetitle>...
|
||||
<![CDATA['html_options' => array (
|
||||
'LSform' => array (
|
||||
'[LSform1]' => [booléen],
|
||||
'[LSform2]' => [booléen],
|
||||
...
|
||||
),
|
||||
'remoteRootPathRegex' => "[Expression régulière pour matcher le dossier à créer]",
|
||||
'archiveNameFormat' => "[LSformat du chemin/nom du fichier une fois archiver]"
|
||||
),]]>
|
||||
...
|
||||
</programlisting>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>LSform</term>
|
||||
<listitem>
|
||||
<simpara>Tableau associatif obligatoire contenant en valeur clé le nom des
|
||||
&LSforms; dans lesquels la fonctionnalité de modification de la boite mail
|
||||
sera présente. Les valeurs attachées sont des booléens définissant si la
|
||||
modification est active par défaut.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>remoteRootPathRegex</term>
|
||||
<listitem>
|
||||
<simpara>Expression régulière (compatible Perl) facultative dont le but est de
|
||||
<emphasis>matcher</emphasis> dans la valeur complète du chemin distant de la
|
||||
<emphasis>maildir</emphasis>, le chemin de la <emphasis>maildir</emphasis>
|
||||
à créer une fois connecté sur le serveur.</simpara>
|
||||
<para>Exemple : Si le chemin complet de la <emphasis>maildir</emphasis> est
|
||||
<emphasis>/home/vmail/user</emphasis>, mais que l'utilisateur FTP lorsqu'il
|
||||
se connecte arrive directement dans <emphasis>/home/vmail</emphasis>, et faut
|
||||
définir le paramètre <parameter>remoteRootPathRegex</parameter> de la manière
|
||||
suivante :
|
||||
<programlisting linenumbering="unnumbered">/^\/home\/vmail\/([^\/]*)\/+$/</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>archiveNameFormat</term>
|
||||
<listitem>
|
||||
<simpara>&LSformat; du nom du dossier de la <emphasis>maildir</emphasis> une
|
||||
fois archivée. Si ce format est défini, le dossier ne sera pas supprimé mais
|
||||
déplacé ou rénommé. Le format sera construit avec pour seul mot clé, le nom
|
||||
de l'ancien dossier. Exemple : Si le dossier de la maildir est
|
||||
<emphasis>/home/vmail/user</emphasis> et le paramètre
|
||||
<parameter>archiveNameFormat</parameter> vaut <emphasis>%{old}.bckp</emphasis>,
|
||||
le dossier sera renommé en <emphasis>/home/vmail/user.bckp</emphasis>.</simpara>
|
||||
<important><simpara>Ce format est interprété après application de la routine
|
||||
liée au paramètre <parameter>remoteRootPathRegex</parameter>. Ainsi, dans
|
||||
l'exemple précédent, si le paramètre <parameter>remoteRootPathRegex</parameter>
|
||||
tronquait uniquement le nom du dossier final, c'est à dire <emphasis>user</emphasis>,
|
||||
le format une fois interprété donnerai <emphasis>user.bckp</emphasis>.
|
||||
</simpara></important>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
|
||||
</sect4>
|
|
@ -1,315 +0,0 @@
|
|||
<sect4 id="config-LSattr_html_password">
|
||||
<title>LSattr_html_password</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est
|
||||
un mot de passe.</para>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure</citetitle>...
|
||||
<![CDATA['html_options' => array(
|
||||
'isLoginPassword' => [booleen],
|
||||
'generationTool' => [booleen],
|
||||
'autoGenerate' => [booleen],
|
||||
'lenght' => [nombre de caractères],
|
||||
'chars' => array ( // Caractères que peut contenir le mot de passe
|
||||
array( // Liste caractère avec un nombre mininum d'apparition supérieur à 1
|
||||
'nb' => [nb caractères],
|
||||
'chars' => '[liste de caractères possibles]'
|
||||
),
|
||||
'[autre liste de caractères possibles]', // Liste caractère avec un nombre
|
||||
// d'apparitions égal à 1
|
||||
...
|
||||
),
|
||||
'use_pwgen' => [booléen], // Utiliser pwgen pour la génération du mot de passe
|
||||
'pwgen_path' => "/path/to/pwgen",
|
||||
'pwgen_opts' => "[options à passer à pwgen]",
|
||||
'verify' => [booléen], // Activation de l'outil de vérification du mot de passe
|
||||
'viewHash' => [booléen], // Activation de l'outil de visualisation du mot de passe haché
|
||||
'confirmChange' => [booléen], // Activation de la confirmation en cas de changement du mot de passe
|
||||
'confirmChangeQuestion' => "[LSformat]", // LSformat de la question de confirmation du changement du mot de passe
|
||||
'mail' => array( // Configuration de l'envoi du mot de passe par mail
|
||||
'subject' => "[LSformat du sujet du mail]",
|
||||
'msg' => "[LSformat du message du mail]",
|
||||
'mail_attr' => 'mail', // Attribut mail de l'objet
|
||||
'get_mail_attr_function' => '[function]', // Fonction retournant l'attribut mail de l'objet
|
||||
'send' => 1, // Activation par défaut de l'envoi du mot de passe
|
||||
'ask' => 1, // Laisser le choix à l'utilisateur
|
||||
'canEdit' => 1, // Activation de l'édition du LSformat du message par l'utilisateur
|
||||
'checkDomain' => false, // Désactivation de la vérification du domaine de l'adresse email
|
||||
'domain' => '[nom de domaine]', // Nom de domaine obligatoire lors de la validation de l'adresse email
|
||||
)
|
||||
),]]>
|
||||
...
|
||||
</programlisting>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>isLoginPassword</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si le mot de passe est celui utilisé par l'utilisateur
|
||||
pour se logguer à l'annuaire LDAP. Si c'est le cas, pour vérifier si le mot de passe
|
||||
correspond avec un autre, une tentative de connexion de l'utilisateur à l'annuaire
|
||||
sera faite. (Par défaut : <literal>Faux</literal>)</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>generationTool</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si l'outil de génération de mot de passe est
|
||||
activé.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>autoGenerate</term>
|
||||
<listitem>
|
||||
<simpara>Active la génération automatique du mot de passe lorsque l'attribut
|
||||
n'a encore aucune valeur de définie. Il faut également que l'outil de
|
||||
génération soit activé (<parameter>generationTool</parameter>).</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>lenght</term>
|
||||
<listitem>
|
||||
<simpara>Nombre de caractères que devront contenir les mots de passe générés.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>chars</term>
|
||||
<listitem>
|
||||
<para>Tableau contenant une liste de listes de caractères possibles pour
|
||||
composer le mot de passe. Dans chacune de ces listes, au moins un caractère
|
||||
sera utilisé dans le nouveau mot de passe. Il est possible de définir un
|
||||
nombre supérieur de caractères d'une liste devant apparaître dans les mots de
|
||||
passe générés en spécifiant un tableau associatif dont la clé <emphasis>nb
|
||||
</emphasis> associra le nombre entier de caractères et la clé <emphasis>chars
|
||||
</emphasis> la liste de caractères. Une liste de caractères est un chaîne.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>use_pwgen</term>
|
||||
<listitem>
|
||||
<para>Booléen définissant si la commande <literal>pwgen</literal> doit être
|
||||
utilisé pour générer le mot de passe.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>pwgen_path</term>
|
||||
<listitem>
|
||||
<para>Chemin d'accès au binaire <literal>pwgen</literal>.
|
||||
(Par défaut : <literal>pwgen</literal>).</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>pwgen_opts</term>
|
||||
<listitem>
|
||||
<para>Options à passer à la commande <literal>pwgen</literal>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>verify</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si l'outil de vérification du mot de passe est
|
||||
activé. Si celui-ci est activé, l'utilisateur pourra entrer un mot de passe
|
||||
dans le champ et cliquer sur un bouton qui lancera une procédure de
|
||||
vérification du mot de passe via un test de connexion à l'annuaire.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>viewHash</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si l'utilisateur aura accès à la fonctionnalité
|
||||
de visualisation du mot de passe haché.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>confirmInput</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si un second champ mot de passe sera affiché dans
|
||||
le formulaire pour que l'utilisateur confirme la saisie du nouveau mot de passe.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>confirmInputError</term>
|
||||
<listitem>
|
||||
<simpara>&LSformat; du message d'erreur affiché à l'utilisateur si le mot de
|
||||
passe saisie dans le champs de confirmation ne correspond pas au nouveau mot
|
||||
de passe. <emphasis>Paramètre facultatif.</emphasis></simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>confirmChange</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si l'utilisateur devra confirmer le changement de
|
||||
ce mot de passe. Lorsque cette fonctionnalité est activée, l'utilisateur verra
|
||||
apparaître une popup de confirmation à la validation du formulaire s'il a saisi
|
||||
un nouveau mot de passe.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>confirmChangeQuestion</term>
|
||||
<listitem>
|
||||
<simpara>&LSformat; de la question posée à l'utilisateur en cas de changement
|
||||
du mot de passe et si la fonctionnalité est activée. Il sera composé à l'aide
|
||||
du <emphasis>label</emphasis> de l'attribut. <emphasis>Paramètre facultatif.
|
||||
</emphasis></simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>clearView</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si l'utilisateur pourra voir le mot de passe en
|
||||
clair par défaut (y comris en mode visualisation uniquement).</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>clearEdit</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si l'utilisateur éditera le mot de passe au travers
|
||||
un champs HTML de type <emphasis>text</emphasis> et donc lisible ou au travers un
|
||||
champs HTML de type <emphasis>password</emphasis>.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>mail</term>
|
||||
<listitem>
|
||||
<para>Paramètres de configuration de l'envoi par mail du mot de passe à
|
||||
l'utilisateur. Lorsque cet outil est activé, lors de la modification/création
|
||||
du mot de passe, l'utilisateur pourra recevoir un mail lui spécifiant son
|
||||
nouveau mot de passe.
|
||||
|
||||
<variablelist>
|
||||
<title>Paramêtres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>send</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si l'envoi du mot de passe est activé par
|
||||
défaut.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>ask</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si on laisse le choix à l'utilisateur
|
||||
d'activer ou non l'envoi du mot de passe par mail.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>canEdit</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si on laisse la possibilité à l'utilisateur
|
||||
d'éditer le &LSformat; du message et du sujet.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>subject</term>
|
||||
<listitem>
|
||||
<simpara>&LSformat; du sujet du mail. Ce format sera composé avec la
|
||||
valeur du nouveau mot de passe de l'utilisateur.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>msg</term>
|
||||
<listitem>
|
||||
<simpara>&LSformat; du message du mail. Ce format sera composé avec les
|
||||
informations de l'object LDAP, y compris le mot clé <emphasis>%{password}</emphasis>
|
||||
correspondant à la valeur du nouveau mot de passe de l'utilisateur.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>mail_attr</term>
|
||||
<listitem>
|
||||
<simpara>Le nom de l'attribut listant les mails possibles de
|
||||
l'utilisateur. Par défaut, la première valeur de l'attribut sera
|
||||
utilisée comme adresse mail destinatrice. Cet attribut peut également
|
||||
être un tableau de plusieurs noms d'attributs. Dans ce cas, la première
|
||||
valeur correcte sera retenue.
|
||||
Si <parameter>canEdit</parameter> est activé, l'utilisateur pourra
|
||||
choisir l'adresse mail destinatrice parmi la liste des valeurs de
|
||||
l'attribut.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>get_mail_attr_function</term>
|
||||
<listitem>
|
||||
<simpara>Nom de la fonction (ou <literal>callable</literal> au sens PHP)
|
||||
qui sera utilisé pour récupérer le nom de l'attribut listant les mails
|
||||
possibles de l'utilisateur. Cette fonction prendra en paramètre, l'objet
|
||||
<literal>LSformElement</literal> courant et devra retourner une valeur
|
||||
équivalente au paramètre de configuration <literal>mail_attr</literal>.
|
||||
Si ce paramètre est défini, il prévalera toujours sur le paramètre
|
||||
<literal>mail_attr</literal>.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>bcc</term>
|
||||
<listitem>
|
||||
<simpara>Mettre en <emphasis>BCC</emphasis> un mail systématiquement
|
||||
(ou plusieurs en les séparant par des virgules).</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>headers</term>
|
||||
<listitem>
|
||||
<simpara>Un tableau de type clé/valeur ou la clé est le nom d'un header
|
||||
à ajouter au mail et la valeur est la valeur de l'header en question.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>checkDomain</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si le domaine de l'adresse mail doit être
|
||||
validée. <emphasis>Paramètre facultatif, par défaut: <literal>TRUE</literal>
|
||||
</emphasis></simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>domain</term>
|
||||
<listitem>
|
||||
<simpara>Nom de domaine obligatoire lors de la validation de l'adresse mail.
|
||||
Ce paramètre peut être une simple chaine correspondant au domaine ou un
|
||||
tableau listant plusieurs domaines valides. <emphasis>Paramètre facultatif,
|
||||
par défaut tous les domaines sont acceptés.</emphasis></simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
|
||||
</sect4>
|
|
@ -1,68 +0,0 @@
|
|||
<sect4 id="config-LSattr_html_postaladdress">
|
||||
<title>LSattr_html_postaladdress</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs du type de l'attribut
|
||||
standard <emphasis>postalAddress</emphasis>. Ce type d'attribut permet d'afficher,
|
||||
en plus de l'adresse, un lien composé à partir d'informations de l'objet permettant
|
||||
par exemple d'afficher un lien vers une carte géocalisant l'adresse postale.</para>
|
||||
|
||||
<para>Par défaut, le lien ajouté sera un lien de recherche de l'adresse postale
|
||||
générée à partir de la valeur de l'attribut (en remplaçant les retours à la ligne
|
||||
(<literal>\n</literal>) par des espaces) via le service
|
||||
<ulink url='http://nominatim.openstreetmap.org/'>Nominatim d'OpenStreetMap</ulink>.
|
||||
</para>
|
||||
|
||||
<note><simpara>Dans le cadre du fonctionnement par défaut et pour maîtriser les
|
||||
valeurs stockées dans l'annuaire, il faut coupler ce type d'attribut HTML avec le
|
||||
type d'attribut LDAP
|
||||
<link linkend='config-LSattr_ldap_postaladdress'>postaladdress</link></simpara></note>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure</citetitle>...
|
||||
<![CDATA['html_options' => array(
|
||||
'map_url_pattern_format' => '[LSformat]',
|
||||
'map_url_pattern_generate_function' => '[callable]',
|
||||
'map_url_format' => '[LSformat]',
|
||||
),]]>
|
||||
...
|
||||
</programlisting>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>map_url_pattern_format</term>
|
||||
<listitem>
|
||||
<simpara>Ce &LSformat; doit permettre de générer la valeur de l'adresse postale
|
||||
qui sera insérée dans l'URL du lien ajouté dans l'interface.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>map_url_pattern_generate_function</term>
|
||||
<listitem>
|
||||
<simpara>Ce paramètre permet de définir une fonction qui sera utilisée à la place
|
||||
du paramètre <literal>map_url_pattern_format</literal> pour générer la valeur de
|
||||
l'adresse postale qui sera insérée dans l'URL du lien ajouté dans l'interface.
|
||||
Cette fonction prendra en paramètre l'objet <emphasis>LSformElement</emphasis>
|
||||
courant et devra retourner une chaîne de caractères correspondant à l'adresse
|
||||
postale à insérer dans le lien de l'interface. Par défaut, la fonction
|
||||
<literal>LSformElement_postaladdress__generate_pattern</literal> est utilisée.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>map_url_format</term>
|
||||
<listitem>
|
||||
<simpara>Ce &LSformat; doit permettre de générer l'URL du lien ajouté dans
|
||||
l'interface. Il sera composé avec les informations de l'objet LDAP, y compris
|
||||
le mot clé <emphasis>%{pattern}</emphasis> correspondant à la valeur de l'adresse
|
||||
postale générée à l'aide des paramètres précédents. Par défaut, la format suivant
|
||||
sera utilisé :
|
||||
<literal>http://nominatim.openstreetmap.org/search.php?q=%{pattern}</literal></simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect4>
|
|
@ -1,8 +0,0 @@
|
|||
<sect4 id="config-LSattr_html_pre">
|
||||
<title>LSattr_html_pre</title>
|
||||
<para>Ce type est dérivé du type &LSattr_html_textarea; et permet
|
||||
simplement que lors de l'affichage de la valeur, celle-ci soit
|
||||
affichée en respectant les retours à la ligne et en utilisant une
|
||||
police de caractères <literal>monospace</literal>. Cela reproduit
|
||||
l'affichage d'une balise HTML <literal>pre</literal>.</para>
|
||||
</sect4>
|
|
@ -1,10 +0,0 @@
|
|||
<sect4 id="config-LSattr_html_rss">
|
||||
<title>LSattr_html_rss</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est
|
||||
l'URL d'un flux RSS. Il propose directement dans l'interface, la possibilité
|
||||
d'accèder au flux RSS.</para>
|
||||
<important><simpara>Ce type d'attribut HTML est dérivé du type
|
||||
<link linkend='config-LSattr_html_text'>text</link>. Il profite donc de toutes
|
||||
les fonctionnalités d'un champ de ce type (autogénération, ...).</simpara>
|
||||
</important>
|
||||
</sect4>
|
|
@ -1,9 +0,0 @@
|
|||
<sect4 id="config-LSattr_html_select_box">
|
||||
<title>LSattr_html_select_box</title>
|
||||
<para>Ce type est identique au type <emphasis>LSattr_html_select_list</emphasis>
|
||||
excepté qu'il utilise en lieu et place d'une balise HTML <literal>select</literal>,
|
||||
plusieurs balises HTML <literal>input</literal> de type <literal>checkbox</literal>
|
||||
en cas de valeurs multiples ou de type <literal>radio</literal> en cas de valeur
|
||||
unique. Les paramètres de configuration sont entièrement hérités de la classe
|
||||
<emphasis>LSattr_html_select_list</emphasis> et sont donc exactement les mêmes.</para>
|
||||
</sect4>
|
|
@ -1,205 +0,0 @@
|
|||
<sect4 id="config-LSattr_html_select_list">
|
||||
<title>LSattr_html_select_list</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont les valeurs font
|
||||
partie d'une liste statique ou dynamique. Il est possible de lister des valeurs
|
||||
statiques et également des références à d'autres &LSobjects;. La référence à
|
||||
un objet correspond à une valeur clé, référente à un objet précis, qui peut être
|
||||
soit la valeur d'un de ses attributs, soit son <emphasis>DN</emphasis>.</para>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure</citetitle>...
|
||||
<![CDATA['html_options' => array (
|
||||
'possible_values' => array (
|
||||
'[LSformat de la valeur clé]' => '[LSformat du nom d'affichage]',
|
||||
...
|
||||
'OTHER_OBJECT' => array (
|
||||
'object_type' => '[Type d'LSobject]',
|
||||
'display_name_format' => '[LSformat du nom d'affichage des LSobjects]',
|
||||
'value_attribute' => '[Nom de l'attribut clé]',
|
||||
'values_attribute' => '[Nom de l'attribut clé multi-valeur]',
|
||||
'filter' => '[Filtre de recherche des LSobject]',
|
||||
'scope' => '[Scope de la recherche]',
|
||||
'basedn' => '[Basedn de la recherche]',
|
||||
'onlyAccessible' => '[Booléen]'
|
||||
),
|
||||
'OTHER_ATTRIBUTE' => '[attr]',
|
||||
// Or :
|
||||
'OTHER_ATTRIBUTE' => array(
|
||||
'[attr1]' => '[label1]',
|
||||
'[attr2]' => '[label2]',
|
||||
[...]
|
||||
),
|
||||
// Or :
|
||||
'OTHER_ATTRIBUTE' => array(
|
||||
'attr' => [attr],
|
||||
'json_component_key' => '[Composant JSON clé]',
|
||||
'json_component_label' => '[Composant JSON label]',
|
||||
),
|
||||
array (
|
||||
'label' => '[LSformat du nom du groupe de valeurs]',
|
||||
'possible_values' => array (
|
||||
'[LSformat de la valeur clé]' => '[LSformat du nom d'affichage]',
|
||||
...
|
||||
'OTHER_OBJECT' => array (
|
||||
...
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
'translate_labels' => [booléen],
|
||||
'sort' => [Booléen],
|
||||
'sortDirection' => '[ASC|DESC]'
|
||||
),]]>
|
||||
...
|
||||
</programlisting>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>possible_values</term>
|
||||
<listitem>
|
||||
<para>Tableau associatif obligatoire contenant en valeur clé le &LSformat;
|
||||
des valeurs clés prisent par l'attribut et en valeurs associées, le &LSformat;
|
||||
des noms d'affichage de ces valeurs. Ces &LSformats; sont composés à partir des
|
||||
valeurs de l'objet courant (attributs, dn, ...).</para>
|
||||
|
||||
<para>Si la valeur clé est égale à <literal>OTHER_OBJECT</literal>, une liste
|
||||
d'&LSobject; sera insérée dans la liste des valeurs possibles. La valeur
|
||||
associée est alors un tableau associatif dont les valeurs clés sont les noms
|
||||
des paramètres de configuration de la recherche de ces &LSobjects; et les
|
||||
valeurs associées, les valeurs des paramètres.</para>
|
||||
|
||||
<para>Il est possible de regrouper des valeurs de l'attribut en plaçant leur
|
||||
déclaration dans un sous-tableau. Ce sous-tableau devra contenir la clé
|
||||
<literal>label</literal> dont la valeur associé sera le &LSformat; du nom du groupe
|
||||
de valeurs. Ce &LSformat; est composé à partir des valeurs de l'objet courant
|
||||
(attributs, dn, ...). Une seconde clé <literal>possible_values</literal> regroupera
|
||||
les valeurs possibles du groupe. Comme pour le tableau principal, la clé <literal>
|
||||
OTHER_OBJECT</literal> permet d'imcorporer une liste d'&LSobject;.</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>object_type</term>
|
||||
<listitem>
|
||||
<simpara>Nom du type d'&LSobject; en référence.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>display_name_format</term>
|
||||
<listitem>
|
||||
<simpara>&LSformat; du nom d'affichage des objets lors de leur sélection.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>value_attribute</term>
|
||||
<listitem>
|
||||
<simpara>Nom de l'attribut des &LSobjects; en référence servant de valeur
|
||||
clé et permettant de les identifier (Exemple : <emphasis>dn</emphasis> ou
|
||||
<emphasis>uid</emphasis>).</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>values_attribute</term>
|
||||
<listitem>
|
||||
<simpara>Nom de l'attribut des &LSobjects; en référence servant de catalogue de
|
||||
valeurs. Dans ce mode, la valeur n'a pas de label et est affichée directement
|
||||
dans l'interface. Ce paramètre peut-être utilisé en complément ou non du paramètre
|
||||
<emphasis>value_attribute</emphasis>.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>filter</term>
|
||||
<listitem>
|
||||
<simpara>Filtre falcultatif de la recherche des LSobjets. Il sera dans tous
|
||||
les cas agrémenté des valeurs des <emphasis>objectclass</emphasis> du type
|
||||
d'&LSobject;.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>scope</term>
|
||||
<listitem>
|
||||
<simpara>Scope falcultatif de la recherche des LSobjets.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>basedn</term>
|
||||
<listitem>
|
||||
<simpara>Basedn falcultatif de la recherche des LSobjets.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>onlyAccessible</term>
|
||||
<listitem>
|
||||
<simpara>Booléen falcultatif définissant si seul les LSobjets auxquels
|
||||
l'utilisateur connecté à accès doivent être considérés comme sélectionnables
|
||||
(Faux par défaut).</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Si la valeur clé est égale à <literal>OTHER_ATTRIBTE</literal>, une liste
|
||||
de valeur possible sera composée à l'aide des valeurs d'un (ou plusieurs) autre
|
||||
attribut de l'objet courant. La valeur associée peut être alors :
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<simpara>soit le nom d'un attribut dont les valeurs seront utilisées comme valeurs
|
||||
possibles (la valeur affichée est égale à la valeur stockée).</simpara>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<simpara>soit un tableau associatif dont les valeurs clés sont les noms des attributs
|
||||
dont les valeurs seront utilisés comme valeurs possibles et dont les valeurs associés
|
||||
seront les labels sous lesquels ces valeurs seront regroupées (la valeur
|
||||
affichée est égale à la valeur stockée).</simpara>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<simpara>soit un tableau associatif référençant un attribut sous la clé <emphasis>attr
|
||||
</emphasis> dont les valeurs seront utilisées comme valeurs possibles. Cet attribut
|
||||
peut-être du type &LSattr_html_jsonCompositeAttribute;. Il sera alors possible d'utiliser
|
||||
les valeurs d'un composant en particulier en le référençant à l'aide de la clé <emphasis>
|
||||
json_component_key</emphasis>. Il est également possible de référencer un autre composant
|
||||
à l'aide de la clé <emphasis>json_component_label</emphasis> et dont les valeurs seront
|
||||
utilisées comme valeurs affichées lors de la sélection. À défaut, les valeurs affichées
|
||||
seront identiques à celles stockées.</simpara>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
</para>
|
||||
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>translate_labels</term>
|
||||
<listitem>
|
||||
<simpara>Booléen permettant d'activer/désactiver la traduction des labels (Par defaut : <literal>Vrai</literal>).</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>sort</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si les valeurs possibles doivent être
|
||||
triées ou non (Vrai par défaut). Le trie est effectué sur les libellés
|
||||
des valeurs possibles.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>sortDirection</term>
|
||||
<listitem>
|
||||
<simpara>Mot clé déterminant le sens du trie des valeurs possibles.</simpara>
|
||||
<simpara>Valeurs possibles : <literal>ASC</literal> ou <literal>DESC</literal> (<literal>ASC</literal> par défaut).</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect4>
|
|
@ -1,120 +0,0 @@
|
|||
<sect4 id="config-LSattr_html_select_object">
|
||||
<title>LSattr_html_select_object</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont les valeurs sont
|
||||
des références à d'autres &LSobjects;. Chaque référence à un objet correspond
|
||||
à une valeur prise par l'attribut. Les valeurs clés référant à un &LSobject;
|
||||
sont soit la valeur d'un de leurs attributs, soit leur <emphasis>DN</emphasis>.</para>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure</citetitle>...
|
||||
<![CDATA['html_options' => array (
|
||||
selectable_object => array (
|
||||
array (
|
||||
'object_type' => '[Type d'LSobject selectionnable]',
|
||||
'display_name_format' => '[LSformat du nom d'affichage des LSobjects]',
|
||||
'value_attribute' => '[Nom de l'attribut clé des LSobjects]',
|
||||
'filter' => '[Filtre de recherche]',
|
||||
'onlyAccessible' => '[Booléen]'
|
||||
),
|
||||
[...]
|
||||
),
|
||||
'ordered' => [Booléen],
|
||||
'sort' => [Booléen],
|
||||
'sortDirection' => '[ASC|DESC]'
|
||||
),]]>
|
||||
...
|
||||
</programlisting>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>selectable_object</term>
|
||||
<listitem>
|
||||
<simpara>Tableau dont chaque valeur correspond à un tableau associatif spécifiant
|
||||
un type d'&LSobject; sélectionnable. Pour chaque type d'objet sélectionnable, les
|
||||
paramètres suivants doivent être renseignés :</simpara>
|
||||
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>object_type</term>
|
||||
<listitem>
|
||||
<simpara>Nom du type d'&LSobject; en référence
|
||||
<emphasis>(Paramètre obligatoire)</emphasis>.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>display_name_format</term>
|
||||
<listitem>
|
||||
<simpara>&LSformat; du nom d'affichage des objets lors de leur sélection
|
||||
<emphasis>(Paramètre facultatif)</emphasis>.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>value_attribute</term>
|
||||
<listitem>
|
||||
<simpara>Nom de l'attribut des &LSobjects; en référence servant de valeur
|
||||
clé et permettant de les identifier <emphasis>(Paramètre obligatoire,
|
||||
exemples : <literal>dn</literal> ou <literal>uid</literal>)</emphasis>.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>filter</term>
|
||||
<listitem>
|
||||
<simpara>Filtre de recherche qui sera ajouter au filtre par défaut lors de la
|
||||
sélection des objets <emphasis>(Paramètre facultatif)</emphasis>.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>onlyAccessible</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si seul les LSobjets auxquels l'utilisateur connecté
|
||||
à accès doivent être considérés comme sélectionnables <emphasis>(Paramètre facultatif,
|
||||
par défaut: <literal>False</literal>)</emphasis>.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>ordered</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si la liste des objets choisis doit être ordonnable ou
|
||||
non <emphasis>(Paramètre facultatif, par défaut: <literal>False</literal>)</emphasis>.
|
||||
Cela aura pour effet d'activer une fonctionnalité dynamique de l'interface permettant
|
||||
de remonter ou descendre dans la liste les objets choisis.</simpara>
|
||||
<note><simpara>Cette fonctionnalité désactive automatiquement le trie des
|
||||
objets à l'affichage.</simpara></note>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>sort</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si la liste des objets choisis doit être
|
||||
triée ou non <emphasis>(Paramètre facultatif, par défaut:
|
||||
<literal>True</literal>)</emphasis>. Le trie est effectué sur les libellés
|
||||
des objets choisis.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>sortDirection</term>
|
||||
<listitem>
|
||||
<simpara>Mot clé déterminant le sens du trie des objets choisis.</simpara>
|
||||
<simpara>Valeurs possibles : <literal>ASC</literal> ou <literal>DESC</literal> (<literal>ASC</literal> par défaut).</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
|
||||
</sect4>
|
|
@ -1,6 +0,0 @@
|
|||
<sect4 id="config-LSattr_html_ssh_key">
|
||||
<title>LSattr_html_ssh_key</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est
|
||||
une clef publique SSH. Il permet dans l'interface, d'avoir un affichage adapté
|
||||
à ce type de donnée.</para>
|
||||
</sect4>
|
|
@ -1,10 +0,0 @@
|
|||
<sect4 id="config-LSattr_html_tel">
|
||||
<title>LSattr_html_tel</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est
|
||||
un numéro de téléphone. Lors de l'affichage, un lien hypertexte avec une URI
|
||||
de type <literal>tel:~~</literal> est affiché.</para>
|
||||
<important><simpara>Ce type d'attribut HTML est dérivé du type
|
||||
<link linkend='config-LSattr_html_text'>text</link>. Il profite donc de toutes
|
||||
les fonctionnalités d'un champ de ce type (autogénération, ...).</simpara>
|
||||
</important>
|
||||
</sect4>
|
|
@ -1,96 +0,0 @@
|
|||
<sect4 id="config-LSattr_html_text">
|
||||
<title>LSattr_html_text</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est
|
||||
une chaîne de caractères devant être affichée dans un champ
|
||||
<emphasis>input</emphasis> HTML de type <emphasis>text</emphasis>.
|
||||
</para>
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure</citetitle>...
|
||||
<![CDATA['html_options' => array(
|
||||
'generate_value_format' => '[LSformat pour la génération de la valeur]',
|
||||
'autoGenerateOnCreate' => [booléen],
|
||||
'autoGenerateOnModify' => [booléen],
|
||||
'withoutAccent' => [booleen],
|
||||
'replaceSpaces' => "[chaîne de remplacement]",
|
||||
'upperCase' => [booleen],
|
||||
'lowerCase' => [booleen]
|
||||
),]]>
|
||||
...
|
||||
</programlisting>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>generate_value_format</term>
|
||||
<listitem>
|
||||
<simpara>&LSformat; de la valeur utilisée pour la génération automatique de
|
||||
celle-ci à partir des informations saisies dans le formulaire. Les valeurs
|
||||
clefs du format sont les noms des attributs de l'objet. Seuls les attributs
|
||||
affichés au moins en lecture seule dans le formulaire peuvent être utilisés
|
||||
dans le format. Une seule valeur par attribut sera utilisée pour la
|
||||
génération : celle du premier champ (dans l'ordre d'apparition dans le
|
||||
formulaire).</simpara>
|
||||
<important><simpara>Seuls les éléments du formulaire de type HTML
|
||||
<emphasis>input</emphasis>, <emphasis>select</emphasis> ou
|
||||
<emphasis>textarea</emphasis> peuvent être utilisés.</simpara></important>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>autoGenerateOnCreate</term>
|
||||
<listitem>
|
||||
<simpara>Activation de la génération automatique lorsque celui-ci est
|
||||
vide au moment du chargement du formulaire.</simpara>
|
||||
<note><simpara>La valeur par défaut est <emphasis>False</emphasis>.</simpara></note>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>autoGenerateOnModify</term>
|
||||
<listitem>
|
||||
<simpara>Activation de la génération automatique lors de chaque
|
||||
modification de la valeur des champs du formulaire lié.</simpara>
|
||||
<note><simpara>La valeur par défaut est <emphasis>False</emphasis>.</simpara></note>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>withoutAccent</term>
|
||||
<listitem>
|
||||
<simpara>Activation de la suppression des accents dans la chaîne de
|
||||
caractères générée automatiquement.</simpara>
|
||||
<note><simpara>La valeur par défaut est <emphasis>False</emphasis>.</simpara></note>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>withoutAccent</term>
|
||||
<listitem>
|
||||
<simpara>Activation du remplacement des accents dans la chaîne de
|
||||
caractères générée automatiquement. La valeur de remplacement est celle du
|
||||
paramètre.</simpara>
|
||||
<note><simpara>La valeur par défaut est <emphasis>False</emphasis>.</simpara></note>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>upperCase</term>
|
||||
<listitem>
|
||||
<simpara>Activation de la mise en majuscule de la valeur générée
|
||||
automatiquement.</simpara>
|
||||
<note><simpara>La valeur par défaut est <emphasis>False</emphasis>.</simpara></note>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>lowerCase</term>
|
||||
<listitem>
|
||||
<simpara>Activation de la mise en minuscule de la valeur générée
|
||||
automatiquement.</simpara>
|
||||
<note><simpara>La valeur par défaut est <emphasis>False</emphasis>.</simpara></note>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
</sect4>
|
|
@ -1,7 +0,0 @@
|
|||
<sect4 id="config-LSattr_html_textarea">
|
||||
<title>LSattr_html_textarea</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est une
|
||||
chaine de caractères trop longue pour être saisie dans un champs HTML
|
||||
<emphasis>imput</emphasis> de type <emphasis>text</emphasis> et est plus adapté
|
||||
à un champ HTML <emphasis>textarea</emphasis>.</para>
|
||||
</sect4>
|
|
@ -1,11 +0,0 @@
|
|||
<sect4 id="config-LSattr_html_url">
|
||||
<title>LSattr_html_url</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est
|
||||
une URL. Il propose directement dans l'interface, la possibilité d'accèder au
|
||||
site ou encore de l'ajouter dans ses favoris (lorsque le navigateur le
|
||||
supporte).</para>
|
||||
<important><simpara>Ce type d'attribut HTML est dérivé du type
|
||||
<link linkend='config-LSattr_html_text'>text</link>. Il profite donc de toutes
|
||||
les fonctionnalités d'un champ de ce type (autogénération, ...).</simpara>
|
||||
</important>
|
||||
</sect4>
|
|
@ -1,81 +0,0 @@
|
|||
<sect4 id="config-LSattr_html_valueWithUnit">
|
||||
<title>LSattr_html_valueWithUnit</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est un entier
|
||||
auxquel un facteur peut s'appliquer (par exemple : <literal>Kilo, Méga, ...</literal>).</para>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure</citetitle>...
|
||||
<![CDATA['html_options' => array(
|
||||
'units' => array (
|
||||
'[facteur1]' => '[label unit1]',
|
||||
'[facteur2]' => '[label unit2]',
|
||||
[...]
|
||||
),
|
||||
'translate_labels' => [booléen],
|
||||
'nb_decimals' => [number of decimals],
|
||||
'dec_point' => '[decimals point]',
|
||||
'thousands_sep' => '[thousands separator]',
|
||||
'store_integer' => [booléen],
|
||||
'round_down' => [booléen],
|
||||
)
|
||||
),]]>
|
||||
...
|
||||
</programlisting>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>units</term>
|
||||
<listitem>
|
||||
<simpara>Tableau associatif dont la clé est un entier correspondant au facteur et la valeur est le label de l'unité. (Par exemple : <literal>1 => Octet, 1024 => Kilo-octet, ...</literal>).</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>translate_labels</term>
|
||||
<listitem>
|
||||
<simpara>Booléen permettant d'activer/désactiver la traduction des labels (Par defaut : <literal>Vrai</literal>).</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>nb_decimals</term>
|
||||
<listitem>
|
||||
<simpara>Le nombre de décimals à afficher en cas de nombre non-entier (Par defaut : <literal>2</literal>).</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>dec_point</term>
|
||||
<listitem>
|
||||
<simpara>Le caractère à utiliser comme séparateur de décimal (Par defaut, une virgule).</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>thousands_sep</term>
|
||||
<listitem>
|
||||
<simpara>Le caractère à utiliser comme séparateur de milliers (Par defaut, un espace).</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>store_integer</term>
|
||||
<listitem>
|
||||
<simpara>Booléen permettant d'activer/désactiver le stockage de valeurs entières (Par defaut :
|
||||
<literal>Vrai</literal>).</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>round_down</term>
|
||||
<listitem>
|
||||
<simpara>Booléen permettant d'arrondir à l'entier inférieur (et non à l'entier supérieur
|
||||
par défaut) en cas de stockage de valeurs entières.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect4>
|
|
@ -1,33 +0,0 @@
|
|||
<sect4 id="config-LSattr_html_wysiwyg">
|
||||
<title>LSattr_html_wysiwyg</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est du
|
||||
code HTML et dont l'édition doit être fait à l'aide d'un éditeur <literal>WYSIWYG
|
||||
</literal>. La librairie &TinyMCE; est utilisée pour cela.</para>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure</citetitle>...
|
||||
<![CDATA['html_options' => array(
|
||||
'extra_options' => array (
|
||||
[Options à passer à TinyMCE]
|
||||
),
|
||||
),]]>
|
||||
...
|
||||
</programlisting>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>extra_options</term>
|
||||
<listitem>
|
||||
<simpara>Ce paramètre permet de passer des options à &TinyMCE; pour
|
||||
personnaliser son comportement. Par exemple, il est possible d'utiliser
|
||||
le paramètre <literal>valid_styles</literal> pour définir quels styles
|
||||
CSS sont autorisés. Pour plus d'informations, consultez la documentation
|
||||
de &TinyMCE;.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect4>
|
|
@ -1,14 +0,0 @@
|
|||
<sect4 id="config-LSattr_html_xmpp">
|
||||
<title>LSattr_html_xmpp</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est
|
||||
une adresse XMPP. Il propose directement dans l'interface, la possibilité
|
||||
de lancer une fenêtre de dialogue avec l'interlocuteur de son client XMPP
|
||||
préféré .</para>
|
||||
<note><simpara>Cette fonctionnalité n'est supporté uniquement par les
|
||||
navigateurs web supportant les URI de type <emphasis>xmpp://~~</emphasis>.
|
||||
</simpara></note>
|
||||
<important><simpara>Ce type d'attribut HTML est dérivé du type
|
||||
<link linkend='config-LSattr_html_text'>text</link>. Il profite donc de toutes
|
||||
les fonctionnalités d'un champ de ce type (autogénération, ...).</simpara>
|
||||
</important>
|
||||
</sect4>
|
|
@ -1,15 +0,0 @@
|
|||
<sect3 id="config-LSattr_ldap">
|
||||
<title>Configuration des attributs LDAP</title>
|
||||
<para>Cette section décrit les options propres à chacun des types d'attributs LDAP
|
||||
supportés par &LdapSaisie;.</para>
|
||||
|
||||
&conf-LSattr_ldap_ascii;
|
||||
&conf-LSattr_ldap_boolean;
|
||||
&conf-LSattr_ldap_compositeValueToJSON;
|
||||
&conf-LSattr_ldap_date;
|
||||
&conf-LSattr_ldap_image;
|
||||
&conf-LSattr_ldap_naiveDate;
|
||||
&conf-LSattr_ldap_numeric;
|
||||
&conf-LSattr_ldap_password;
|
||||
&conf-LSattr_ldap_postaladdress;
|
||||
</sect3>
|
|
@ -1,12 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!ENTITY conf-LSattr_ldap_ascii SYSTEM "LSattr_ldap_ascii.docbook">
|
||||
<!ENTITY conf-LSattr_ldap_boolean SYSTEM "LSattr_ldap_boolean.docbook">
|
||||
<!ENTITY conf-LSattr_ldap_compositeValueToJSON SYSTEM "LSattr_ldap_compositeValueToJSON.docbook">
|
||||
<!ENTITY conf-LSattr_ldap_date SYSTEM "LSattr_ldap_date.docbook">
|
||||
<!ENTITY conf-LSattr_ldap_image SYSTEM "LSattr_ldap_image.docbook">
|
||||
<!ENTITY conf-LSattr_ldap_naiveDate SYSTEM "LSattr_ldap_naiveDate.docbook">
|
||||
<!ENTITY conf-LSattr_ldap_numeric SYSTEM "LSattr_ldap_numeric.docbook">
|
||||
<!ENTITY conf-LSattr_ldap_password SYSTEM "LSattr_ldap_password.docbook">
|
||||
<!ENTITY conf-LSattr_ldap_postaladdress SYSTEM "LSattr_ldap_postaladdress.docbook">
|
||||
|
||||
<!ENTITY LSattr_ldap_date "<link linkend='config-LSattr_ldap_date'>LSattr_ldap_date</link>">
|
|
@ -1,6 +0,0 @@
|
|||
<sect4 id="config-LSattr_ldap_ascii">
|
||||
<title>LSattr_ldap_ascii</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est
|
||||
une chaine de caractère. Ce type est le type par défaut.</para>
|
||||
|
||||
</sect4>
|
|
@ -1,42 +0,0 @@
|
|||
<sect4 id="config-LSattr_ldap_boolean">
|
||||
<title>LSattr_ldap_boolean</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est
|
||||
une booléen. On attend ici par booléen, tout attribut ne pouvant prendre que deux
|
||||
valeurs pré-définies correspond pour l'un à <emphasis>Oui</emphasis> et l'autre
|
||||
à <emphasis>Non</emphasis></para>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure</citetitle>...
|
||||
<![CDATA['ldap_options' => array (
|
||||
'true_value' => '[valeur correspondant à Vrai]',
|
||||
'false_value' => '[valeur correspondant à Faux]'
|
||||
),]]>
|
||||
...
|
||||
</programlisting>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>true_value</term>
|
||||
<listitem>
|
||||
<simpara>La valeur de l'attribut correspondant à <emphasis>Vrai</emphasis>.
|
||||
(Par défaut : <literal>TRUE</literal>)</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>false_value</term>
|
||||
<listitem>
|
||||
<simpara>La valeur de l'attribut correspondant à <emphasis>Faux</emphasis>.
|
||||
(Par défaut : <literal>FALSE</literal>)</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
<important><simpara>Les valeurs possibles pour le paramètre <parameter>default_value</parameter>
|
||||
sont <literal>yes</literal> et <literal>no</literal>.</simpara></important>
|
||||
|
||||
|
||||
</sect4>
|
|
@ -1,9 +0,0 @@
|
|||
<sect4 id="config-LSattr_ldap_compositeValueToJSON">
|
||||
<title>LSattr_ldap_compositeValueToJSON</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs composites dont les
|
||||
valeurs respectent le format suivant :
|
||||
<literal>[key1=value1][key2=value2][...]</literal></para>
|
||||
<para>Ce type d'attribut LDAP sera utilisé pour convertir la valeur en son
|
||||
équivalent <literal>JSON</literal> pour pouvoir être traité à l'aide du type d'
|
||||
attribut HTML &LSattr_html_jsonCompositeAttribute;.</para>
|
||||
</sect4>
|
|
@ -1,63 +0,0 @@
|
|||
<sect4 id="config-LSattr_ldap_date">
|
||||
<title>LSattr_ldap_date</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est
|
||||
une date.</para>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure</citetitle>...
|
||||
<![CDATA['ldap_options' => array (
|
||||
'timestamp' => [Booléen], // Si la date est stockée au format timestamp
|
||||
'format' => '[Format de stockage]', // Default : "YmdHisO"
|
||||
'timezone' => '[Fuseau horaire]', // Default : "UTC"
|
||||
),]]>
|
||||
...
|
||||
</programlisting>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>timestamp</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si la date est stockée sous la forme d'un
|
||||
timestamp Unix (nombre de secondes depuis le 1er janvier 1970 à 00:00:00
|
||||
UTC).</simpara>
|
||||
<remark>Si <parameter>timestamp</parameter> est vrai, &LdapSaisie; ne tient
|
||||
pas compte du paramètre <parameter>format</parameter>.</remark>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>format</term>
|
||||
<listitem>
|
||||
<para>Format de stockage de la date dans l'annuaire. Ce format est composé à
|
||||
partir des motifs clés gérés par la fonction <function>date()</function>
|
||||
de &php;. Pour plus d'information, consulter
|
||||
<ulink url='http://www.php.net/date'>la documentation officielle</ulink>.
|
||||
<note><simpara>La valeur par défaut est <emphasis>YmdHisO</emphasis>,
|
||||
correspondant à la syntaxe <literal>Generalized Time</literal> telle que
|
||||
définie dans la <ulink url='https://tools.ietf.org/html/rfc4517'>RFC4517
|
||||
</ulink>. Exemples : <literal>20091206230506Z</literal>
|
||||
<emphasis>(=2009/12/06 23:05:66 UTC)</emphasis> ou
|
||||
<literal>20190613143537+0200</literal>
|
||||
<emphasis>(=2019/06/13 14:35:37 UTC+0200)</emphasis>.</simpara></note>
|
||||
</para>
|
||||
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>timezone</term>
|
||||
<listitem>
|
||||
<para>Fuseau horaire de stockage des dates dans l'annuaire LDAP. Les valeurs
|
||||
possibles sont documentées dans <ulink url='https://www.php.net/timezones'>la
|
||||
documentation officielle de PHP</ulink>. (Par défaut : <literal>UTC</literal>)
|
||||
</para>
|
||||
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
|
||||
</sect4>
|
|
@ -1,7 +0,0 @@
|
|||
<sect4 id="config-LSattr_ldap_image">
|
||||
<title>LSattr_ldap_image</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est
|
||||
une image. Pour le moment, aucun traitement particulier n'est appliqué pour le
|
||||
stockage.</para>
|
||||
|
||||
</sect4>
|
|
@ -1,9 +0,0 @@
|
|||
<sect4 id="config-LSattr_ldap_naiveDate">
|
||||
<title>LSattr_ldap_naiveDate</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est
|
||||
une date dont la <emphasis>timezone</emphasis> doit être ignorée. Côté LDAP,
|
||||
les dates seront stockées au format UTC étant donnée que la syntaxe LDAP exige
|
||||
une <emphasis>timezone</emphasis>, cependant celle-ci sera complètement ignorée.
|
||||
Ce type peut-être utilisé à la place du type &LSattr_ldap_date;.</para>
|
||||
|
||||
</sect4>
|
|
@ -1,7 +0,0 @@
|
|||
<sect4 id="config-LSattr_ldap_numeric">
|
||||
<title>LSattr_ldap_numeric</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est
|
||||
un nombre. Pour le moment, aucun traitement particulier est n'appliqué pour le
|
||||
stockage.</para>
|
||||
|
||||
</sect4>
|
|
@ -1,106 +0,0 @@
|
|||
<sect4 id="config-LSattr_ldap_password">
|
||||
<title>LSattr_ldap_password</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est
|
||||
un mot de passe.</para>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure</citetitle>...
|
||||
<![CDATA['ldap_options' => array (
|
||||
'encode' => '[Type d'encodage du mot de passe]',
|
||||
'encode_function' => '[Nom de la fonction d'encodage]',
|
||||
'verify_function' => '[Nom de la fonction de vérification]',
|
||||
'no_random_crypt_salt' => '[Booléen]', // Désactivation de l'utilisation d'une salt aléatoire
|
||||
'wildcardPassword' => '[mot de passe(s) en clair]',
|
||||
'encodedWildcardPassword' => '[mot de passe(s) encodé(s)]'
|
||||
),]]>
|
||||
...
|
||||
</programlisting>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>encode</term>
|
||||
<listitem>
|
||||
<para>Nom du type d'encodage du mot de passe utilisé. Les types d'encodages
|
||||
supportés sont les suivants :
|
||||
<itemizedlist>
|
||||
<listitem><simpara><literal>md5crypt</literal></simpara></listitem>
|
||||
<listitem><simpara><literal>crypt</literal></simpara></listitem>
|
||||
<listitem><simpara><literal>ext_des</literal></simpara></listitem>
|
||||
<listitem><simpara><literal>blowfish</literal></simpara></listitem>
|
||||
<listitem><simpara><literal>sha</literal></simpara></listitem>
|
||||
<listitem><simpara><literal>sha256</literal></simpara></listitem>
|
||||
<listitem><simpara><literal>sha512</literal></simpara></listitem>
|
||||
<listitem><simpara><literal>ssha</literal></simpara></listitem>
|
||||
<listitem><simpara><literal>ssha256</literal></simpara></listitem>
|
||||
<listitem><simpara><literal>ssha512</literal></simpara></listitem>
|
||||
<listitem><simpara><literal>smd5</literal></simpara></listitem>
|
||||
<listitem><simpara><literal>md5</literal></simpara></listitem>
|
||||
<listitem><simpara><literal>clear</literal></simpara></listitem>
|
||||
</itemizedlist>
|
||||
<note><simpara>Valeur par défaut : <literal>md5crypt</literal></simpara></note>
|
||||
<important><simpara>Si le type d'encodage est inconnu, ou qu'il n'est pas
|
||||
supporté par le serveur web, un message d'erreur alertera l'utilisateur et le
|
||||
mot de passe sera stocké en clair.</simpara></important>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>encode_function</term>
|
||||
<listitem>
|
||||
<para>Nom d'une function qui sera utilisée afin d'encoder le mot de passe.
|
||||
Cette fonction recevra deux paramètres : le <literal>LSldapObject</literal>
|
||||
et le mot de passe en clair.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>verify_function</term>
|
||||
<listitem>
|
||||
<para>Nom d'une function qui sera utilisée afin de valider un mot de passe
|
||||
soumis par l'utilisateur par rapport à celui stocké dans l'annuaire. Cette
|
||||
fonction recevra trois paramètres : le <literal>LSldapObject</literal>,le
|
||||
mot de passe en clair et le mot de passe hashé. Si ce paramètre est omis
|
||||
et que le paramètre <literal>encode_function</literal> est défini, le mot
|
||||
de passe à tester sera encodé à nouveau à l'aide de la fonction
|
||||
<literal>encode_function</literal> et le résultat sera comparé avec le mot
|
||||
de passe stocké dans l'annuaire.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>no_random_crypt_salt</term>
|
||||
<listitem>
|
||||
<simpara>Désactivation de l'utilisation d'une salt générée aléatoirement au
|
||||
profit de l'utilisation des deux premiers caractères du mot de passe.
|
||||
Ce paramètre impacte uniquement le type de cryptage <literal>crypt</literal>.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>wildcardPassword</term>
|
||||
<listitem>
|
||||
<simpara>Mot de passe (ou tableau de mot de passe) qui sera ajouté systématiquement,
|
||||
en plus du mot de passe choisi. Il sera encodé de la même manière que pour le mot de
|
||||
passe choisi avant enregistrement.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>encodedWildcardPassword</term>
|
||||
<listitem>
|
||||
<simpara>Mot de passe (ou tableau de mot de passe) qui sera ajouté systématiquement,
|
||||
en plus du mot de passe choisi. Contrairement à la directive
|
||||
<parameter>wildcardPassword</parameter>, le mot de passe ne sera pas encodé avant
|
||||
enregistrement.</simpara>
|
||||
<note><simpara>Cette directive peut cohabiter avec sa cousine <parameter>wildcardPassword</parameter>. Les mot de passes contenus dans les deux directives seront alors ajoutés.</simpara></note>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
|
||||
</sect4>
|
|
@ -1,14 +0,0 @@
|
|||
<sect4 id="config-LSattr_ldap_postaladdress">
|
||||
<title>LSattr_ldap_postaladdress</title>
|
||||
<para>Ce type est utilisé pour la gestion des attributs dont la valeur est construite
|
||||
sur le modèle de l'attribut standard <emphasis>postalAddress</emphasis>, c'est à dire
|
||||
dont les lignes sont séparées à l'aide du caractère de délimiteur <literal>$</literal>.
|
||||
</para>
|
||||
|
||||
<para>Lors de la lecture des valeurs de ce type d'attribut dans l'annuaire, les
|
||||
caractères <literal>$</literal> seront remplacés par des caractères <literal>\n</literal>
|
||||
et, à l'inverse, lors de l'écriture des valeurs de ce type d'attribut dans l'annuaire,
|
||||
les caractères <literal>\n</literal> seront remplacés par des caractères
|
||||
<literal>$</literal>.</para>
|
||||
|
||||
</sect4>
|
|
@ -1,71 +0,0 @@
|
|||
<sect3 id="config-LSattribute-check-data">
|
||||
<title>Configuration des règles de vérification syntaxique</title>
|
||||
<para>Cette section décrit la manière de configuer des règles de vérification
|
||||
syntaxique sur les données des attributs. Ces règles seront utilisées pour vérifier
|
||||
que les valeurs saisies par un utilisateur dans un formulaire sont correctes.</para>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure</citetitle>...
|
||||
<![CDATA['check_data' => array (
|
||||
'[regle1]' => array(
|
||||
'msg' => "[Message d'erreur]",
|
||||
'params' => array(
|
||||
// Paramètres de la règle
|
||||
)
|
||||
),
|
||||
...
|
||||
),]]>
|
||||
...
|
||||
</programlisting>
|
||||
|
||||
<para>Le paramètre <parameter>check_data</parameter> est un tableau associatif
|
||||
dont les clés sont les noms des règles de vérification syntaxique actives et les
|
||||
valeurs associées sont des tableaux associatifs contenant les paramètres des
|
||||
règles.</para>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>msg</term>
|
||||
<listitem>
|
||||
<simpara>Le message d'erreur à afficher lors que la règle n'est pas respectée.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>params</term>
|
||||
<listitem>
|
||||
<simpara>Tableau associatif contenant les paramètres de la règle. Les
|
||||
paramètres possibles sont propres à chaque type de règle. Les clès sont les
|
||||
noms des paramètres et les valeurs associés, les valeurs des paramètres.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
&conf-LSattribute-check-data-alphanumeric;
|
||||
&conf-LSattribute-check-data-callable;
|
||||
&conf-LSattribute-check-data-date;
|
||||
&conf-LSattribute-check-data-differentPassword;
|
||||
&conf-LSattribute-check-data-email;
|
||||
&conf-LSattribute-check-data-filesize;
|
||||
&conf-LSattribute-check-data-imagefile;
|
||||
&conf-LSattribute-check-data-imagesize;
|
||||
&conf-LSattribute-check-data-inarray;
|
||||
&conf-LSattribute-check-data-integer;
|
||||
&conf-LSattribute-check-data-lettersonly;
|
||||
&conf-LSattribute-check-data-maxlength;
|
||||
&conf-LSattribute-check-data-minlength;
|
||||
&conf-LSattribute-check-data-mimetype;
|
||||
&conf-LSattribute-check-data-nonzero;
|
||||
&conf-LSattribute-check-data-nopunctuation;
|
||||
&conf-LSattribute-check-data-numeric;
|
||||
&conf-LSattribute-check-data-password;
|
||||
&conf-LSattribute-check-data-rangelength;
|
||||
&conf-LSattribute-check-data-regex;
|
||||
&conf-LSattribute-check-data-required;
|
||||
&conf-LSattribute-check-data-ssh_pub_key;
|
||||
&conf-LSattribute-check-data-telephonenumber;
|
||||
|
||||
</sect3>
|
|
@ -1,24 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!ENTITY conf-LSattribute-check-data-alphanumeric SYSTEM "alphanumeric.docbook">
|
||||
<!ENTITY conf-LSattribute-check-data-callable SYSTEM "callable.docbook">
|
||||
<!ENTITY conf-LSattribute-check-data-date SYSTEM "date.docbook">
|
||||
<!ENTITY conf-LSattribute-check-data-differentPassword SYSTEM "differentPassword.docbook">
|
||||
<!ENTITY conf-LSattribute-check-data-email SYSTEM "email.docbook">
|
||||
<!ENTITY conf-LSattribute-check-data-filesize SYSTEM "filesize.docbook">
|
||||
<!ENTITY conf-LSattribute-check-data-imagefile SYSTEM "imagefile.docbook">
|
||||
<!ENTITY conf-LSattribute-check-data-imagesize SYSTEM "imagesize.docbook">
|
||||
<!ENTITY conf-LSattribute-check-data-inarray SYSTEM "inarray.docbook">
|
||||
<!ENTITY conf-LSattribute-check-data-integer SYSTEM "integer.docbook">
|
||||
<!ENTITY conf-LSattribute-check-data-lettersonly SYSTEM "lettersonly.docbook">
|
||||
<!ENTITY conf-LSattribute-check-data-maxlength SYSTEM "maxlength.docbook">
|
||||
<!ENTITY conf-LSattribute-check-data-mimetype SYSTEM "mimetype.docbook">
|
||||
<!ENTITY conf-LSattribute-check-data-minlength SYSTEM "minlength.docbook">
|
||||
<!ENTITY conf-LSattribute-check-data-nonzero SYSTEM "nonzero.docbook">
|
||||
<!ENTITY conf-LSattribute-check-data-nopunctuation SYSTEM "nopunctuation.docbook">
|
||||
<!ENTITY conf-LSattribute-check-data-numeric SYSTEM "numeric.docbook">
|
||||
<!ENTITY conf-LSattribute-check-data-password SYSTEM "password.docbook">
|
||||
<!ENTITY conf-LSattribute-check-data-rangelength SYSTEM "rangelength.docbook">
|
||||
<!ENTITY conf-LSattribute-check-data-regex SYSTEM "regex.docbook">
|
||||
<!ENTITY conf-LSattribute-check-data-required SYSTEM "required.docbook">
|
||||
<!ENTITY conf-LSattribute-check-data-ssh_pub_key SYSTEM "ssh_pub_key.docbook">
|
||||
<!ENTITY conf-LSattribute-check-data-telephonenumber SYSTEM "telephonenumber.docbook">
|
|
@ -1,20 +0,0 @@
|
|||
<sect4 id="config-LSattribute-check-data-alphanumeric">
|
||||
<title>alphanumeric</title>
|
||||
<para>Cette règle vérifie que la valeur est une chaîne de caractères composée
|
||||
uniquement de lettres non-accuentées, en minuscule ou en majuscule et/ou de
|
||||
chiffres.</para>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>withAccents</term>
|
||||
<listitem>
|
||||
<simpara>Si le paramètre est à <emphasis>true</emphasis>, les lettres accentuées seront acceptées.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect4>
|
|
@ -1,24 +0,0 @@
|
|||
<sect4 id="config-LSattribute-check-data-callable">
|
||||
<title>callable</title>
|
||||
<para>Cette règle vérifie que la valeur saisie est correcte en utilisant une
|
||||
fonction personnalisée. Cette fonction devra prendre en paramètres la valeur à
|
||||
valider, le tableau des paramètres de la règle ainsi qu'un pointeur sur l'objet
|
||||
<emphasis>LSformElement</emphasis>. Sur la base de ses informations, elle devra
|
||||
valider la valeur et retourner <literal>True</literal> si la valeur est valide
|
||||
et <literal>False</literal> sinon.</para>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>callable</term>
|
||||
<listitem>
|
||||
<simpara>Le nom de la fonction (ou tout autre <literal>callable</literal> au sens PHP)
|
||||
de validation.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect4>
|
|
@ -1,21 +0,0 @@
|
|||
<sect4 id="config-LSattribute-check-data-date">
|
||||
<title>date</title>
|
||||
<para>Cette règle vérifie que la valeur saisie est bien une date et qu'elle
|
||||
respecte un format précis.</para>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>format</term>
|
||||
<listitem>
|
||||
<simpara>Format de la date à respecter. Ce format doit être compatible avec la
|
||||
fonction <function>strftime()</function> de &php;.
|
||||
<ulink url='http://www.php.net/strftime'>Voir la documentation de la
|
||||
fonction</ulink></simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect4>
|
|
@ -1,24 +0,0 @@
|
|||
<sect4 id="config-LSattribute-check-data-differentPassword">
|
||||
<title>differentPassword</title>
|
||||
<para>Cette règle vérifie que la valeur saisie ne correspond pas à
|
||||
un des mots de passe stockés dans d'autres attributs du même objet.
|
||||
</para>
|
||||
|
||||
<important><simpara>Les autres attributs doivent utiliser le type
|
||||
d'attribut <emphasis>LDAP</emphasis>
|
||||
<link linkend='config-LSattr_ldap_password'>LSattr_ldap_password
|
||||
</link>.</simpara></important>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>otherPasswordAttributes</term>
|
||||
<listitem>
|
||||
<simpara>La liste des autres attributs dont les mots de passe doivent être différent.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect4>
|
|
@ -1,29 +0,0 @@
|
|||
<sect4 id="config-LSattribute-check-data-email">
|
||||
<title>email</title>
|
||||
<para>Cette règle vérifie que la valeur saisie est bien une adresse e-mail. Il
|
||||
est possible de vérifier si elle appartient bien à un domaine en particulier ou
|
||||
encore de vérifier si le domaine existe et qu'il possède un serveur de mail(MX).</para>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>domain</term>
|
||||
<listitem>
|
||||
<simpara>Nom de domaine obligatoire. Ce paramètre peut être une simple chaine
|
||||
correspondant au domaine ou un tableau listant plusieurs domaines
|
||||
possibles.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>checkDomain</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si le domaine de l'adresse mail doit être
|
||||
validée.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect4>
|
|
@ -1,25 +0,0 @@
|
|||
<sect4 id="config-LSattribute-check-data-filesize">
|
||||
<title>filesize</title>
|
||||
<para>Cette règle vérifie que la valeur est un fichier dont la taille en octets
|
||||
respecte les limites passées en paramètre.</para>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>minSize</term>
|
||||
<listitem>
|
||||
<simpara>Taille minimum.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>maxSize</term>
|
||||
<listitem>
|
||||
<simpara>Taille maximum.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect4>
|
|
@ -1,12 +0,0 @@
|
|||
<sect4 id="config-LSattribute-check-data-imagefile">
|
||||
<title>imagefile</title>
|
||||
<para>Cette règle vérifie que la valeur est bien un fichier et que le type mime
|
||||
de celui-ci est bien une image. Cette règle utilise la règle mimetype en spécifiant
|
||||
si l'utilisateur ne le fait pas que le type mime doit respecter la regex suivante :
|
||||
<literal>/image\/.*/</literal></para>
|
||||
|
||||
<important><simpara>Cette règle est une simple interface à la règle mimetype,
|
||||
il est donc possible de passer d'autres paramètres propres à ce type.</simpara>
|
||||
</important>
|
||||
|
||||
</sect4>
|
|
@ -1,39 +0,0 @@
|
|||
<sect4 id="config-LSattribute-check-data-imagesize">
|
||||
<title>imagesize</title>
|
||||
<para>Cette règle vérifie que la valeur est une image dont la taille en pixels
|
||||
respecte les limites passées en paramètre.</para>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>minWidth</term>
|
||||
<listitem>
|
||||
<simpara>Largeur minimum.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>maxWitdh</term>
|
||||
<listitem>
|
||||
<simpara>Largeur maximum.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>minHeight</term>
|
||||
<listitem>
|
||||
<simpara>Hauteur minimum.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>maxHeight</term>
|
||||
<listitem>
|
||||
<simpara>Hauteur maximum.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect4>
|
|
@ -1,18 +0,0 @@
|
|||
<sect4 id="config-LSattribute-check-data-inarray">
|
||||
<title>inarray</title>
|
||||
<para>Cette règle vérifie que la valeur saisie fait partie d'une liste de valeurs
|
||||
autorisées.</para>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramêtres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>possible_values</term>
|
||||
<listitem>
|
||||
<simpara>Tableau listant les valeurs autorisées.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect4>
|
|
@ -1,39 +0,0 @@
|
|||
<sect4 id="config-LSattribute-check-data-integer">
|
||||
<title>integer</title>
|
||||
<para>Cette règle vérifie que la valeur saisie est un entier. Les paramètres
|
||||
permettent de spécifier éventuellement si la valeur doit être positive ou négative
|
||||
et également de borner les valeurs valides.</para>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramêtres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>positive</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si la valeur doit être positive.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>negative</term>
|
||||
<listitem>
|
||||
<simpara>Booléen définissant si la valeur doit être negative.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>min</term>
|
||||
<listitem>
|
||||
<simpara>Valeur minimale (supérieur ou égale).</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>max</term>
|
||||
<listitem>
|
||||
<simpara>Valeur maximale (inférieur ou égale).</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
</sect4>
|
|
@ -1,5 +0,0 @@
|
|||
<sect4 id="config-LSattribute-check-data-lettersonly">
|
||||
<title>lettersonly</title>
|
||||
<para>Cette règle vérifie que la valeur est une chaîne de caractères composée
|
||||
uniquement de lettres non-accuentées, en minuscule ou en majuscule.</para>
|
||||
</sect4>
|
|
@ -1,18 +0,0 @@
|
|||
<sect4 id="config-LSattribute-check-data-maxlength">
|
||||
<title>maxlength</title>
|
||||
<para>Cette règle vérifie que la valeur saisie est une chaine de caractères
|
||||
dont la longueur est inférieur ou égale à la valeur passées en paramètre.</para>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramêtres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>limit</term>
|
||||
<listitem>
|
||||
<simpara>Limite supérieur (ou égale) de la longueur de la chaîne de caratères.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect4>
|
|
@ -1,27 +0,0 @@
|
|||
<sect4 id="config-LSattribute-check-data-mimetype">
|
||||
<title>mimetype</title>
|
||||
<para>Cette règle vérifie que la valeur est bien un fichier et que le type mime
|
||||
de celui-ci est correct. Il est possible de vérifier si le type mime fait partie
|
||||
d'une liste ou encore s'il valide une expression régulière.</para>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>mimeType</term>
|
||||
<listitem>
|
||||
<simpara>Type mime obligatoire. Ce paramètre peut être une simple chaine
|
||||
correspondant au type mime ou un tableau listant plusieurs possibilités.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>mimeTypeRegEx</term>
|
||||
<listitem>
|
||||
<simpara>Expression régulière que doit respecter le type mime.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect4>
|
|
@ -1,18 +0,0 @@
|
|||
<sect4 id="config-LSattribute-check-data-minlength">
|
||||
<title>minlength</title>
|
||||
<para>Cette règle vérifie que la valeur saisie est une chaine de caractères
|
||||
dont la longueur est supérieur ou égale à la valeur passée en paramètre.</para>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>limit</term>
|
||||
<listitem>
|
||||
<simpara>Limite inférieure (ou égale) de la longueur de la chaîne de caratères.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect4>
|
|
@ -1,4 +0,0 @@
|
|||
<sect4 id="config-LSattribute-check-data-nonzero">
|
||||
<title>nonzero</title>
|
||||
<para>Cette régle vérifie que la valeur est une valeur numérique non nulle.</para>
|
||||
</sect4>
|
|
@ -1,6 +0,0 @@
|
|||
<sect4 id="config-LSattribute-check-data-nopunctuation">
|
||||
<title>nopunctuation</title>
|
||||
<para>Cette régle vérifie que la valeur est une chaîne de caractères ne contenant
|
||||
pas de signe de ponctuation. Les caractères suivants sont actuellement exclus :
|
||||
<literal><![CDATA[( ) . \ / \ * \ ^ \ ? # ! @ $ % + = , " ' > < ~ [ ] { }]]></literal></para>
|
||||
</sect4>
|
|
@ -1,4 +0,0 @@
|
|||
<sect4 id="config-LSattribute-check-data-numeric">
|
||||
<title>numeric</title>
|
||||
<para>Cette régle vérifie que la valeur est une valeur numérique.</para>
|
||||
</sect4>
|
|
@ -1,53 +0,0 @@
|
|||
<sect4 id="config-LSattribute-check-data-password">
|
||||
<title>password</title>
|
||||
<para>Cette règle vérifie que la valeur est un mot de passe respectant la politique
|
||||
de sécurité définie par les paramètres de la règle.</para>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>minlength</term>
|
||||
<listitem>
|
||||
<simpara>Longueur minimale du mot de passe.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>maxlength</term>
|
||||
<listitem>
|
||||
<simpara>Longueur maximale du mot de passe.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>prohibitedValues</term>
|
||||
<listitem>
|
||||
<simpara>Tableau de valeurs interdites.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>regex</term>
|
||||
<listitem>
|
||||
<simpara>Expression(s) régulière(s) que doit respecter le mot de passe. Ce
|
||||
paramètre peut être une expression régulière au format
|
||||
<ulink url='http://php.net/pcre.pattern'>PCRE</ulink> ou un tableau
|
||||
d'expressions régulières.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>minValidRegex</term>
|
||||
<listitem>
|
||||
<simpara>Le nombre minimum d'expression régulière qui doivent être validées
|
||||
pour que le mot de passe soit considéré comme correct. Ce paramètre est
|
||||
optionnel, par défaut, toutes les expressions régulières doivent être
|
||||
validées.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect4>
|
|
@ -1,19 +0,0 @@
|
|||
<sect4 id="config-LSattribute-check-data-rangelength">
|
||||
<title>rangelength</title>
|
||||
<para>Cette règle vérifie que la valeur saisie est une chaine de caractères
|
||||
dont la longueur est comprise entre deux valeurs passées en paramètre.</para>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètre de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>limits</term>
|
||||
<listitem>
|
||||
<simpara>Tableau contenant deux valeurs, la première étant la limite inférieure
|
||||
ou égale et la seconde la limite supérieure ou égale.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect4>
|
|
@ -1,18 +0,0 @@
|
|||
<sect4 id="config-LSattribute-check-data-regex">
|
||||
<title>regex</title>
|
||||
<para>Cette règle vérifie que la valeur saisie respecte bien l'expression
|
||||
régulière passée en paramètre.</para>
|
||||
|
||||
<variablelist>
|
||||
<title>Paramètres de configuration</title>
|
||||
|
||||
<varlistentry>
|
||||
<term>regex</term>
|
||||
<listitem>
|
||||
<simpara>L'expression régulière devant être respectée. Cette expression régulière doit être au format <ulink url='http://php.net/pcre.pattern'>PCRE</ulink>.</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
|
||||
</sect4>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue