diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..b270e9a3 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,12 @@ +FROM python:3 +ENV PYTHONUNBUFFERED=1 +RUN apt-get update && apt-get install -y --no-install-recommends gettext-base libpq-dev +WORKDIR /code +COPY requirements.txt /code/ +COPY postgresql-requirements.txt /code/ +COPY dev-requirements.txt /code/ +RUN pip install -r requirements.txt +RUN pip install -r postgresql-requirements.txt +RUN pip install -r dev-requirements.txt +COPY . /code/ +CMD ./docker/docker-entrypoint.sh \ No newline at end of file diff --git a/dev-requirements.txt b/dev-requirements.txt index 0b6ba4aa..f3989da9 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -79,9 +79,6 @@ django-autocomplete-light==3.8.1 \ django-bootstrap3==14.2.0; python_version >= "3.6" and python_version < "4.0" \ --hash=sha256:1fc3db37f29bcd159c0b00e1f15fd2d6dedf7551ce8bcca09072e33663c110de \ --hash=sha256:c7e6912b5127bea913bc8504399613758760954140162e048184624765e61904 -django-ldapdb==1.5.1; python_version >= "3.6" \ - --hash=sha256:5ea333c3130abbb86f8629766370a7f490878706469fce4e5008e41fb566392a \ - --hash=sha256:2daee828a7eb1ce6ad0634ce5311339d77c08128829e575ff14d62a46771b86a django-macaddress==1.7.0 \ --hash=sha256:342aa3421ee19acc3661d1705dad2ae674eaa7d06a02799f7a5dc394d6233275 \ --hash=sha256:db8beedcbd708aba3a6c9e83de6527efa2f9cc7dbe698406cebdfdbaf98c896d @@ -179,12 +176,6 @@ markupsafe==1.1.1; python_version >= "3.5" and python_full_version < "3.0.0" or mypy-extensions==0.4.3; python_version >= "3.6" \ --hash=sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d \ --hash=sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8 -mysqlclient==2.0.3; python_version >= "3.5" \ - --hash=sha256:3381ca1a4f37ff1155fcfde20836b46416d66531add8843f6aa6d968982731c3 \ - --hash=sha256:0ac0dd759c4ca02c35a9fedc24bc982cf75171651e8187c2495ec957a87dfff7 \ - --hash=sha256:71c4b330cf2313bbda0307fc858cc9055e64493ba9bf28454d25cf8b3ee8d7f5 \ - --hash=sha256:fc575093cf81b6605bed84653e48b277318b880dc9becf42dd47fa11ffd3e2b6 \ - --hash=sha256:f6ebea7c008f155baeefe16c56cd3ee6239f7a5a9ae42396c2f1860f08a7c432 netaddr==0.8.0 \ --hash=sha256:9666d0232c32d2656e5e5f8d735f58fd6c7457ce52fc21c98d45f2af78f990ac \ --hash=sha256:d6cc57c7a07b1d9d2e917aa8b36ae8ce61c35ba3fcd1b83ca31c5a0ee2b5a243 @@ -227,50 +218,6 @@ pillow==8.1.0; python_version >= "3.6" \ --hash=sha256:81c3fa9a75d9f1afafdb916d5995633f319db09bd773cb56b8e39f1e98d90820 \ --hash=sha256:b6f00ad5ebe846cc91763b1d0c6d30a8042e02b2316e27b05de04fa6ec831ec5 \ --hash=sha256:887668e792b7edbfb1d3c9d8b5d8c859269a0f0eba4dda562adb95500f60dbba -psycopg2==2.8.6; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.4.0") \ - --hash=sha256:068115e13c70dc5982dfc00c5d70437fe37c014c808acce119b5448361c03725 \ - --hash=sha256:d160744652e81c80627a909a0e808f3c6653a40af435744de037e3172cf277f5 \ - --hash=sha256:b8cae8b2f022efa1f011cc753adb9cbadfa5a184431d09b273fb49b4167561ad \ - --hash=sha256:f22ea9b67aea4f4a1718300908a2fb62b3e4276cf00bd829a97ab5894af42ea3 \ - --hash=sha256:26e7fd115a6db75267b325de0fba089b911a4a12ebd3d0b5e7acb7028bc46821 \ - --hash=sha256:00195b5f6832dbf2876b8bf77f12bdce648224c89c880719c745b90515233301 \ - --hash=sha256:a49833abfdede8985ba3f3ec641f771cca215479f41523e99dace96d5b8cce2a \ - --hash=sha256:f974c96fca34ae9e4f49839ba6b78addf0346777b46c4da27a7bf54f48d3057d \ - --hash=sha256:6a3d9efb6f36f1fe6aa8dbb5af55e067db802502c55a9defa47c5a1dad41df84 \ - --hash=sha256:56fee7f818d032f802b8eed81ef0c1232b8b42390df189cab9cfa87573fe52c5 \ - --hash=sha256:ad2fe8a37be669082e61fb001c185ffb58867fdbb3e7a6b0b0d2ffe232353a3e \ - --hash=sha256:56007a226b8e95aa980ada7abdea6b40b75ce62a433bd27cec7a8178d57f4051 \ - --hash=sha256:2c93d4d16933fea5bbacbe1aaf8fa8c1348740b2e50b3735d1b0bf8154cbf0f3 \ - --hash=sha256:d5062ae50b222da28253059880a871dc87e099c25cb68acf613d9d227413d6f7 \ - --hash=sha256:fb23f6c71107c37fd667cb4ea363ddeb936b348bbd6449278eb92c189699f543 -pyasn1-modules==0.2.8; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" \ - --hash=sha256:905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e \ - --hash=sha256:0fe1b68d1e486a1ed5473f1302bd991c1611d319bba158e98b106ff86e1d7199 \ - --hash=sha256:fe0644d9ab041506b62782e92b06b8c68cca799e1a9636ec398675459e031405 \ - --hash=sha256:a99324196732f53093a84c4369c996713eb8c89d360a496b599fb1a9c47fc3eb \ - --hash=sha256:0845a5582f6a02bb3e1bde9ecfc4bfcae6ec3210dd270522fee602365430c3f8 \ - --hash=sha256:a50b808ffeb97cb3601dd25981f6b016cbb3d31fbf57a8b8a87428e6158d0c74 \ - --hash=sha256:f39edd8c4ecaa4556e989147ebf219227e2cd2e8a43c7e7fcb1f1c18c5fd6a3d \ - --hash=sha256:b80486a6c77252ea3a3e9b1e360bc9cf28eaac41263d173c032581ad2f20fe45 \ - --hash=sha256:65cebbaffc913f4fe9e4808735c95ea22d7a7775646ab690518c056784bc21b4 \ - --hash=sha256:15b7c67fabc7fc240d87fb9aabf999cf82311a6d6fb2c70d00d3d0604878c811 \ - --hash=sha256:426edb7a5e8879f1ec54a1864f16b882c2837bfd06eee62f2c982315ee2473ed \ - --hash=sha256:cbac4bc38d117f2a49aeedec4407d23e8866ea4ac27ff2cf7fb3e5b570df19e0 \ - --hash=sha256:c29a5e5cc7a3f05926aff34e097e84f8589cd790ce0ed41b67aed6857b26aafd -pyasn1==0.4.8; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" \ - --hash=sha256:fec3e9d8e36808a28efb59b489e4528c10ad0f480e57dcc32b4de5c9d8c9fdf3 \ - --hash=sha256:0458773cfe65b153891ac249bcf1b5f8f320b7c2ce462151f8fa74de8934becf \ - --hash=sha256:5c9414dcfede6e441f7e8f81b43b34e834731003427e5b09e4e00e3172a10f00 \ - --hash=sha256:6e7545f1a61025a4e58bb336952c5061697da694db1cae97b116e9c46abcf7c8 \ - --hash=sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d \ - --hash=sha256:78fa6da68ed2727915c4767bb386ab32cdba863caa7dbe473eaae45f9959da86 \ - --hash=sha256:08c3c53b75eaa48d71cf8c710312316392ed40899cb34710d092e96745a358b7 \ - --hash=sha256:03840c999ba71680a131cfaee6fab142e1ed9bbd9c693e285cc6aca0d555e576 \ - --hash=sha256:7ab8a544af125fb704feadb008c99a88805126fb525280b2270bb25cc1d78a12 \ - --hash=sha256:e89bf84b5437b532b0803ba5c9a5e054d21fec423a89952a74f87fa2c9b7bce2 \ - --hash=sha256:014c0e9976956a08139dc0712ae195324a75e142284d5f87f1a87ee1b068a359 \ - --hash=sha256:99fcc3c8d804d1bc6d9a099921e39d827026409a58f2a720dcdb89374ea0c776 \ - --hash=sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba pycrypto==2.6.1 \ --hash=sha256:f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c pygments==2.7.4; python_version >= "3.5" \ @@ -282,8 +229,6 @@ pyparsing==2.4.7; python_version >= "3.5" and python_full_version < "3.0.0" or p python-dateutil==2.8.1; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.3.0") \ --hash=sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c \ --hash=sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a -python-ldap==3.3.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" \ - --hash=sha256:4711cacf013e298754abd70058ccc995758177fb425f1c2d30e71adfc1d00aa5 pytz==2021.1; python_version >= "3.6" and python_version < "4.0" and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.5") \ --hash=sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798 \ --hash=sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da @@ -368,9 +313,9 @@ snowballstemmer==2.1.0; python_version >= "3.5" \ sphinx-rtd-theme==0.5.1 \ --hash=sha256:fa6bebd5ab9a73da8e102509a86f3fcc36dec04a0b52ea80e5a033b2aba00113 \ --hash=sha256:eda689eda0c7301a80cf122dad28b1861e5605cbf455558f3775e1e8200e83a5 -sphinx==3.4.3; python_version >= "3.5" \ - --hash=sha256:c314c857e7cd47c856d2c5adff514ac2e6495f8b8e0f886a8a37e9305dfea0d8 \ - --hash=sha256:41cad293f954f7d37f803d97eb184158cfd90f51195131e94875bc07cd08b93c +sphinx==3.5.0; python_version >= "3.5" \ + --hash=sha256:68da66ca3d6b35b22bea5c53d938d5f8988663dca042f0a46429a1eba1010051 \ + --hash=sha256:deb468efb3abaa70d790add4147d18782d86fdeacf648d6e8afb7a99807f1546 sphinxcontrib-applehelp==1.0.2; python_version >= "3.5" \ --hash=sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58 \ --hash=sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..f9ea6440 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,31 @@ +version: "3" + +volumes: + database_data: + driver: local + +services: + db: + image: postgres:latest + volumes: + - database_data:/var/lib/postgresql/data + environment: + - POSTGRES_DB=postgres + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=postgres + + re2o: + build: . + volumes: + - .:/code + ports: + - "8000:8000" + depends_on: + - db + environment: + - POSTGRES_DB=postgres + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=postgres + - SUPERUSER_LOGIN=admin + - SUPERUSER_PASS=admin + - SUPERUSER_EMAIL=admin@example.net \ No newline at end of file diff --git a/docker/docker-entrypoint.sh b/docker/docker-entrypoint.sh new file mode 100755 index 00000000..150950d0 --- /dev/null +++ b/docker/docker-entrypoint.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +set -euo pipefail + +cat docker/settings_local.template.py | envsubst > re2o/settings_local.py + +AUTOMIGRATE=${AUTOMIGRATE:-yes} + +if [ "$AUTOMIGRATE" != "skip" ]; then + python3 manage.py migrate --noinput +fi + +cat <= "3.6" and python_full_version < "3. importlib-resources==5.1.0; python_version >= "3.6" and python_version < "3.7" \ --hash=sha256:885b8eae589179f661c909d699a546cf10d83692553e34dca1bf5eb06f7f6217 \ --hash=sha256:bfdad047bce441405a49cf8eb48ddce5e56c696e185f59147a8b79e75e9e6380 -mysqlclient==2.0.3; python_version >= "3.5" \ - --hash=sha256:3381ca1a4f37ff1155fcfde20836b46416d66531add8843f6aa6d968982731c3 \ - --hash=sha256:0ac0dd759c4ca02c35a9fedc24bc982cf75171651e8187c2495ec957a87dfff7 \ - --hash=sha256:71c4b330cf2313bbda0307fc858cc9055e64493ba9bf28454d25cf8b3ee8d7f5 \ - --hash=sha256:fc575093cf81b6605bed84653e48b277318b880dc9becf42dd47fa11ffd3e2b6 \ - --hash=sha256:f6ebea7c008f155baeefe16c56cd3ee6239f7a5a9ae42396c2f1860f08a7c432 netaddr==0.8.0 \ --hash=sha256:9666d0232c32d2656e5e5f8d735f58fd6c7457ce52fc21c98d45f2af78f990ac \ --hash=sha256:d6cc57c7a07b1d9d2e917aa8b36ae8ce61c35ba3fcd1b83ca31c5a0ee2b5a243 @@ -74,22 +68,6 @@ pillow==8.1.0; python_version >= "3.6" \ --hash=sha256:81c3fa9a75d9f1afafdb916d5995633f319db09bd773cb56b8e39f1e98d90820 \ --hash=sha256:b6f00ad5ebe846cc91763b1d0c6d30a8042e02b2316e27b05de04fa6ec831ec5 \ --hash=sha256:887668e792b7edbfb1d3c9d8b5d8c859269a0f0eba4dda562adb95500f60dbba -psycopg2==2.8.6; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.4.0") \ - --hash=sha256:068115e13c70dc5982dfc00c5d70437fe37c014c808acce119b5448361c03725 \ - --hash=sha256:d160744652e81c80627a909a0e808f3c6653a40af435744de037e3172cf277f5 \ - --hash=sha256:b8cae8b2f022efa1f011cc753adb9cbadfa5a184431d09b273fb49b4167561ad \ - --hash=sha256:f22ea9b67aea4f4a1718300908a2fb62b3e4276cf00bd829a97ab5894af42ea3 \ - --hash=sha256:26e7fd115a6db75267b325de0fba089b911a4a12ebd3d0b5e7acb7028bc46821 \ - --hash=sha256:00195b5f6832dbf2876b8bf77f12bdce648224c89c880719c745b90515233301 \ - --hash=sha256:a49833abfdede8985ba3f3ec641f771cca215479f41523e99dace96d5b8cce2a \ - --hash=sha256:f974c96fca34ae9e4f49839ba6b78addf0346777b46c4da27a7bf54f48d3057d \ - --hash=sha256:6a3d9efb6f36f1fe6aa8dbb5af55e067db802502c55a9defa47c5a1dad41df84 \ - --hash=sha256:56fee7f818d032f802b8eed81ef0c1232b8b42390df189cab9cfa87573fe52c5 \ - --hash=sha256:ad2fe8a37be669082e61fb001c185ffb58867fdbb3e7a6b0b0d2ffe232353a3e \ - --hash=sha256:56007a226b8e95aa980ada7abdea6b40b75ce62a433bd27cec7a8178d57f4051 \ - --hash=sha256:2c93d4d16933fea5bbacbe1aaf8fa8c1348740b2e50b3735d1b0bf8154cbf0f3 \ - --hash=sha256:d5062ae50b222da28253059880a871dc87e099c25cb68acf613d9d227413d6f7 \ - --hash=sha256:fb23f6c71107c37fd667cb4ea363ddeb936b348bbd6449278eb92c189699f543 pyasn1-modules==0.2.8; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" \ --hash=sha256:905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e \ --hash=sha256:0fe1b68d1e486a1ed5473f1302bd991c1611d319bba158e98b106ff86e1d7199 \ diff --git a/ldap_sync/models.py b/ldap_sync/models.py index ac3e69a7..28192cba 100644 --- a/ldap_sync/models.py +++ b/ldap_sync/models.py @@ -135,7 +135,7 @@ def synchronise_user(sender, **kwargs): user_ldap.home_directory = user.home_directory user_ldap.mail = user.get_mail user_ldap.given_name = user.surname.lower() + "_" + user.name.lower()[:3] - user_ldap.gid = settings.LDAP["user_gid"] + user_ldap.gid = settings.DEFAULT_GID if "{SSHA}" in user.password or "{SMD5}" in user.password: # We remove the extra $ added at import from ldap user_ldap.user_password = user.password[:6] + user.password[7:] diff --git a/mysql-requirements.txt b/mysql-requirements.txt index ead30d77..11868b0c 100644 --- a/mysql-requirements.txt +++ b/mysql-requirements.txt @@ -3,9 +3,6 @@ django-autocomplete-light==3.8.1 \ django-bootstrap3==14.2.0; python_version >= "3.6" and python_version < "4.0" \ --hash=sha256:1fc3db37f29bcd159c0b00e1f15fd2d6dedf7551ce8bcca09072e33663c110de \ --hash=sha256:c7e6912b5127bea913bc8504399613758760954140162e048184624765e61904 -django-ldapdb==1.5.1; python_version >= "3.6" \ - --hash=sha256:5ea333c3130abbb86f8629766370a7f490878706469fce4e5008e41fb566392a \ - --hash=sha256:2daee828a7eb1ce6ad0634ce5311339d77c08128829e575ff14d62a46771b86a django-macaddress==1.7.0 \ --hash=sha256:342aa3421ee19acc3661d1705dad2ae674eaa7d06a02799f7a5dc394d6233275 \ --hash=sha256:db8beedcbd708aba3a6c9e83de6527efa2f9cc7dbe698406cebdfdbaf98c896d @@ -74,57 +71,11 @@ pillow==8.1.0; python_version >= "3.6" \ --hash=sha256:81c3fa9a75d9f1afafdb916d5995633f319db09bd773cb56b8e39f1e98d90820 \ --hash=sha256:b6f00ad5ebe846cc91763b1d0c6d30a8042e02b2316e27b05de04fa6ec831ec5 \ --hash=sha256:887668e792b7edbfb1d3c9d8b5d8c859269a0f0eba4dda562adb95500f60dbba -psycopg2==2.8.6; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.4.0") \ - --hash=sha256:068115e13c70dc5982dfc00c5d70437fe37c014c808acce119b5448361c03725 \ - --hash=sha256:d160744652e81c80627a909a0e808f3c6653a40af435744de037e3172cf277f5 \ - --hash=sha256:b8cae8b2f022efa1f011cc753adb9cbadfa5a184431d09b273fb49b4167561ad \ - --hash=sha256:f22ea9b67aea4f4a1718300908a2fb62b3e4276cf00bd829a97ab5894af42ea3 \ - --hash=sha256:26e7fd115a6db75267b325de0fba089b911a4a12ebd3d0b5e7acb7028bc46821 \ - --hash=sha256:00195b5f6832dbf2876b8bf77f12bdce648224c89c880719c745b90515233301 \ - --hash=sha256:a49833abfdede8985ba3f3ec641f771cca215479f41523e99dace96d5b8cce2a \ - --hash=sha256:f974c96fca34ae9e4f49839ba6b78addf0346777b46c4da27a7bf54f48d3057d \ - --hash=sha256:6a3d9efb6f36f1fe6aa8dbb5af55e067db802502c55a9defa47c5a1dad41df84 \ - --hash=sha256:56fee7f818d032f802b8eed81ef0c1232b8b42390df189cab9cfa87573fe52c5 \ - --hash=sha256:ad2fe8a37be669082e61fb001c185ffb58867fdbb3e7a6b0b0d2ffe232353a3e \ - --hash=sha256:56007a226b8e95aa980ada7abdea6b40b75ce62a433bd27cec7a8178d57f4051 \ - --hash=sha256:2c93d4d16933fea5bbacbe1aaf8fa8c1348740b2e50b3735d1b0bf8154cbf0f3 \ - --hash=sha256:d5062ae50b222da28253059880a871dc87e099c25cb68acf613d9d227413d6f7 \ - --hash=sha256:fb23f6c71107c37fd667cb4ea363ddeb936b348bbd6449278eb92c189699f543 -pyasn1-modules==0.2.8; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" \ - --hash=sha256:905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e \ - --hash=sha256:0fe1b68d1e486a1ed5473f1302bd991c1611d319bba158e98b106ff86e1d7199 \ - --hash=sha256:fe0644d9ab041506b62782e92b06b8c68cca799e1a9636ec398675459e031405 \ - --hash=sha256:a99324196732f53093a84c4369c996713eb8c89d360a496b599fb1a9c47fc3eb \ - --hash=sha256:0845a5582f6a02bb3e1bde9ecfc4bfcae6ec3210dd270522fee602365430c3f8 \ - --hash=sha256:a50b808ffeb97cb3601dd25981f6b016cbb3d31fbf57a8b8a87428e6158d0c74 \ - --hash=sha256:f39edd8c4ecaa4556e989147ebf219227e2cd2e8a43c7e7fcb1f1c18c5fd6a3d \ - --hash=sha256:b80486a6c77252ea3a3e9b1e360bc9cf28eaac41263d173c032581ad2f20fe45 \ - --hash=sha256:65cebbaffc913f4fe9e4808735c95ea22d7a7775646ab690518c056784bc21b4 \ - --hash=sha256:15b7c67fabc7fc240d87fb9aabf999cf82311a6d6fb2c70d00d3d0604878c811 \ - --hash=sha256:426edb7a5e8879f1ec54a1864f16b882c2837bfd06eee62f2c982315ee2473ed \ - --hash=sha256:cbac4bc38d117f2a49aeedec4407d23e8866ea4ac27ff2cf7fb3e5b570df19e0 \ - --hash=sha256:c29a5e5cc7a3f05926aff34e097e84f8589cd790ce0ed41b67aed6857b26aafd -pyasn1==0.4.8; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" \ - --hash=sha256:fec3e9d8e36808a28efb59b489e4528c10ad0f480e57dcc32b4de5c9d8c9fdf3 \ - --hash=sha256:0458773cfe65b153891ac249bcf1b5f8f320b7c2ce462151f8fa74de8934becf \ - --hash=sha256:5c9414dcfede6e441f7e8f81b43b34e834731003427e5b09e4e00e3172a10f00 \ - --hash=sha256:6e7545f1a61025a4e58bb336952c5061697da694db1cae97b116e9c46abcf7c8 \ - --hash=sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d \ - --hash=sha256:78fa6da68ed2727915c4767bb386ab32cdba863caa7dbe473eaae45f9959da86 \ - --hash=sha256:08c3c53b75eaa48d71cf8c710312316392ed40899cb34710d092e96745a358b7 \ - --hash=sha256:03840c999ba71680a131cfaee6fab142e1ed9bbd9c693e285cc6aca0d555e576 \ - --hash=sha256:7ab8a544af125fb704feadb008c99a88805126fb525280b2270bb25cc1d78a12 \ - --hash=sha256:e89bf84b5437b532b0803ba5c9a5e054d21fec423a89952a74f87fa2c9b7bce2 \ - --hash=sha256:014c0e9976956a08139dc0712ae195324a75e142284d5f87f1a87ee1b068a359 \ - --hash=sha256:99fcc3c8d804d1bc6d9a099921e39d827026409a58f2a720dcdb89374ea0c776 \ - --hash=sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba pycrypto==2.6.1 \ --hash=sha256:f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c python-dateutil==2.8.1; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.3.0") \ --hash=sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c \ --hash=sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a -python-ldap==3.3.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" \ - --hash=sha256:4711cacf013e298754abd70058ccc995758177fb425f1c2d30e71adfc1d00aa5 pytz==2021.1; python_version >= "3.6" and python_version < "4.0" \ --hash=sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798 \ --hash=sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da diff --git a/postgresql-requirements.txt b/postgresql-requirements.txt index ead30d77..5a149681 100644 --- a/postgresql-requirements.txt +++ b/postgresql-requirements.txt @@ -3,9 +3,6 @@ django-autocomplete-light==3.8.1 \ django-bootstrap3==14.2.0; python_version >= "3.6" and python_version < "4.0" \ --hash=sha256:1fc3db37f29bcd159c0b00e1f15fd2d6dedf7551ce8bcca09072e33663c110de \ --hash=sha256:c7e6912b5127bea913bc8504399613758760954140162e048184624765e61904 -django-ldapdb==1.5.1; python_version >= "3.6" \ - --hash=sha256:5ea333c3130abbb86f8629766370a7f490878706469fce4e5008e41fb566392a \ - --hash=sha256:2daee828a7eb1ce6ad0634ce5311339d77c08128829e575ff14d62a46771b86a django-macaddress==1.7.0 \ --hash=sha256:342aa3421ee19acc3661d1705dad2ae674eaa7d06a02799f7a5dc394d6233275 \ --hash=sha256:db8beedcbd708aba3a6c9e83de6527efa2f9cc7dbe698406cebdfdbaf98c896d @@ -32,12 +29,6 @@ importlib-metadata==1.7.0; python_version >= "3.6" and python_full_version < "3. importlib-resources==5.1.0; python_version >= "3.6" and python_version < "3.7" \ --hash=sha256:885b8eae589179f661c909d699a546cf10d83692553e34dca1bf5eb06f7f6217 \ --hash=sha256:bfdad047bce441405a49cf8eb48ddce5e56c696e185f59147a8b79e75e9e6380 -mysqlclient==2.0.3; python_version >= "3.5" \ - --hash=sha256:3381ca1a4f37ff1155fcfde20836b46416d66531add8843f6aa6d968982731c3 \ - --hash=sha256:0ac0dd759c4ca02c35a9fedc24bc982cf75171651e8187c2495ec957a87dfff7 \ - --hash=sha256:71c4b330cf2313bbda0307fc858cc9055e64493ba9bf28454d25cf8b3ee8d7f5 \ - --hash=sha256:fc575093cf81b6605bed84653e48b277318b880dc9becf42dd47fa11ffd3e2b6 \ - --hash=sha256:f6ebea7c008f155baeefe16c56cd3ee6239f7a5a9ae42396c2f1860f08a7c432 netaddr==0.8.0 \ --hash=sha256:9666d0232c32d2656e5e5f8d735f58fd6c7457ce52fc21c98d45f2af78f990ac \ --hash=sha256:d6cc57c7a07b1d9d2e917aa8b36ae8ce61c35ba3fcd1b83ca31c5a0ee2b5a243 @@ -90,41 +81,11 @@ psycopg2==2.8.6; (python_version >= "2.7" and python_full_version < "3.0.0") or --hash=sha256:2c93d4d16933fea5bbacbe1aaf8fa8c1348740b2e50b3735d1b0bf8154cbf0f3 \ --hash=sha256:d5062ae50b222da28253059880a871dc87e099c25cb68acf613d9d227413d6f7 \ --hash=sha256:fb23f6c71107c37fd667cb4ea363ddeb936b348bbd6449278eb92c189699f543 -pyasn1-modules==0.2.8; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" \ - --hash=sha256:905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e \ - --hash=sha256:0fe1b68d1e486a1ed5473f1302bd991c1611d319bba158e98b106ff86e1d7199 \ - --hash=sha256:fe0644d9ab041506b62782e92b06b8c68cca799e1a9636ec398675459e031405 \ - --hash=sha256:a99324196732f53093a84c4369c996713eb8c89d360a496b599fb1a9c47fc3eb \ - --hash=sha256:0845a5582f6a02bb3e1bde9ecfc4bfcae6ec3210dd270522fee602365430c3f8 \ - --hash=sha256:a50b808ffeb97cb3601dd25981f6b016cbb3d31fbf57a8b8a87428e6158d0c74 \ - --hash=sha256:f39edd8c4ecaa4556e989147ebf219227e2cd2e8a43c7e7fcb1f1c18c5fd6a3d \ - --hash=sha256:b80486a6c77252ea3a3e9b1e360bc9cf28eaac41263d173c032581ad2f20fe45 \ - --hash=sha256:65cebbaffc913f4fe9e4808735c95ea22d7a7775646ab690518c056784bc21b4 \ - --hash=sha256:15b7c67fabc7fc240d87fb9aabf999cf82311a6d6fb2c70d00d3d0604878c811 \ - --hash=sha256:426edb7a5e8879f1ec54a1864f16b882c2837bfd06eee62f2c982315ee2473ed \ - --hash=sha256:cbac4bc38d117f2a49aeedec4407d23e8866ea4ac27ff2cf7fb3e5b570df19e0 \ - --hash=sha256:c29a5e5cc7a3f05926aff34e097e84f8589cd790ce0ed41b67aed6857b26aafd -pyasn1==0.4.8; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" \ - --hash=sha256:fec3e9d8e36808a28efb59b489e4528c10ad0f480e57dcc32b4de5c9d8c9fdf3 \ - --hash=sha256:0458773cfe65b153891ac249bcf1b5f8f320b7c2ce462151f8fa74de8934becf \ - --hash=sha256:5c9414dcfede6e441f7e8f81b43b34e834731003427e5b09e4e00e3172a10f00 \ - --hash=sha256:6e7545f1a61025a4e58bb336952c5061697da694db1cae97b116e9c46abcf7c8 \ - --hash=sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d \ - --hash=sha256:78fa6da68ed2727915c4767bb386ab32cdba863caa7dbe473eaae45f9959da86 \ - --hash=sha256:08c3c53b75eaa48d71cf8c710312316392ed40899cb34710d092e96745a358b7 \ - --hash=sha256:03840c999ba71680a131cfaee6fab142e1ed9bbd9c693e285cc6aca0d555e576 \ - --hash=sha256:7ab8a544af125fb704feadb008c99a88805126fb525280b2270bb25cc1d78a12 \ - --hash=sha256:e89bf84b5437b532b0803ba5c9a5e054d21fec423a89952a74f87fa2c9b7bce2 \ - --hash=sha256:014c0e9976956a08139dc0712ae195324a75e142284d5f87f1a87ee1b068a359 \ - --hash=sha256:99fcc3c8d804d1bc6d9a099921e39d827026409a58f2a720dcdb89374ea0c776 \ - --hash=sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba pycrypto==2.6.1 \ --hash=sha256:f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c python-dateutil==2.8.1; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.3.0") \ --hash=sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c \ --hash=sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a -python-ldap==3.3.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" \ - --hash=sha256:4711cacf013e298754abd70058ccc995758177fb425f1c2d30e71adfc1d00aa5 pytz==2021.1; python_version >= "3.6" and python_version < "4.0" \ --hash=sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798 \ --hash=sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da diff --git a/re2o/settings.py b/re2o/settings.py index 0c30814a..c298b9f8 100644 --- a/re2o/settings.py +++ b/re2o/settings.py @@ -173,22 +173,28 @@ if "LOCAL_ROUTERS" in globals(): DATABASE_ROUTERS += LOCAL_ROUTERS # django-bootstrap3 config -BOOTSTRAP3 = { - "css_url": "/javascript/bootstrap/css/bootstrap.min.css", - "javascript_url": "/javascript/bootstrap/js/bootstrap.min.js", - "jquery_url": "/javascript/jquery/jquery.min.js", - "base_url": "/javascript/bootstrap/", - "include_jquery": True, -} -BOOTSTRAP_BASE_URL = "/javascript/bootstrap/" +if USE_CDN: + BOOTSTRAP3 = { + "include_jquery": True, + } +else: + BOOTSTRAP3 = { + "css_url": "/javascript/bootstrap/css/bootstrap.min.css", + "javascript_url": "/javascript/bootstrap/js/bootstrap.min.js", + "jquery_url": "/javascript/jquery/jquery.min.js", + "base_url": "/javascript/bootstrap/", + "include_jquery": True, + } + BOOTSTRAP_BASE_URL = "/javascript/bootstrap/" # Directories where collectstatic should look for static files # Use only absolute paths with '/' delimiters even on Windows -STATICFILES_DIRS = ( +RE2O_STATICFILES_DIRS = ( os.path.join(BASE_DIR, "static").replace("\\", "/"), - "/usr/share/fonts-font-awesome/", - "/usr/share/javascript/", ) + +STATICFILES_DIRS = RE2O_STATICFILES_DIRS + SYSTEM_STATICFILES_DIRS + # Directory where the static files served by the server are stored STATIC_ROOT = os.path.join(BASE_DIR, "static_files") # The URL to access the static files diff --git a/re2o/settings_default.py b/re2o/settings_default.py index 8f552c2b..00f64512 100644 --- a/re2o/settings_default.py +++ b/re2o/settings_default.py @@ -20,7 +20,7 @@ # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -"""re2o.settings_locale +"""re2o.settings_local The file with all the available options for a locale configuration of re2o """ @@ -54,6 +54,9 @@ UID_RANGES = {"users": [21001, 30000], "service-users": [20000, 21000]} # A range of GID to use. Used in linux environement GID_RANGES = {"posix": [501, 600]} +# Default gid +DEFAULT_GID = 500 + # If you want to add a database routers, please fill in above and add your databse. # Then, add a file "local_routers.py" in folder app re2o, and add your router path in # the LOCAL_ROUTERS var as "re2o.local_routers.DbRouter". You can also add extra routers. @@ -65,6 +68,12 @@ OPTIONNAL_APPS_RE2O = () # Some Django apps you want to add in you local project OPTIONNAL_APPS = OPTIONNAL_APPS_RE2O + () +# Add statiffiles dir that were installed using system packaging +SYSTEM_STATICFILES_DIRS = () + +# Wether to use CDN to retrieve bootstrap, font-aweseome and jquery files +USE_CDN = False + # Set auth password validator AUTH_PASSWORD_VALIDATORS = [ { diff --git a/re2o/settings_local.example.py b/re2o/settings_local.example.py index c1e315b8..a70663db 100644 --- a/re2o/settings_local.example.py +++ b/re2o/settings_local.example.py @@ -20,7 +20,7 @@ # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -"""re2o.settings_locale +"""re2o.settings_local The file with all the available options for a locale configuration of re2o """ @@ -103,6 +103,9 @@ UID_RANGES = {"users": [21001, 30000], "service-users": [20000, 21000]} # A range of GID to use. Used in linux environement GID_RANGES = {"posix": [501, 600]} +# Default gid +DEFAULT_GID = 500 + # If you want to add a database routers, please fill in above and add your databse. # Then, add a file "local_routers.py" in folder app re2o, and add your router path in # the LOCAL_ROUTERS var as "re2o.local_routers.DbRouter". You can also add extra routers. @@ -115,6 +118,15 @@ OPTIONNAL_APPS_RE2O = () # Some Django apps you want to add in you local project OPTIONNAL_APPS = OPTIONNAL_APPS_RE2O + () +# Add statiffiles dir that were installed using system packaging +# Example to reproduce re2o2.9 behavior +# SYSTEM_STATICFILES_DIRS = ("/usr/share/fonts-font-awesome/", "/usr/share/javascript/") +SYSTEM_STATICFILES_DIRS = () + +# Wether to use CDN to retrieve bootstrap, font-aweseome and jquery files +# Default to False +USE_CDN = False + # Set auth password validator AUTH_PASSWORD_VALIDATORS = [ { diff --git a/re2o/templatetags/fontawesome.py b/re2o/templatetags/fontawesome.py new file mode 100644 index 00000000..a68dd250 --- /dev/null +++ b/re2o/templatetags/fontawesome.py @@ -0,0 +1,20 @@ +""" +Templatetags for fontawesome +""" +from django import template +from django.conf import settings +from django.templatetags.static import static + +register = template.Library() + +@register.simple_tag +def font_awesome_url(): + """Return the font awesome url depending on the use of a CDN. + + Returns: + string: url of the font-awesome css file + """ + if settings.USE_CDN: + return "https://pro.fontawesome.com/releases/v5.10.0/css/all.css" + else: + return static("css/font-awesome.min.css") \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index ead30d77..5c8e4a5a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,9 +3,6 @@ django-autocomplete-light==3.8.1 \ django-bootstrap3==14.2.0; python_version >= "3.6" and python_version < "4.0" \ --hash=sha256:1fc3db37f29bcd159c0b00e1f15fd2d6dedf7551ce8bcca09072e33663c110de \ --hash=sha256:c7e6912b5127bea913bc8504399613758760954140162e048184624765e61904 -django-ldapdb==1.5.1; python_version >= "3.6" \ - --hash=sha256:5ea333c3130abbb86f8629766370a7f490878706469fce4e5008e41fb566392a \ - --hash=sha256:2daee828a7eb1ce6ad0634ce5311339d77c08128829e575ff14d62a46771b86a django-macaddress==1.7.0 \ --hash=sha256:342aa3421ee19acc3661d1705dad2ae674eaa7d06a02799f7a5dc394d6233275 \ --hash=sha256:db8beedcbd708aba3a6c9e83de6527efa2f9cc7dbe698406cebdfdbaf98c896d @@ -32,12 +29,6 @@ importlib-metadata==1.7.0; python_version >= "3.6" and python_full_version < "3. importlib-resources==5.1.0; python_version >= "3.6" and python_version < "3.7" \ --hash=sha256:885b8eae589179f661c909d699a546cf10d83692553e34dca1bf5eb06f7f6217 \ --hash=sha256:bfdad047bce441405a49cf8eb48ddce5e56c696e185f59147a8b79e75e9e6380 -mysqlclient==2.0.3; python_version >= "3.5" \ - --hash=sha256:3381ca1a4f37ff1155fcfde20836b46416d66531add8843f6aa6d968982731c3 \ - --hash=sha256:0ac0dd759c4ca02c35a9fedc24bc982cf75171651e8187c2495ec957a87dfff7 \ - --hash=sha256:71c4b330cf2313bbda0307fc858cc9055e64493ba9bf28454d25cf8b3ee8d7f5 \ - --hash=sha256:fc575093cf81b6605bed84653e48b277318b880dc9becf42dd47fa11ffd3e2b6 \ - --hash=sha256:f6ebea7c008f155baeefe16c56cd3ee6239f7a5a9ae42396c2f1860f08a7c432 netaddr==0.8.0 \ --hash=sha256:9666d0232c32d2656e5e5f8d735f58fd6c7457ce52fc21c98d45f2af78f990ac \ --hash=sha256:d6cc57c7a07b1d9d2e917aa8b36ae8ce61c35ba3fcd1b83ca31c5a0ee2b5a243 @@ -74,57 +65,11 @@ pillow==8.1.0; python_version >= "3.6" \ --hash=sha256:81c3fa9a75d9f1afafdb916d5995633f319db09bd773cb56b8e39f1e98d90820 \ --hash=sha256:b6f00ad5ebe846cc91763b1d0c6d30a8042e02b2316e27b05de04fa6ec831ec5 \ --hash=sha256:887668e792b7edbfb1d3c9d8b5d8c859269a0f0eba4dda562adb95500f60dbba -psycopg2==2.8.6; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.4.0") \ - --hash=sha256:068115e13c70dc5982dfc00c5d70437fe37c014c808acce119b5448361c03725 \ - --hash=sha256:d160744652e81c80627a909a0e808f3c6653a40af435744de037e3172cf277f5 \ - --hash=sha256:b8cae8b2f022efa1f011cc753adb9cbadfa5a184431d09b273fb49b4167561ad \ - --hash=sha256:f22ea9b67aea4f4a1718300908a2fb62b3e4276cf00bd829a97ab5894af42ea3 \ - --hash=sha256:26e7fd115a6db75267b325de0fba089b911a4a12ebd3d0b5e7acb7028bc46821 \ - --hash=sha256:00195b5f6832dbf2876b8bf77f12bdce648224c89c880719c745b90515233301 \ - --hash=sha256:a49833abfdede8985ba3f3ec641f771cca215479f41523e99dace96d5b8cce2a \ - --hash=sha256:f974c96fca34ae9e4f49839ba6b78addf0346777b46c4da27a7bf54f48d3057d \ - --hash=sha256:6a3d9efb6f36f1fe6aa8dbb5af55e067db802502c55a9defa47c5a1dad41df84 \ - --hash=sha256:56fee7f818d032f802b8eed81ef0c1232b8b42390df189cab9cfa87573fe52c5 \ - --hash=sha256:ad2fe8a37be669082e61fb001c185ffb58867fdbb3e7a6b0b0d2ffe232353a3e \ - --hash=sha256:56007a226b8e95aa980ada7abdea6b40b75ce62a433bd27cec7a8178d57f4051 \ - --hash=sha256:2c93d4d16933fea5bbacbe1aaf8fa8c1348740b2e50b3735d1b0bf8154cbf0f3 \ - --hash=sha256:d5062ae50b222da28253059880a871dc87e099c25cb68acf613d9d227413d6f7 \ - --hash=sha256:fb23f6c71107c37fd667cb4ea363ddeb936b348bbd6449278eb92c189699f543 -pyasn1-modules==0.2.8; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" \ - --hash=sha256:905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e \ - --hash=sha256:0fe1b68d1e486a1ed5473f1302bd991c1611d319bba158e98b106ff86e1d7199 \ - --hash=sha256:fe0644d9ab041506b62782e92b06b8c68cca799e1a9636ec398675459e031405 \ - --hash=sha256:a99324196732f53093a84c4369c996713eb8c89d360a496b599fb1a9c47fc3eb \ - --hash=sha256:0845a5582f6a02bb3e1bde9ecfc4bfcae6ec3210dd270522fee602365430c3f8 \ - --hash=sha256:a50b808ffeb97cb3601dd25981f6b016cbb3d31fbf57a8b8a87428e6158d0c74 \ - --hash=sha256:f39edd8c4ecaa4556e989147ebf219227e2cd2e8a43c7e7fcb1f1c18c5fd6a3d \ - --hash=sha256:b80486a6c77252ea3a3e9b1e360bc9cf28eaac41263d173c032581ad2f20fe45 \ - --hash=sha256:65cebbaffc913f4fe9e4808735c95ea22d7a7775646ab690518c056784bc21b4 \ - --hash=sha256:15b7c67fabc7fc240d87fb9aabf999cf82311a6d6fb2c70d00d3d0604878c811 \ - --hash=sha256:426edb7a5e8879f1ec54a1864f16b882c2837bfd06eee62f2c982315ee2473ed \ - --hash=sha256:cbac4bc38d117f2a49aeedec4407d23e8866ea4ac27ff2cf7fb3e5b570df19e0 \ - --hash=sha256:c29a5e5cc7a3f05926aff34e097e84f8589cd790ce0ed41b67aed6857b26aafd -pyasn1==0.4.8; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" \ - --hash=sha256:fec3e9d8e36808a28efb59b489e4528c10ad0f480e57dcc32b4de5c9d8c9fdf3 \ - --hash=sha256:0458773cfe65b153891ac249bcf1b5f8f320b7c2ce462151f8fa74de8934becf \ - --hash=sha256:5c9414dcfede6e441f7e8f81b43b34e834731003427e5b09e4e00e3172a10f00 \ - --hash=sha256:6e7545f1a61025a4e58bb336952c5061697da694db1cae97b116e9c46abcf7c8 \ - --hash=sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d \ - --hash=sha256:78fa6da68ed2727915c4767bb386ab32cdba863caa7dbe473eaae45f9959da86 \ - --hash=sha256:08c3c53b75eaa48d71cf8c710312316392ed40899cb34710d092e96745a358b7 \ - --hash=sha256:03840c999ba71680a131cfaee6fab142e1ed9bbd9c693e285cc6aca0d555e576 \ - --hash=sha256:7ab8a544af125fb704feadb008c99a88805126fb525280b2270bb25cc1d78a12 \ - --hash=sha256:e89bf84b5437b532b0803ba5c9a5e054d21fec423a89952a74f87fa2c9b7bce2 \ - --hash=sha256:014c0e9976956a08139dc0712ae195324a75e142284d5f87f1a87ee1b068a359 \ - --hash=sha256:99fcc3c8d804d1bc6d9a099921e39d827026409a58f2a720dcdb89374ea0c776 \ - --hash=sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba pycrypto==2.6.1 \ --hash=sha256:f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c python-dateutil==2.8.1; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.3.0") \ --hash=sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c \ --hash=sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a -python-ldap==3.3.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" \ - --hash=sha256:4711cacf013e298754abd70058ccc995758177fb425f1c2d30e71adfc1d00aa5 pytz==2021.1; python_version >= "3.6" and python_version < "4.0" \ --hash=sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798 \ --hash=sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da diff --git a/templates/base.html b/templates/base.html index 324891d0..bf23e66c 100644 --- a/templates/base.html +++ b/templates/base.html @@ -28,6 +28,7 @@ with this program; if not, write to the Free Software Foundation, Inc., {% load acl %} {% load self_adhesion %} {% load i18n %} +{% load fontawesome %} {% self_adhesion as var_sa %} @@ -46,13 +47,16 @@ with this program; if not, write to the Free Software Foundation, Inc., {# Preload JavaScript #} {% bootstrap_javascript %} - + {% block custom_js %}{% endblock %} {# Load CSS #} {% bootstrap_css %} - + + {# Load font-awesome #} + + {# load theme #} {% if request.user.is_authenticated %} diff --git a/test_utils/__init__.py b/test_utils/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/test_utils/ldap/schema/radius.schema b/test_utils/ldap/schema/radius.schema deleted file mode 100644 index cee7502a..00000000 --- a/test_utils/ldap/schema/radius.schema +++ /dev/null @@ -1,564 +0,0 @@ -# This is a LDAPv3 schema for RADIUS attributes. -# Tested on OpenLDAP 2.0.7 -# Posted by Javier Fernandez-Sanguino Pena -# LDAP v3 version by Jochen Friedrich -# Updates by Adrian Pavlykevych -############## - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.1 - NAME 'radiusArapFeatures' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.2 - NAME 'radiusArapSecurity' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.3 - NAME 'radiusArapZoneAccess' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.44 - NAME 'radiusAuthType' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.4 - NAME 'radiusCallbackId' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.5 - NAME 'radiusCallbackNumber' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.6 - NAME 'radiusCalledStationId' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.7 - NAME 'radiusCallingStationId' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.8 - NAME 'radiusClass' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.45 - NAME 'radiusClientIPAddress' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.9 - NAME 'radiusFilterId' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.10 - NAME 'radiusFramedAppleTalkLink' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.11 - NAME 'radiusFramedAppleTalkNetwork' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.12 - NAME 'radiusFramedAppleTalkZone' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.13 - NAME 'radiusFramedCompression' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.14 - NAME 'radiusFramedIPAddress' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.15 - NAME 'radiusFramedIPNetmask' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.16 - NAME 'radiusFramedIPXNetwork' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.17 - NAME 'radiusFramedMTU' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.18 - NAME 'radiusFramedProtocol' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.19 - NAME 'radiusFramedRoute' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.20 - NAME 'radiusFramedRouting' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.46 - NAME 'radiusGroupName' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.47 - NAME 'radiusHint' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.48 - NAME 'radiusHuntgroupName' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.21 - NAME 'radiusIdleTimeout' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.22 - NAME 'radiusLoginIPHost' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.23 - NAME 'radiusLoginLATGroup' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.24 - NAME 'radiusLoginLATNode' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.25 - NAME 'radiusLoginLATPort' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.26 - NAME 'radiusLoginLATService' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.27 - NAME 'radiusLoginService' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.28 - NAME 'radiusLoginTCPPort' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.29 - NAME 'radiusPasswordRetry' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.30 - NAME 'radiusPortLimit' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.49 - NAME 'radiusProfileDn' - DESC '' - EQUALITY distinguishedNameMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.31 - NAME 'radiusPrompt' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.50 - NAME 'radiusProxyToRealm' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.51 - NAME 'radiusReplicateToRealm' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.52 - NAME 'radiusRealm' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.32 - NAME 'radiusServiceType' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.33 - NAME 'radiusSessionTimeout' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.34 - NAME 'radiusTerminationAction' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.35 - NAME 'radiusTunnelAssignmentId' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.36 - NAME 'radiusTunnelMediumType' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.37 - NAME 'radiusTunnelPassword' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.38 - NAME 'radiusTunnelPreference' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.39 - NAME 'radiusTunnelPrivateGroupId' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.40 - NAME 'radiusTunnelServerEndpoint' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.41 - NAME 'radiusTunnelType' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.42 - NAME 'radiusVSA' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.43 - NAME 'radiusTunnelClientEndpoint' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - ) - - -#need to change asn1.id -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.53 - NAME 'radiusSimultaneousUse' - DESC '' - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.54 - NAME 'radiusLoginTime' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.55 - NAME 'radiusUserCategory' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.56 - NAME 'radiusStripUserName' - DESC '' - SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.57 - NAME 'dialupAccess' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.58 - NAME 'radiusExpiration' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - SINGLE-VALUE - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.59 - NAME 'radiusCheckItem' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - ) - -attributetype - ( 1.3.6.1.4.1.3317.4.3.1.60 - NAME 'radiusReplyItem' - DESC '' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 - ) - - -objectclass - ( 1.3.6.1.4.1.3317.4.3.2.1 - NAME 'radiusprofile' - SUP top AUXILIARY - DESC '' - MUST cn - MAY ( radiusArapFeatures $ radiusArapSecurity $ radiusArapZoneAccess $ - radiusAuthType $ radiusCallbackId $ radiusCallbackNumber $ - radiusCalledStationId $ radiusCallingStationId $ radiusClass $ - radiusClientIPAddress $ radiusFilterId $ radiusFramedAppleTalkLink $ - radiusFramedAppleTalkNetwork $ radiusFramedAppleTalkZone $ - radiusFramedCompression $ radiusFramedIPAddress $ - radiusFramedIPNetmask $ radiusFramedIPXNetwork $ - radiusFramedMTU $ radiusFramedProtocol $ - radiusCheckItem $ radiusReplyItem $ - radiusFramedRoute $ radiusFramedRouting $ radiusIdleTimeout $ - radiusGroupName $ radiusHint $ radiusHuntgroupName $ - radiusLoginIPHost $ radiusLoginLATGroup $ radiusLoginLATNode $ - radiusLoginLATPort $ radiusLoginLATService $ radiusLoginService $ - radiusLoginTCPPort $ radiusLoginTime $ radiusPasswordRetry $ - radiusPortLimit $ radiusPrompt $ radiusProxyToRealm $ - radiusRealm $ radiusReplicateToRealm $ radiusServiceType $ - radiusSessionTimeout $ radiusStripUserName $ - radiusTerminationAction $ radiusTunnelClientEndpoint $ radiusProfileDn $ - radiusSimultaneousUse $ radiusTunnelAssignmentId $ - radiusTunnelMediumType $ radiusTunnelPassword $ radiusTunnelPreference $ - radiusTunnelPrivateGroupId $ radiusTunnelServerEndpoint $ - radiusTunnelType $ radiusUserCategory $ radiusVSA $ - radiusExpiration $ dialupAccess ) - ) diff --git a/test_utils/ldap/schema/samba.schema b/test_utils/ldap/schema/samba.schema deleted file mode 100644 index 08173119..00000000 --- a/test_utils/ldap/schema/samba.schema +++ /dev/null @@ -1,644 +0,0 @@ -## -## schema file for OpenLDAP 2.x -## Schema for storing Samba user accounts and group maps in LDAP -## OIDs are owned by the Samba Team -## -## Prerequisite schemas - uid (cosine.schema) -## - displayName (inetorgperson.schema) -## - gidNumber (nis.schema) -## -## 1.3.6.1.4.1.7165.2.1.x - attributetypes -## 1.3.6.1.4.1.7165.2.2.x - objectclasses -## -## Printer support -## 1.3.6.1.4.1.7165.2.3.1.x - attributetypes -## 1.3.6.1.4.1.7165.2.3.2.x - objectclasses -## -## Samba4 -## 1.3.6.1.4.1.7165.4.1.x - attributetypes -## 1.3.6.1.4.1.7165.4.2.x - objectclasses -## 1.3.6.1.4.1.7165.4.3.x - LDB/LDAP Controls -## 1.3.6.1.4.1.7165.4.4.x - LDB/LDAP Extended Operations -## 1.3.6.1.4.1.7165.4.255.x - mapped OIDs due to conflicts between AD and standards-track -## -## External projects -## 1.3.6.1.4.1.7165.655.x -## 1.3.6.1.4.1.7165.655.1.x - GSS-NTLMSSP -## -## ----- READ THIS WHEN ADDING A NEW ATTRIBUTE OR OBJECT CLASS ------ -## -## Run the 'get_next_oid' bash script in this directory to find the -## next available OID for attribute type and object classes. -## -## $ ./get_next_oid -## attributetype ( 1.3.6.1.4.1.7165.2.1.XX NAME .... -## objectclass ( 1.3.6.1.4.1.7165.2.2.XX NAME .... -## -## Also ensure that new entries adhere to the declaration style -## used throughout this file -## -## ( 1.3.6.1.4.1.7165.2.XX.XX NAME .... -## ^ ^ ^ -## -## The spaces are required for the get_next_oid script (and for -## readability). -## -## ------------------------------------------------------------------ - -# objectIdentifier SambaRoot 1.3.6.1.4.1.7165 -# objectIdentifier Samba3 SambaRoot:2 -# objectIdentifier Samba3Attrib Samba3:1 -# objectIdentifier Samba3ObjectClass Samba3:2 -# objectIdentifier Samba4 SambaRoot:4 - -######################################################################## -## HISTORICAL ## -######################################################################## - -## -## Password hashes -## -#attributetype ( 1.3.6.1.4.1.7165.2.1.1 NAME 'lmPassword' -# DESC 'LanManager Passwd' -# EQUALITY caseIgnoreIA5Match -# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE ) - -#attributetype ( 1.3.6.1.4.1.7165.2.1.2 NAME 'ntPassword' -# DESC 'NT Passwd' -# EQUALITY caseIgnoreIA5Match -# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE ) - -## -## Account flags in string format ([UWDX ]) -## -#attributetype ( 1.3.6.1.4.1.7165.2.1.4 NAME 'acctFlags' -# DESC 'Account Flags' -# EQUALITY caseIgnoreIA5Match -# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{16} SINGLE-VALUE ) - -## -## Password timestamps & policies -## -#attributetype ( 1.3.6.1.4.1.7165.2.1.3 NAME 'pwdLastSet' -# DESC 'NT pwdLastSet' -# EQUALITY integerMatch -# SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -#attributetype ( 1.3.6.1.4.1.7165.2.1.5 NAME 'logonTime' -# DESC 'NT logonTime' -# EQUALITY integerMatch -# SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -#attributetype ( 1.3.6.1.4.1.7165.2.1.6 NAME 'logoffTime' -# DESC 'NT logoffTime' -# EQUALITY integerMatch -# SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -#attributetype ( 1.3.6.1.4.1.7165.2.1.7 NAME 'kickoffTime' -# DESC 'NT kickoffTime' -# EQUALITY integerMatch -# SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -#attributetype ( 1.3.6.1.4.1.7165.2.1.8 NAME 'pwdCanChange' -# DESC 'NT pwdCanChange' -# EQUALITY integerMatch -# SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -#attributetype ( 1.3.6.1.4.1.7165.2.1.9 NAME 'pwdMustChange' -# DESC 'NT pwdMustChange' -# EQUALITY integerMatch -# SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -## -## string settings -## -#attributetype ( 1.3.6.1.4.1.7165.2.1.10 NAME 'homeDrive' -# DESC 'NT homeDrive' -# EQUALITY caseIgnoreIA5Match -# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{4} SINGLE-VALUE ) - -#attributetype ( 1.3.6.1.4.1.7165.2.1.11 NAME 'scriptPath' -# DESC 'NT scriptPath' -# EQUALITY caseIgnoreIA5Match -# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{255} SINGLE-VALUE ) - -#attributetype ( 1.3.6.1.4.1.7165.2.1.12 NAME 'profilePath' -# DESC 'NT profilePath' -# EQUALITY caseIgnoreIA5Match -# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{255} SINGLE-VALUE ) - -#attributetype ( 1.3.6.1.4.1.7165.2.1.13 NAME 'userWorkstations' -# DESC 'userWorkstations' -# EQUALITY caseIgnoreIA5Match -# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{255} SINGLE-VALUE ) - -#attributetype ( 1.3.6.1.4.1.7165.2.1.17 NAME 'smbHome' -# DESC 'smbHome' -# EQUALITY caseIgnoreIA5Match -# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{128} ) - -#attributetype ( 1.3.6.1.4.1.7165.2.1.18 NAME 'domain' -# DESC 'Windows NT domain to which the user belongs' -# EQUALITY caseIgnoreIA5Match -# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{128} ) - -## -## user and group RID -## -#attributetype ( 1.3.6.1.4.1.7165.2.1.14 NAME 'rid' -# DESC 'NT rid' -# EQUALITY integerMatch -# SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -#attributetype ( 1.3.6.1.4.1.7165.2.1.15 NAME 'primaryGroupID' -# DESC 'NT Group RID' -# EQUALITY integerMatch -# SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -## -## The smbPasswordEntry objectclass has been depreciated in favor of the -## sambaAccount objectclass -## -#objectclass ( 1.3.6.1.4.1.7165.2.2.1 NAME 'smbPasswordEntry' SUP top AUXILIARY -# DESC 'Samba smbpasswd entry' -# MUST ( uid $ uidNumber ) -# MAY ( lmPassword $ ntPassword $ pwdLastSet $ acctFlags )) - -#objectclass ( 1.3.6.1.4.1.7165.2.2.2 NAME 'sambaAccount' SUP top STRUCTURAL -# DESC 'Samba Account' -# MUST ( uid $ rid ) -# MAY ( cn $ lmPassword $ ntPassword $ pwdLastSet $ logonTime $ -# logoffTime $ kickoffTime $ pwdCanChange $ pwdMustChange $ acctFlags $ -# displayName $ smbHome $ homeDrive $ scriptPath $ profilePath $ -# description $ userWorkstations $ primaryGroupID $ domain )) - -#objectclass ( 1.3.6.1.4.1.7165.2.2.3 NAME 'sambaAccount' SUP top AUXILIARY -# DESC 'Samba Auxiliary Account' -# MUST ( uid $ rid ) -# MAY ( cn $ lmPassword $ ntPassword $ pwdLastSet $ logonTime $ -# logoffTime $ kickoffTime $ pwdCanChange $ pwdMustChange $ acctFlags $ -# displayName $ smbHome $ homeDrive $ scriptPath $ profilePath $ -# description $ userWorkstations $ primaryGroupID $ domain )) - -######################################################################## -## END OF HISTORICAL ## -######################################################################## - -####################################################################### -## Attributes used by Samba 3.0 schema ## -####################################################################### - -## -## Password hashes -## -attributetype ( 1.3.6.1.4.1.7165.2.1.24 NAME 'sambaLMPassword' - DESC 'LanManager Password' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.25 NAME 'sambaNTPassword' - DESC 'MD4 hash of the unicode password' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE ) - -## -## Account flags in string format ([UWDX ]) -## -attributetype ( 1.3.6.1.4.1.7165.2.1.26 NAME 'sambaAcctFlags' - DESC 'Account Flags' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{16} SINGLE-VALUE ) - -## -## Password timestamps & policies -## -attributetype ( 1.3.6.1.4.1.7165.2.1.27 NAME 'sambaPwdLastSet' - DESC 'Timestamp of the last password update' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.28 NAME 'sambaPwdCanChange' - DESC 'Timestamp of when the user is allowed to update the password' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.29 NAME 'sambaPwdMustChange' - DESC 'Timestamp of when the password will expire' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.30 NAME 'sambaLogonTime' - DESC 'Timestamp of last logon' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.31 NAME 'sambaLogoffTime' - DESC 'Timestamp of last logoff' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.32 NAME 'sambaKickoffTime' - DESC 'Timestamp of when the user will be logged off automatically' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.48 NAME 'sambaBadPasswordCount' - DESC 'Bad password attempt count' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.49 NAME 'sambaBadPasswordTime' - DESC 'Time of the last bad password attempt' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.55 NAME 'sambaLogonHours' - DESC 'Logon Hours' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{42} SINGLE-VALUE ) - -## -## string settings -## -attributetype ( 1.3.6.1.4.1.7165.2.1.33 NAME 'sambaHomeDrive' - DESC 'Driver letter of home directory mapping' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{4} SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.34 NAME 'sambaLogonScript' - DESC 'Logon script path' - EQUALITY caseIgnoreMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.35 NAME 'sambaProfilePath' - DESC 'Roaming profile path' - EQUALITY caseIgnoreMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.36 NAME 'sambaUserWorkstations' - DESC 'List of user workstations the user is allowed to logon to' - EQUALITY caseIgnoreMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.37 NAME 'sambaHomePath' - DESC 'Home directory UNC path' - EQUALITY caseIgnoreMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.38 NAME 'sambaDomainName' - DESC 'Windows NT domain to which the user belongs' - EQUALITY caseIgnoreMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.47 NAME 'sambaMungedDial' - DESC 'Base64 encoded user parameter string' - EQUALITY caseExactMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1050} ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.54 NAME 'sambaPasswordHistory' - DESC 'Concatenated MD5 hashes of the salted NT passwords used on this account' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} ) - -## -## SID, of any type -## - -attributetype ( 1.3.6.1.4.1.7165.2.1.20 NAME 'sambaSID' - DESC 'Security ID' - EQUALITY caseIgnoreIA5Match - SUBSTR caseExactIA5SubstringsMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} SINGLE-VALUE ) - -## -## Primary group SID, compatible with ntSid -## - -attributetype ( 1.3.6.1.4.1.7165.2.1.23 NAME 'sambaPrimaryGroupSID' - DESC 'Primary Group Security ID' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.51 NAME 'sambaSIDList' - DESC 'Security ID List' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} ) - -## -## group mapping attributes -## -attributetype ( 1.3.6.1.4.1.7165.2.1.19 NAME 'sambaGroupType' - DESC 'NT Group Type' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -## -## Store info on the domain -## - -attributetype ( 1.3.6.1.4.1.7165.2.1.21 NAME 'sambaNextUserRid' - DESC 'Next NT rid to give our for users' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.22 NAME 'sambaNextGroupRid' - DESC 'Next NT rid to give out for groups' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.39 NAME 'sambaNextRid' - DESC 'Next NT rid to give out for anything' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.40 NAME 'sambaAlgorithmicRidBase' - DESC 'Base at which the samba RID generation algorithm should operate' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.41 NAME 'sambaShareName' - DESC 'Share Name' - EQUALITY caseIgnoreMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.42 NAME 'sambaOptionName' - DESC 'Option Name' - EQUALITY caseIgnoreMatch - SUBSTR caseIgnoreSubstringsMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.43 NAME 'sambaBoolOption' - DESC 'A boolean option' - EQUALITY booleanMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.44 NAME 'sambaIntegerOption' - DESC 'An integer option' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.45 NAME 'sambaStringOption' - DESC 'A string option' - EQUALITY caseExactIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.46 NAME 'sambaStringListOption' - DESC 'A string list option' - EQUALITY caseIgnoreMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) - - -##attributetype ( 1.3.6.1.4.1.7165.2.1.50 NAME 'sambaPrivName' -## SUP name ) - -##attributetype ( 1.3.6.1.4.1.7165.2.1.52 NAME 'sambaPrivilegeList' -## DESC 'Privileges List' -## EQUALITY caseIgnoreIA5Match -## SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.53 NAME 'sambaTrustFlags' - DESC 'Trust Password Flags' - EQUALITY caseIgnoreIA5Match - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) - -# "min password length" -attributetype ( 1.3.6.1.4.1.7165.2.1.58 NAME 'sambaMinPwdLength' - DESC 'Minimal password length (default: 5)' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -# "password history" -attributetype ( 1.3.6.1.4.1.7165.2.1.59 NAME 'sambaPwdHistoryLength' - DESC 'Length of Password History Entries (default: 0 => off)' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -# "user must logon to change password" -attributetype ( 1.3.6.1.4.1.7165.2.1.60 NAME 'sambaLogonToChgPwd' - DESC 'Force Users to logon for password change (default: 0 => off, 2 => on)' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -# "maximum password age" -attributetype ( 1.3.6.1.4.1.7165.2.1.61 NAME 'sambaMaxPwdAge' - DESC 'Maximum password age, in seconds (default: -1 => never expire passwords)' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -# "minimum password age" -attributetype ( 1.3.6.1.4.1.7165.2.1.62 NAME 'sambaMinPwdAge' - DESC 'Minimum password age, in seconds (default: 0 => allow immediate password change)' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -# "lockout duration" -attributetype ( 1.3.6.1.4.1.7165.2.1.63 NAME 'sambaLockoutDuration' - DESC 'Lockout duration in minutes (default: 30, -1 => forever)' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -# "reset count minutes" -attributetype ( 1.3.6.1.4.1.7165.2.1.64 NAME 'sambaLockoutObservationWindow' - DESC 'Reset time after lockout in minutes (default: 30)' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -# "bad lockout attempt" -attributetype ( 1.3.6.1.4.1.7165.2.1.65 NAME 'sambaLockoutThreshold' - DESC 'Lockout users after bad logon attempts (default: 0 => off)' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -# "disconnect time" -attributetype ( 1.3.6.1.4.1.7165.2.1.66 NAME 'sambaForceLogoff' - DESC 'Disconnect Users outside logon hours (default: -1 => off, 0 => on)' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -# "refuse machine password change" -attributetype ( 1.3.6.1.4.1.7165.2.1.67 NAME 'sambaRefuseMachinePwdChange' - DESC 'Allow Machine Password changes (default: 0 => off)' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -# -attributetype ( 1.3.6.1.4.1.7165.2.1.68 NAME 'sambaClearTextPassword' - DESC 'Clear text password (used for trusted domain passwords)' - EQUALITY octetStringMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 ) - -# -attributetype ( 1.3.6.1.4.1.7165.2.1.69 NAME 'sambaPreviousClearTextPassword' - DESC 'Previous clear text password (used for trusted domain passwords)' - EQUALITY octetStringMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.70 NAME 'sambaTrustType' - DESC 'Type of trust' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.71 NAME 'sambaTrustAttributes' - DESC 'Trust attributes for a trusted domain' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.72 NAME 'sambaTrustDirection' - DESC 'Direction of a trust' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.73 NAME 'sambaTrustPartner' - DESC 'Fully qualified name of the domain with which a trust exists' - EQUALITY caseIgnoreMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.74 NAME 'sambaFlatName' - DESC 'NetBIOS name of a domain' - EQUALITY caseIgnoreMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.75 NAME 'sambaTrustAuthOutgoing' - DESC 'Authentication information for the outgoing portion of a trust' - EQUALITY caseExactMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1050} ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.76 NAME 'sambaTrustAuthIncoming' - DESC 'Authentication information for the incoming portion of a trust' - EQUALITY caseExactMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1050} ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.77 NAME 'sambaSecurityIdentifier' - DESC 'SID of a trusted domain' - EQUALITY caseIgnoreIA5Match SUBSTR caseExactIA5SubstringsMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.78 NAME 'sambaTrustForestTrustInfo' - DESC 'Forest trust information for a trusted domain object' - EQUALITY caseExactMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1050} ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.79 NAME 'sambaTrustPosixOffset' - DESC 'POSIX offset of a trust' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -attributetype ( 1.3.6.1.4.1.7165.2.1.80 NAME 'sambaSupportedEncryptionTypes' - DESC 'Supported encryption types of a trust' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) - -####################################################################### -## objectClasses used by Samba 3.0 schema ## -####################################################################### - -## The X.500 data model (and therefore LDAPv3) says that each entry can -## only have one structural objectclass. OpenLDAP 2.0 does not enforce -## this currently but will in v2.1 - -## -## added new objectclass (and OID) for 3.0 to help us deal with backwards -## compatibility with 2.2 installations (e.g. ldapsam_compat) --jerry -## -objectclass ( 1.3.6.1.4.1.7165.2.2.6 NAME 'sambaSamAccount' SUP top AUXILIARY - DESC 'Samba 3.0 Auxilary SAM Account' - MUST ( uid $ sambaSID ) - MAY ( cn $ sambaLMPassword $ sambaNTPassword $ sambaPwdLastSet $ - sambaLogonTime $ sambaLogoffTime $ sambaKickoffTime $ - sambaPwdCanChange $ sambaPwdMustChange $ sambaAcctFlags $ - displayName $ sambaHomePath $ sambaHomeDrive $ sambaLogonScript $ - sambaProfilePath $ description $ sambaUserWorkstations $ - sambaPrimaryGroupSID $ sambaDomainName $ sambaMungedDial $ - sambaBadPasswordCount $ sambaBadPasswordTime $ - sambaPasswordHistory $ sambaLogonHours)) - -## -## Group mapping info -## -objectclass ( 1.3.6.1.4.1.7165.2.2.4 NAME 'sambaGroupMapping' SUP top AUXILIARY - DESC 'Samba Group Mapping' - MUST ( gidNumber $ sambaSID $ sambaGroupType ) - MAY ( displayName $ description $ sambaSIDList )) - -## -## Trust password for trust relationships (any kind) -## -objectclass ( 1.3.6.1.4.1.7165.2.2.14 NAME 'sambaTrustPassword' SUP top STRUCTURAL - DESC 'Samba Trust Password' - MUST ( sambaDomainName $ sambaNTPassword $ sambaTrustFlags ) - MAY ( sambaSID $ sambaPwdLastSet )) - -## -## Trust password for trusted domains -## (to be stored beneath the trusting sambaDomain object in the DIT) -## -objectclass ( 1.3.6.1.4.1.7165.2.2.15 NAME 'sambaTrustedDomainPassword' SUP top STRUCTURAL - DESC 'Samba Trusted Domain Password' - MUST ( sambaDomainName $ sambaSID $ - sambaClearTextPassword $ sambaPwdLastSet ) - MAY ( sambaPreviousClearTextPassword )) - -## -## Whole-of-domain info -## -objectclass ( 1.3.6.1.4.1.7165.2.2.5 NAME 'sambaDomain' SUP top STRUCTURAL - DESC 'Samba Domain Information' - MUST ( sambaDomainName $ - sambaSID ) - MAY ( sambaNextRid $ sambaNextGroupRid $ sambaNextUserRid $ - sambaAlgorithmicRidBase $ - sambaMinPwdLength $ sambaPwdHistoryLength $ sambaLogonToChgPwd $ - sambaMaxPwdAge $ sambaMinPwdAge $ - sambaLockoutDuration $ sambaLockoutObservationWindow $ sambaLockoutThreshold $ - sambaForceLogoff $ sambaRefuseMachinePwdChange )) - -## -## used for idmap_ldap module -## -objectclass ( 1.3.6.1.4.1.7165.2.2.7 NAME 'sambaUnixIdPool' SUP top AUXILIARY - DESC 'Pool for allocating UNIX uids/gids' - MUST ( uidNumber $ gidNumber ) ) - - -objectclass ( 1.3.6.1.4.1.7165.2.2.8 NAME 'sambaIdmapEntry' SUP top AUXILIARY - DESC 'Mapping from a SID to an ID' - MUST ( sambaSID ) - MAY ( uidNumber $ gidNumber ) ) - -objectclass ( 1.3.6.1.4.1.7165.2.2.9 NAME 'sambaSidEntry' SUP top STRUCTURAL - DESC 'Structural Class for a SID' - MUST ( sambaSID ) ) - -objectclass ( 1.3.6.1.4.1.7165.2.2.10 NAME 'sambaConfig' SUP top AUXILIARY - DESC 'Samba Configuration Section' - MAY ( description ) ) - -objectclass ( 1.3.6.1.4.1.7165.2.2.11 NAME 'sambaShare' SUP top STRUCTURAL - DESC 'Samba Share Section' - MUST ( sambaShareName ) - MAY ( description ) ) - -objectclass ( 1.3.6.1.4.1.7165.2.2.12 NAME 'sambaConfigOption' SUP top STRUCTURAL - DESC 'Samba Configuration Option' - MUST ( sambaOptionName ) - MAY ( sambaBoolOption $ sambaIntegerOption $ sambaStringOption $ - sambaStringListoption $ description ) ) - - -## retired during privilege rewrite -##objectclass ( 1.3.6.1.4.1.7165.2.2.13 NAME 'sambaPrivilege' SUP top AUXILIARY -## DESC 'Samba Privilege' -## MUST ( sambaSID ) -## MAY ( sambaPrivilegeList ) ) - -## -## used for IPA_ldapsam -## -objectclass ( 1.3.6.1.4.1.7165.2.2.16 NAME 'sambaTrustedDomain' SUP top STRUCTURAL - DESC 'Samba Trusted Domain Object' - MUST ( cn ) - MAY ( sambaTrustType $ sambaTrustAttributes $ sambaTrustDirection $ - sambaTrustPartner $ sambaFlatName $ sambaTrustAuthOutgoing $ - sambaTrustAuthIncoming $ sambaSecurityIdentifier $ - sambaTrustForestTrustInfo $ sambaTrustPosixOffset $ - sambaSupportedEncryptionTypes) ) diff --git a/test_utils/runner.py b/test_utils/runner.py deleted file mode 100644 index 219b6a2c..00000000 --- a/test_utils/runner.py +++ /dev/null @@ -1,223 +0,0 @@ -# Re2o est un logiciel d'administration développé initiallement au Rézo Metz. Il -# se veut agnostique au réseau considéré, de manière à être installable en -# quelques clics. -# -# Copyright © 2017 Gabriel Détraz -# Copyright © 2017 Lara Kermarec -# Copyright © 2017 Augustin Lemesle -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# 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; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -"""Defines the custom runners for Re2o. -""" - -import os.path - -import volatildap -from django.conf import settings -from django.test.runner import DiscoverRunner - -from users.models import (LdapServiceUser, LdapServiceUserGroup, LdapUser, - LdapUserGroup) - -# The path of this file -__here = os.path.dirname(os.path.realpath(__file__)) -# The absolute path where to find the schemas for the LDAP -schema_path = os.path.abspath(os.path.join(__here, "ldap", "schema")) -# The absolute path of the "radius.schema" file -radius_schema_path = os.path.join(schema_path, "radius.schema") -# The absolute path of the "samba.schema" file -samba_schema_path = os.path.join(schema_path, "samba.schema") - -# The suffix for the LDAP -suffix = "dc=example,dc=net" -# The admin CN of the LDAP -rootdn = "cn=admin," + suffix - -# Defines all ldap_entry mandatory for Re2o under a key-value list format -# that can be used directly by volatildap. For more on how to generate this -# data, see https://gitlab.federez.net/re2o/scripts/blob/master/print_ldap_entries.py -ldapentry_Utilisateurs = ( - "cn=Utilisateurs," + suffix, - { - "cn": ["Utilisateurs"], - "sambaSID": ["500"], - "uid": ["Users"], - "objectClass": ["posixGroup", "top", "sambaSamAccount", "radiusprofile"], - "gidNumber": ["500"], - }, -) -ldapentry_groups = ( - "ou=groups," + suffix, - { - "ou": ["groups"], - "objectClass": ["organizationalUnit"], - "description": ["Groupes d'utilisateurs"], - }, -) -ldapentry_services = ( - "ou=services,ou=groups," + suffix, - { - "ou": ["services"], - "objectClass": ["organizationalUnit"], - "description": ["Groupes de comptes techniques"], - }, -) -ldapentry_service_users = ( - "ou=service-users," + suffix, - { - "ou": ["service-users"], - "objectClass": ["organizationalUnit"], - "description": ["Utilisateurs techniques de l'annuaire"], - }, -) -ldapentry_freeradius = ( - "cn=freeradius,ou=service-users," + suffix, - { - "cn": ["freeradius"], - "objectClass": ["applicationProcess", "simpleSecurityObject"], - "userPassword": ["FILL_IT"], - }, -) -ldapentry_nssauth = ( - "cn=nssauth,ou=service-users," + suffix, - { - "cn": ["nssauth"], - "objectClass": ["applicationProcess", "simpleSecurityObject"], - "userPassword": ["FILL_IT"], - }, -) -ldapentry_auth = ( - "cn=auth,ou=services,ou=groups," + suffix, - { - "cn": ["auth"], - "objectClass": ["groupOfNames"], - "member": ["cn=nssauth,ou=service-users," + suffix], - }, -) -ldapentry_posix = ( - "ou=posix,ou=groups," + suffix, - { - "ou": ["posix"], - "objectClass": ["organizationalUnit"], - "description": ["Groupes de comptes POSIX"], - }, -) -ldapentry_wifi = ( - "cn=wifi,ou=service-users," + suffix, - { - "cn": ["wifi"], - "objectClass": ["applicationProcess", "simpleSecurityObject"], - "userPassword": ["FILL_IT"], - }, -) -ldapentry_usermgmt = ( - "cn=usermgmt,ou=services,ou=groups," + suffix, - { - "cn": ["usermgmt"], - "objectClass": ["groupOfNames"], - "member": ["cn=wifi,ou=service-users," + suffix], - }, -) -ldapentry_replica = ( - "cn=replica,ou=service-users," + suffix, - { - "cn": ["replica"], - "objectClass": ["applicationProcess", "simpleSecurityObject"], - "userPassword": ["FILL_IT"], - }, -) -ldapentry_readonly = ( - "cn=readonly,ou=services,ou=groups," + suffix, - { - "cn": ["readonly"], - "objectClass": ["groupOfNames"], - "member": [ - "cn=replica,ou=service-users," + suffix, - "cn=freeradius,ou=service-users," + suffix, - ], - }, -) -ldapbasic = dict( - [ - ldapentry_Utilisateurs, - ldapentry_groups, - ldapentry_services, - ldapentry_service_users, - ldapentry_freeradius, - ldapentry_nssauth, - ldapentry_auth, - ldapentry_posix, - ldapentry_wifi, - ldapentry_usermgmt, - ldapentry_replica, - ldapentry_readonly, - ] -) - - -class DiscoverLdapRunner(DiscoverRunner): - """Discovers all the tests in the project - - This is a simple subclass of the default test runner - `django.test.runner.DiscoverRunner` that creates a test LDAP - right after the test databases are setup and destroys it right - before the test databases are setup. - It also ensure re2o's settings are using this new LDAP. - """ - - # The `volatildap.LdapServer` instance initiated with the minimal - # structure required by Re2o - ldap_server = volatildap.LdapServer( - suffix=suffix, - rootdn=rootdn, - initial_data=ldapbasic, - schemas=[ - "core.schema", - "cosine.schema", - "inetorgperson.schema", - "nis.schema", - radius_schema_path, - samba_schema_path, - ], - ) - - def __init__(self, *args, **kwargs): - settings.DATABASES["ldap"]["USER"] = self.ldap_server.rootdn - settings.DATABASES["ldap"]["PASSWORD"] = self.ldap_server.rootpw - settings.DATABASES["ldap"]["NAME"] = self.ldap_server.uri - settings.LDAP["base_user_dn"] = ldapentry_Utilisateurs[0] - settings.LDAP["base_userservice_dn"] = ldapentry_service_users[0] - settings.LDAP["base_usergroup_dn"] = ldapentry_posix[0] - settings.LDAP["base_userservicegroup_dn"] = ldapentry_services[0] - settings.LDAP["user_gid"] = ldapentry_Utilisateurs[1].get("gidNumber", ["500"])[ - 0 - ] - LdapUser.base_dn = settings.LDAP["base_user_dn"] - LdapUserGroup.base_dn = settings.LDAP["base_usergroup_dn"] - LdapServiceUser.base_dn = settings.LDAP["base_userservice_dn"] - LdapServiceUserGroup.base_dn = settings.LDAP["base_userservicegroup_dn"] - super(DiscoverLdapRunner, self).__init__(*args, **kwargs) - - def setup_databases(self, *args, **kwargs): - ret = super(DiscoverLdapRunner, self).setup_databases(*args, **kwargs) - print("Creating test LDAP with volatildap...") - self.ldap_server.start() - return ret - - def teardown_databases(self, *args, **kwargs): - self.ldap_server.stop() - print("Destroying test LDAP...") - super(DiscoverLdapRunner, self).teardown_databases(*args, **kwargs) diff --git a/users/models.py b/users/models.py index ca8f3084..2861c655 100755 --- a/users/models.py +++ b/users/models.py @@ -78,7 +78,7 @@ from re2o.base import smtp_check from re2o.field_permissions import FieldPermissionModelMixin from re2o.mail_utils import send_mail from re2o.mixins import AclMixin, RevMixin -from re2o.settings import GID_RANGES, LDAP, UID_RANGES +from re2o.settings import GID_RANGES, DEFAULT_GID, UID_RANGES from users import signals # General utilities @@ -426,7 +426,7 @@ class User( Returns: gid (int): Default gid number """ - return int(LDAP["user_gid"]) + return DEFAULT_GID @cached_property def gid(self): @@ -439,7 +439,7 @@ class User( Returns: gid (int): Default gid number """ - return LDAP["user_gid"] + return DEFAULT_GID @cached_property def is_class_club(self):