Compare commits
7 Commits
14f895a964
...
3f2cd56884
Author | SHA1 | Date | |
---|---|---|---|
3f2cd56884 | |||
bfe71edc44 | |||
bd62897e80 | |||
e399b733e9 | |||
7e25000e68 | |||
41fb40983b | |||
37cf1292df |
@ -1,10 +1,19 @@
|
||||
.dockerignore
|
||||
.editorconfig
|
||||
.env.testing
|
||||
.idea
|
||||
.git*
|
||||
docker/
|
||||
.phpunit.result.cache
|
||||
.styleci.yml
|
||||
node_modules/
|
||||
storage/debugbar
|
||||
storage/framework/cache/data
|
||||
storage/framework/sessions
|
||||
storage/framework/views
|
||||
storage/logs
|
||||
package.json
|
||||
package-lock.json
|
||||
phpunit.xml
|
||||
vendor/
|
||||
webpack.mix.js
|
||||
yarn.lock
|
||||
|
144
.gitea/workflows/build_docker.yaml
Normal file
144
.gitea/workflows/build_docker.yaml
Normal file
@ -0,0 +1,144 @@
|
||||
name: Create Docker Image
|
||||
run-name: ${{ gitea.actor }} Building Docker Image 🐳
|
||||
on: [push]
|
||||
env:
|
||||
VERSION: latest
|
||||
DOCKER_HOST: tcp://127.0.0.1:2375
|
||||
|
||||
jobs:
|
||||
# test:
|
||||
# strategy:
|
||||
# matrix:
|
||||
# arch:
|
||||
# - x86_64
|
||||
# # arm64
|
||||
#
|
||||
# name: Test Application
|
||||
# runs-on: docker-${{ matrix.arch }}
|
||||
# container:
|
||||
# image: gitea.dege.au/docker/php:8.3-fpm-ldap-test
|
||||
#
|
||||
# steps:
|
||||
# - name: Environment Setup
|
||||
# run: |
|
||||
# # If we have a proxy use it
|
||||
# if [ -n "${HTTP_PROXY}" ]; then echo "HTTP PROXY [${HTTP_PROXY}]"; sed -i -e s'/https/http/' /etc/apk/repositories; fi
|
||||
# # Some pre-reqs
|
||||
# apk add git nodejs
|
||||
# ## Some debugging info
|
||||
# # env|sort
|
||||
#
|
||||
# - name: Code Checkout
|
||||
# uses: actions/checkout@v4
|
||||
#
|
||||
# - name: Run Tests
|
||||
# run: |
|
||||
# mv .env.testing .env
|
||||
# # Install Composer and project dependencies.
|
||||
# mkdir -p ${COMPOSER_HOME}
|
||||
# if [ -n "${{ secrets.COMPOSER_GITHUB_TOKEN }}" ]; then echo ${{ secrets.COMPOSER_GITHUB_TOKEN }} > ${COMPOSER_HOME}/auth.json; fi
|
||||
# composer install
|
||||
# # Generate an application key. Re-cache.
|
||||
# php artisan key:generate
|
||||
# php artisan migrate
|
||||
# php artisan db:seed
|
||||
# # run laravel tests
|
||||
# touch storage/app/test/*ZIP storage/app/test/file/*
|
||||
# XDEBUG_MODE=coverage php vendor/bin/phpunit --coverage-text --colors=never
|
||||
|
||||
build:
|
||||
strategy:
|
||||
matrix:
|
||||
arch:
|
||||
- x86_64
|
||||
- arm64
|
||||
# needs: [test]
|
||||
|
||||
name: Build Docker Image
|
||||
runs-on: docker-${{ matrix.arch }}
|
||||
container:
|
||||
image: docker:dind
|
||||
privileged: true
|
||||
env:
|
||||
ARCH: ${{ matrix.arch }}
|
||||
VERSIONARCH: ${{ env.VERSION }}-${{ env.ARCH }}
|
||||
|
||||
steps:
|
||||
- name: Environment Setup
|
||||
run: |
|
||||
# If we have a proxy use it
|
||||
if [ -n "${HTTP_PROXY}" ]; then echo "HTTP PROXY [${HTTP_PROXY}]"; sed -i -e s'/https/http/' /etc/apk/repositories; fi
|
||||
# Some pre-reqs
|
||||
apk add git curl nodejs
|
||||
# Start docker
|
||||
( dockerd --host=tcp://0.0.0.0:2375 --tls=false & ) && sleep 3
|
||||
## Some debugging info
|
||||
# docker info && docker version
|
||||
# env|sort
|
||||
|
||||
- name: Registry FQDN Setup
|
||||
id: registry
|
||||
run: |
|
||||
registry=${{ github.server_url }}
|
||||
echo "registry=${registry##http*://}" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Container Registry Login
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ${{ steps.registry.outputs.registry }}
|
||||
username: ${{ gitea.actor }}
|
||||
password: ${{ secrets.PKG_WRITE_TOKEN }}
|
||||
|
||||
- name: Code Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Record version and Delete Unnecessary files
|
||||
run: |
|
||||
echo ${GITHUB_SHA::8} > VERSION
|
||||
rm -rf .git* tests/ storage/app/test/
|
||||
|
||||
- name: Build and Push Docker Image
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
file: docker/Dockerfile
|
||||
push: true
|
||||
tags: "${{ steps.registry.outputs.registry }}/${{ env.GITHUB_REPOSITORY }}:${{ env.VERSIONARCH }}"
|
||||
|
||||
manifest:
|
||||
name: Final Docker Image Manifest
|
||||
runs-on: docker-x86_64
|
||||
container:
|
||||
image: docker:dind
|
||||
privileged: true
|
||||
needs: [build]
|
||||
|
||||
steps:
|
||||
- name: Environment Setup
|
||||
run: |
|
||||
# If we have a proxy use it
|
||||
if [ -n "${HTTP_PROXY}" ]; then echo "HTTP PROXY [${HTTP_PROXY}]"; sed -i -e s'/https/http/' /etc/apk/repositories; fi
|
||||
# Some pre-reqs
|
||||
apk add git curl nodejs
|
||||
# Start docker
|
||||
( dockerd --host=tcp://0.0.0.0:2375 --tls=false & ) && sleep 3
|
||||
|
||||
- name: Registry FQDN Setup
|
||||
id: registry
|
||||
run: |
|
||||
registry=${{ github.server_url }}
|
||||
echo "registry=${registry##http*://}" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Container Registry Login
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ${{ steps.registry.outputs.registry }}
|
||||
username: ${{ gitea.actor }}
|
||||
password: ${{ secrets.PKG_WRITE_TOKEN }}
|
||||
|
||||
- name: Build Docker Manifest
|
||||
run: |
|
||||
docker manifest create ${{ steps.registry.outputs.registry }}/${{ env.GITHUB_REPOSITORY }}:${{ env.VERSION }} \
|
||||
${{ steps.registry.outputs.registry }}/${{ env.GITHUB_REPOSITORY }}:${{ env.VERSION }}-x86_64
|
||||
# ${{ steps.registry.outputs.registry }}/${{ env.GITHUB_REPOSITORY }}:${{ env.VERSION }}-arm64
|
||||
docker manifest push --purge ${{ steps.registry.outputs.registry }}/${{ env.GITHUB_REPOSITORY }}:${{ env.VERSION }}
|
@ -1,20 +0,0 @@
|
||||
stages:
|
||||
- test
|
||||
- build
|
||||
|
||||
# This folder is cached between builds
|
||||
# http://docs.gitlab.com/ce/ci/yaml/README.html#cache
|
||||
cache:
|
||||
key: ${CI_COMMIT_REF_SLUG}
|
||||
paths:
|
||||
- public/css/app.css
|
||||
- public/js/app.js
|
||||
- public/js/manifest.js
|
||||
- public/js/vendor.js
|
||||
- public/*/vendor/
|
||||
- node_modules/
|
||||
- vendor/
|
||||
|
||||
include:
|
||||
- .gitlab-test.yml
|
||||
- .gitlab-docker-x86_64.yml
|
@ -1,27 +0,0 @@
|
||||
docker:
|
||||
variables:
|
||||
VERSION: latest
|
||||
DOCKER_HOST: tcp://docker:2375
|
||||
|
||||
stage: build
|
||||
|
||||
image: docker:latest
|
||||
services:
|
||||
- docker:dind
|
||||
|
||||
before_script:
|
||||
- docker info && docker version
|
||||
- echo "$CI_JOB_TOKEN" | docker login -u "$CI_REGISTRY_USER" "$CI_REGISTRY" --password-stdin
|
||||
- if [ -n "$GITHUB_TOKEN" ]; then cat $GITHUB_TOKEN |base64 -d > auth.json; fi
|
||||
|
||||
script:
|
||||
- if [ -f init ]; then chmod 500 init; fi
|
||||
- echo -n ${CI_COMMIT_SHORT_SHA} > VERSION
|
||||
- rm -rf node_modules database/seeds database/schema database/factories/*
|
||||
- docker build -f docker/Dockerfile -t ${CI_REGISTRY_IMAGE}:${VERSION} .
|
||||
- docker push ${CI_REGISTRY_IMAGE}:${VERSION}
|
||||
tags:
|
||||
- docker
|
||||
- x86_64
|
||||
only:
|
||||
- BRANCH-2.0
|
@ -1,51 +0,0 @@
|
||||
test:
|
||||
image: ${CI_REGISTRY}/leenooks/php:8.1-fpm-alpine-ldap-test
|
||||
|
||||
stage: test
|
||||
|
||||
# NOTE: This service is dependant on project file configuration, which is not there if the cache was deleted
|
||||
# resulting in the testing to fail on the first run.
|
||||
services:
|
||||
- name: osixia/openldap:latest
|
||||
alias: test_ldap
|
||||
command: ["--loglevel","debug"]
|
||||
|
||||
variables:
|
||||
LDAP_SEED_INTERNAL_LDIF_PATH: "${CI_PROJECT_DIR}/tests/server/openldap/data"
|
||||
LDAP_SEED_INTERNAL_SCHEMA_PATH: "${CI_PROJECT_DIR}/tests/server/openldap/schema"
|
||||
LDAP_BASE_DN: "dc=Test"
|
||||
LDAP_DOMAIN: "Test"
|
||||
LDAP_ADMIN_PASSWORD: test
|
||||
#CI_DEBUG_SERVICES: "true"
|
||||
|
||||
tags:
|
||||
- php
|
||||
only:
|
||||
- BRANCH-2.0
|
||||
|
||||
before_script:
|
||||
- mv .env.testing .env
|
||||
|
||||
# Install npm and dependancies
|
||||
- npm i
|
||||
- npm run prod
|
||||
|
||||
# Install Composer and project dependencies.
|
||||
- mkdir -p ${COMPOSER_HOME}
|
||||
- if [ -n "$GITHUB_TOKEN" ]; then cat $GITHUB_TOKEN |base64 -d > ${COMPOSER_HOME}/auth.json; fi
|
||||
- composer install
|
||||
|
||||
# Generate an application key. Re-cache.
|
||||
- php artisan key:generate
|
||||
|
||||
script:
|
||||
# Sleep if we need to, in case we want to jump in and see what is going on during the test
|
||||
- if [ -n "$DEBUG_PAUSE" ]; then echo "Pausing for $DEBUG_PAUSE seconds, so you can jump into the containers"; sleep $DEBUG_PAUSE; fi
|
||||
# run laravel tests
|
||||
- XDEBUG_MODE=coverage php vendor/bin/phpunit --coverage-text --colors=never
|
||||
|
||||
# run frontend tests
|
||||
# if you have any task for testing frontend
|
||||
# set it in your package.json script
|
||||
# comment this out if you don't have a frontend test
|
||||
# npm test
|
@ -72,7 +72,8 @@ final class AttributeType extends Base {
|
||||
* eg: ( 2.5.4.0 NAME 'objectClass' DESC 'RFC4512: object classes of the entity' EQUALITY objectIdentifierMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 )
|
||||
*/
|
||||
public function __construct(string $line) {
|
||||
Log::debug(sprintf('Parsing AttributeType [%s]',$line));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('Parsing AttributeType [%s]',$line));
|
||||
|
||||
parent::__construct($line);
|
||||
|
||||
@ -94,7 +95,7 @@ final class AttributeType extends Base {
|
||||
// @note Some schema's return a (' instead of a ( '
|
||||
if ($strings[$i+1] != '(' && ! preg_match('/^\(/',$strings[$i+1])) {
|
||||
do {
|
||||
$this->name .= (strlen($this->name) ? ' ' : '').$strings[++$i];
|
||||
$this->name .= ($this->name ? ' ' : '').$strings[++$i];
|
||||
|
||||
} while (! preg_match("/\'$/s",$strings[$i]));
|
||||
|
||||
@ -111,7 +112,7 @@ final class AttributeType extends Base {
|
||||
else
|
||||
$i++;
|
||||
|
||||
$this->name .= (strlen($this->name) ? ' ' : '').$strings[++$i];
|
||||
$this->name .= ($this->name ? ' ' : '').$strings[++$i];
|
||||
|
||||
} while (! preg_match("/\'$/s",$strings[$i]));
|
||||
|
||||
@ -125,55 +126,63 @@ final class AttributeType extends Base {
|
||||
|
||||
$this->name = preg_replace("/^\'(.*)\'$/",'$1',$this->name);
|
||||
|
||||
Log::debug(sprintf('- Case NAME returned (%s)',$this->name),['aliases'=>$this->aliases]);
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('- Case NAME returned (%s)',$this->name),['aliases'=>$this->aliases]);
|
||||
break;
|
||||
|
||||
case 'DESC':
|
||||
do {
|
||||
$this->description .= (strlen($this->description) ? ' ' : '').$strings[++$i];
|
||||
$this->description .= ($this->description ? ' ' : '').$strings[++$i];
|
||||
|
||||
} while (! preg_match("/\'$/s",$strings[$i]));
|
||||
|
||||
$this->description = preg_replace("/^\'(.*)\'$/",'$1',$this->description);
|
||||
|
||||
Log::debug(sprintf('- Case DESC returned (%s)',$this->description));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('- Case DESC returned (%s)',$this->description));
|
||||
break;
|
||||
|
||||
case 'OBSOLETE':
|
||||
$this->is_obsolete = TRUE;
|
||||
|
||||
Log::debug(sprintf('- Case OBSOLETE returned (%s)',$this->is_obsolete));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('- Case OBSOLETE returned (%s)',$this->is_obsolete));
|
||||
break;
|
||||
|
||||
case 'SUP':
|
||||
$i++;
|
||||
$this->sup_attribute = preg_replace("/^\'(.*)\'$/",'$1',$strings[$i]);
|
||||
|
||||
Log::debug(sprintf('- Case SUP returned (%s)',$this->sup_attribute));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('- Case SUP returned (%s)',$this->sup_attribute));
|
||||
break;
|
||||
|
||||
case 'EQUALITY':
|
||||
$this->equality = $strings[++$i];
|
||||
|
||||
Log::debug(sprintf('- Case EQUALITY returned (%s)',$this->equality));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('- Case EQUALITY returned (%s)',$this->equality));
|
||||
break;
|
||||
|
||||
case 'ORDERING':
|
||||
$this->ordering = $strings[++$i];
|
||||
|
||||
Log::debug(sprintf('- Case ORDERING returned (%s)',$this->ordering));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('- Case ORDERING returned (%s)',$this->ordering));
|
||||
break;
|
||||
|
||||
case 'SUBSTR':
|
||||
$this->sub_str_rule = $strings[++$i];
|
||||
|
||||
Log::debug(sprintf('- Case SUBSTR returned (%s)',$this->sub_str_rule));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('- Case SUBSTR returned (%s)',$this->sub_str_rule));
|
||||
break;
|
||||
|
||||
case 'SYNTAX':
|
||||
$this->syntax = $strings[++$i];
|
||||
$this->syntax_oid = preg_replace('/{\d+}$/','',$this->syntax);
|
||||
Log::debug(sprintf('/ Evaluating SYNTAX returned (%s) [%s]',$this->syntax,$this->syntax_oid));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('/ Evaluating SYNTAX returned (%s) [%s]',$this->syntax,$this->syntax_oid));
|
||||
|
||||
// Does this SYNTAX string specify a max length (ie, 1.2.3.4{16})
|
||||
$m = [];
|
||||
@ -190,36 +199,42 @@ final class AttributeType extends Base {
|
||||
$this->syntax = preg_replace("/^\'(.*)\'$/",'$1',$this->syntax);
|
||||
$this->syntax_oid = preg_replace("/^\'(.*)\'$/",'$1',$this->syntax_oid);
|
||||
|
||||
Log::debug(sprintf('- Case SYNTAX returned (%s) [%s] {%d}',$this->syntax,$this->syntax_oid,$this->max_length));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('- Case SYNTAX returned (%s) [%s] {%d}',$this->syntax,$this->syntax_oid,$this->max_length));
|
||||
break;
|
||||
|
||||
case 'SINGLE-VALUE':
|
||||
$this->is_single_value = TRUE;
|
||||
|
||||
Log::debug(sprintf('- Case SINGLE-VALUE returned (%s)',$this->is_single_value));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('- Case SINGLE-VALUE returned (%s)',$this->is_single_value));
|
||||
break;
|
||||
|
||||
case 'COLLECTIVE':
|
||||
$this->is_collective = TRUE;
|
||||
|
||||
Log::debug(sprintf('- Case COLLECTIVE returned (%s)',$this->is_collective));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('- Case COLLECTIVE returned (%s)',$this->is_collective));
|
||||
break;
|
||||
|
||||
case 'NO-USER-MODIFICATION':
|
||||
$this->is_no_user_modification = TRUE;
|
||||
|
||||
Log::debug(sprintf('- Case NO-USER-MODIFICATION returned (%s)',$this->is_no_user_modification));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('- Case NO-USER-MODIFICATION returned (%s)',$this->is_no_user_modification));
|
||||
break;
|
||||
|
||||
case 'USAGE':
|
||||
$this->usage = $strings[++$i];
|
||||
|
||||
Log::debug(sprintf('- Case USAGE returned (%s)',$this->usage));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('- Case USAGE returned (%s)',$this->usage));
|
||||
break;
|
||||
|
||||
// @note currently not captured
|
||||
case 'X-ORDERED':
|
||||
Log::error(sprintf('- Case X-ORDERED returned (%s)',$strings[++$i]));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::error(sprintf('- Case X-ORDERED returned (%s)',$strings[++$i]));
|
||||
break;
|
||||
|
||||
// @note currently not captured
|
||||
@ -227,17 +242,19 @@ final class AttributeType extends Base {
|
||||
$value = '';
|
||||
|
||||
do {
|
||||
$value .= (strlen($value) ? ' ' : '').$strings[++$i];
|
||||
$value .= ($value ? ' ' : '').$strings[++$i];
|
||||
|
||||
} while (! preg_match("/\'$/s",$strings[$i]));
|
||||
|
||||
Log::error(sprintf('- Case X-ORIGIN returned (%s)',$value));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::error(sprintf('- Case X-ORIGIN returned (%s)',$value));
|
||||
break;
|
||||
|
||||
default:
|
||||
if (preg_match('/[\d\.]+/i',$strings[$i]) && ($i === 1)) {
|
||||
$this->oid = $strings[$i];
|
||||
Log::debug(sprintf('- Case default returned (%s)',$this->oid));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('- Case default returned (%s)',$this->oid));
|
||||
|
||||
} elseif ($strings[$i])
|
||||
Log::alert(sprintf('! Case default discovered a value NOT parsed (%s)',$strings[$i]),['line'=>$line]);
|
||||
|
@ -11,17 +11,19 @@ use App\Exceptions\InvalidUsage;
|
||||
* All schema items have at least two things in common: An OID and a Description.
|
||||
*/
|
||||
abstract class Base {
|
||||
protected const DEBUG_VERBOSE = FALSE;
|
||||
|
||||
// Record the LDAP String
|
||||
private string $line;
|
||||
|
||||
// The schema item's name.
|
||||
protected ?string $name = NULL;
|
||||
protected string $name = '';
|
||||
|
||||
// The OID of this schema item.
|
||||
protected string $oid;
|
||||
|
||||
# The description of this schema item.
|
||||
protected ?string $description = NULL;
|
||||
protected string $description = '';
|
||||
|
||||
// Boolean value indicating whether this objectClass is obsolete
|
||||
private bool $is_obsolete = FALSE;
|
||||
|
@ -53,7 +53,8 @@ final class ObjectClass extends Base {
|
||||
{
|
||||
parent::__construct($line);
|
||||
|
||||
Log::debug(sprintf('Parsing ObjectClass [%s]',$line));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('Parsing ObjectClass [%s]',$line));
|
||||
|
||||
$strings = preg_split('/[\s,]+/',$line,-1,PREG_SPLIT_DELIM_CAPTURE);
|
||||
|
||||
@ -93,7 +94,8 @@ final class ObjectClass extends Base {
|
||||
|
||||
$this->name = preg_replace("/^\'(.*)\'$/",'$1',$this->name);
|
||||
|
||||
Log::debug(sprintf(sprintf('- Case NAME returned (%s)',$this->name)));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf(sprintf('- Case NAME returned (%s)',$this->name)));
|
||||
break;
|
||||
|
||||
case 'DESC':
|
||||
@ -104,13 +106,15 @@ final class ObjectClass extends Base {
|
||||
|
||||
$this->description = preg_replace("/^\'(.*)\'$/",'$1',$this->description);
|
||||
|
||||
Log::debug(sprintf('- Case DESC returned (%s)',$this->description));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('- Case DESC returned (%s)',$this->description));
|
||||
break;
|
||||
|
||||
case 'OBSOLETE':
|
||||
$this->is_obsolete = TRUE;
|
||||
|
||||
Log::debug(sprintf('- Case OBSOLETE returned (%s)',$this->is_obsolete));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('- Case OBSOLETE returned (%s)',$this->is_obsolete));
|
||||
break;
|
||||
|
||||
case 'SUP':
|
||||
@ -129,25 +133,29 @@ final class ObjectClass extends Base {
|
||||
} while (! preg_match('/\)+\)?/',$strings[$i+1]));
|
||||
}
|
||||
|
||||
Log::debug(sprintf('- Case SUP returned (%s)',$this->sup_classes->join(',')));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('- Case SUP returned (%s)',$this->sup_classes->join(',')));
|
||||
break;
|
||||
|
||||
case 'ABSTRACT':
|
||||
$this->type = self::OC_ABSTRACT;
|
||||
|
||||
Log::debug(sprintf('- Case ABSTRACT returned (%s)',$this->type));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('- Case ABSTRACT returned (%s)',$this->type));
|
||||
break;
|
||||
|
||||
case 'STRUCTURAL':
|
||||
$this->type = self::OC_STRUCTURAL;
|
||||
|
||||
Log::debug(sprintf('- Case STRUCTURAL returned (%s)',$this->type));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('- Case STRUCTURAL returned (%s)',$this->type));
|
||||
break;
|
||||
|
||||
case 'AUXILIARY':
|
||||
$this->type = self::OC_AUXILIARY;
|
||||
|
||||
Log::debug(sprintf('- Case AUXILIARY returned (%s)',$this->type));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('- Case AUXILIARY returned (%s)',$this->type));
|
||||
break;
|
||||
|
||||
case 'MUST':
|
||||
@ -155,7 +163,8 @@ final class ObjectClass extends Base {
|
||||
|
||||
$i = $this->parseList(++$i,$strings,$attrs);
|
||||
|
||||
Log::debug(sprintf('= parseList returned %d (%s)',$i,$attrs->join(',')));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('= parseList returned %d (%s)',$i,$attrs->join(',')));
|
||||
|
||||
foreach ($attrs as $string) {
|
||||
$attr = new ObjectClassAttribute($string,$this->name);
|
||||
@ -168,7 +177,8 @@ final class ObjectClass extends Base {
|
||||
$this->must_attrs->push($attr);
|
||||
}
|
||||
|
||||
Log::debug(sprintf('- Case MUST returned (%s) (%s)',$this->must_attrs->join(','),$this->may_force->join(',')));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('- Case MUST returned (%s) (%s)',$this->must_attrs->join(','),$this->may_force->join(',')));
|
||||
break;
|
||||
|
||||
case 'MAY':
|
||||
@ -176,20 +186,23 @@ final class ObjectClass extends Base {
|
||||
|
||||
$i = $this->parseList(++$i,$strings,$attrs);
|
||||
|
||||
Log::debug(sprintf('parseList returned %d (%s)',$i,$attrs->join(',')));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('parseList returned %d (%s)',$i,$attrs->join(',')));
|
||||
|
||||
foreach ($attrs as $string) {
|
||||
$attr = new ObjectClassAttribute($string,$this->name);
|
||||
$this->may_attrs->push($attr);
|
||||
}
|
||||
|
||||
Log::debug(sprintf('- Case MAY returned (%s)',$this->may_attrs->join(',')));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('- Case MAY returned (%s)',$this->may_attrs->join(',')));
|
||||
break;
|
||||
|
||||
default:
|
||||
if (preg_match('/[\d\.]+/i',$strings[$i]) && ($i === 1)) {
|
||||
$this->oid = $strings[$i];
|
||||
Log::debug(sprintf('- Case default returned (%s)',$this->oid));
|
||||
if (static::DEBUG_VERBOSE)
|
||||
Log::debug(sprintf('- Case default returned (%s)',$this->oid));
|
||||
|
||||
} elseif ($strings[$i])
|
||||
Log::alert(sprintf('! Case default discovered a value NOT parsed (%s)',$strings[$i]),['line'=>$line]);
|
||||
|
228
composer.lock
generated
228
composer.lock
generated
@ -274,16 +274,16 @@
|
||||
},
|
||||
{
|
||||
"name": "directorytree/ldaprecord",
|
||||
"version": "v3.3.0",
|
||||
"version": "v3.3.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/DirectoryTree/LdapRecord.git",
|
||||
"reference": "17540a7740964418c1eba251d31369a276a48a76"
|
||||
"reference": "da3d5dff87d476a7ea9dd72d6a8972cfa907204c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/DirectoryTree/LdapRecord/zipball/17540a7740964418c1eba251d31369a276a48a76",
|
||||
"reference": "17540a7740964418c1eba251d31369a276a48a76",
|
||||
"url": "https://api.github.com/repos/DirectoryTree/LdapRecord/zipball/da3d5dff87d476a7ea9dd72d6a8972cfa907204c",
|
||||
"reference": "da3d5dff87d476a7ea9dd72d6a8972cfa907204c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -346,7 +346,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2023-11-08T20:58:22+00:00"
|
||||
"time": "2024-01-09T12:49:35+00:00"
|
||||
},
|
||||
{
|
||||
"name": "directorytree/ldaprecord-laravel",
|
||||
@ -417,16 +417,16 @@
|
||||
},
|
||||
{
|
||||
"name": "doctrine/inflector",
|
||||
"version": "2.0.8",
|
||||
"version": "2.0.9",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/inflector.git",
|
||||
"reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff"
|
||||
"reference": "2930cd5ef353871c821d5c43ed030d39ac8cfe65"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/inflector/zipball/f9301a5b2fb1216b2b08f02ba04dc45423db6bff",
|
||||
"reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff",
|
||||
"url": "https://api.github.com/repos/doctrine/inflector/zipball/2930cd5ef353871c821d5c43ed030d39ac8cfe65",
|
||||
"reference": "2930cd5ef353871c821d5c43ed030d39ac8cfe65",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -488,7 +488,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/inflector/issues",
|
||||
"source": "https://github.com/doctrine/inflector/tree/2.0.8"
|
||||
"source": "https://github.com/doctrine/inflector/tree/2.0.9"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -504,7 +504,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-06-16T13:40:37+00:00"
|
||||
"time": "2024-01-15T18:05:13+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/lexer",
|
||||
@ -1320,16 +1320,16 @@
|
||||
},
|
||||
{
|
||||
"name": "laravel/framework",
|
||||
"version": "v10.39.0",
|
||||
"version": "v10.41.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/framework.git",
|
||||
"reference": "114926b07bfb5fbf2545c03aa2ce5c8c37be650c"
|
||||
"reference": "da31969bd35e6ee0bbcd9e876f88952dc754b012"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/114926b07bfb5fbf2545c03aa2ce5c8c37be650c",
|
||||
"reference": "114926b07bfb5fbf2545c03aa2ce5c8c37be650c",
|
||||
"url": "https://api.github.com/repos/laravel/framework/zipball/da31969bd35e6ee0bbcd9e876f88952dc754b012",
|
||||
"reference": "da31969bd35e6ee0bbcd9e876f88952dc754b012",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -1521,20 +1521,20 @@
|
||||
"issues": "https://github.com/laravel/framework/issues",
|
||||
"source": "https://github.com/laravel/framework"
|
||||
},
|
||||
"time": "2023-12-27T14:26:28+00:00"
|
||||
"time": "2024-01-16T15:23:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/passport",
|
||||
"version": "v11.10.0",
|
||||
"version": "v11.10.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/passport.git",
|
||||
"reference": "966bc8e477d08c86a11dc4c5a86f85fa0abdb89b"
|
||||
"reference": "e1a651481cabff0ba174aaefbdc04a59e6a096ec"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/passport/zipball/966bc8e477d08c86a11dc4c5a86f85fa0abdb89b",
|
||||
"reference": "966bc8e477d08c86a11dc4c5a86f85fa0abdb89b",
|
||||
"url": "https://api.github.com/repos/laravel/passport/zipball/e1a651481cabff0ba174aaefbdc04a59e6a096ec",
|
||||
"reference": "e1a651481cabff0ba174aaefbdc04a59e6a096ec",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -1599,20 +1599,20 @@
|
||||
"issues": "https://github.com/laravel/passport/issues",
|
||||
"source": "https://github.com/laravel/passport"
|
||||
},
|
||||
"time": "2023-11-02T17:16:12+00:00"
|
||||
"time": "2024-01-10T14:44:24+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/prompts",
|
||||
"version": "v0.1.14",
|
||||
"version": "v0.1.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/prompts.git",
|
||||
"reference": "2219fa9c4b944add1e825c3bdb8ecae8bc503bc6"
|
||||
"reference": "d814a27514d99b03c85aa42b22cfd946568636c1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/prompts/zipball/2219fa9c4b944add1e825c3bdb8ecae8bc503bc6",
|
||||
"reference": "2219fa9c4b944add1e825c3bdb8ecae8bc503bc6",
|
||||
"url": "https://api.github.com/repos/laravel/prompts/zipball/d814a27514d99b03c85aa42b22cfd946568636c1",
|
||||
"reference": "d814a27514d99b03c85aa42b22cfd946568636c1",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -1654,9 +1654,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/laravel/prompts/issues",
|
||||
"source": "https://github.com/laravel/prompts/tree/v0.1.14"
|
||||
"source": "https://github.com/laravel/prompts/tree/v0.1.15"
|
||||
},
|
||||
"time": "2023-12-27T04:18:09+00:00"
|
||||
"time": "2023-12-29T22:37:42+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/serializable-closure",
|
||||
@ -1720,28 +1720,28 @@
|
||||
},
|
||||
{
|
||||
"name": "laravel/ui",
|
||||
"version": "v4.3.0",
|
||||
"version": "v4.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/ui.git",
|
||||
"reference": "d166e09cdcb2e23836f694774cba77a32edb6007"
|
||||
"reference": "7335d7049b2cde345c029e9d2de839b80af62bc0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/ui/zipball/d166e09cdcb2e23836f694774cba77a32edb6007",
|
||||
"reference": "d166e09cdcb2e23836f694774cba77a32edb6007",
|
||||
"url": "https://api.github.com/repos/laravel/ui/zipball/7335d7049b2cde345c029e9d2de839b80af62bc0",
|
||||
"reference": "7335d7049b2cde345c029e9d2de839b80af62bc0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"illuminate/console": "^9.21|^10.0",
|
||||
"illuminate/filesystem": "^9.21|^10.0",
|
||||
"illuminate/support": "^9.21|^10.0",
|
||||
"illuminate/validation": "^9.21|^10.0",
|
||||
"illuminate/console": "^9.21|^10.0|^11.0",
|
||||
"illuminate/filesystem": "^9.21|^10.0|^11.0",
|
||||
"illuminate/support": "^9.21|^10.0|^11.0",
|
||||
"illuminate/validation": "^9.21|^10.0|^11.0",
|
||||
"php": "^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"orchestra/testbench": "^7.0|^8.0",
|
||||
"phpunit/phpunit": "^9.3"
|
||||
"orchestra/testbench": "^7.0|^8.0|^9.0",
|
||||
"phpunit/phpunit": "^9.3|^10.4"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@ -1776,40 +1776,40 @@
|
||||
"ui"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/laravel/ui/tree/v4.3.0"
|
||||
"source": "https://github.com/laravel/ui/tree/v4.4.0"
|
||||
},
|
||||
"time": "2023-12-19T14:46:09+00:00"
|
||||
"time": "2024-01-12T15:56:45+00:00"
|
||||
},
|
||||
{
|
||||
"name": "lcobucci/clock",
|
||||
"version": "3.0.0",
|
||||
"version": "3.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/lcobucci/clock.git",
|
||||
"reference": "039ef98c6b57b101d10bd11d8fdfda12cbd996dc"
|
||||
"reference": "6f28b826ea01306b07980cb8320ab30b966cd715"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/lcobucci/clock/zipball/039ef98c6b57b101d10bd11d8fdfda12cbd996dc",
|
||||
"reference": "039ef98c6b57b101d10bd11d8fdfda12cbd996dc",
|
||||
"url": "https://api.github.com/repos/lcobucci/clock/zipball/6f28b826ea01306b07980cb8320ab30b966cd715",
|
||||
"reference": "6f28b826ea01306b07980cb8320ab30b966cd715",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "~8.1.0 || ~8.2.0",
|
||||
"php": "~8.2.0 || ~8.3.0",
|
||||
"psr/clock": "^1.0"
|
||||
},
|
||||
"provide": {
|
||||
"psr/clock-implementation": "1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"infection/infection": "^0.26",
|
||||
"lcobucci/coding-standard": "^9.0",
|
||||
"phpstan/extension-installer": "^1.2",
|
||||
"phpstan/phpstan": "^1.9.4",
|
||||
"phpstan/phpstan-deprecation-rules": "^1.1.1",
|
||||
"phpstan/phpstan-phpunit": "^1.3.2",
|
||||
"phpstan/phpstan-strict-rules": "^1.4.4",
|
||||
"phpunit/phpunit": "^9.5.27"
|
||||
"infection/infection": "^0.27",
|
||||
"lcobucci/coding-standard": "^11.0.0",
|
||||
"phpstan/extension-installer": "^1.3.1",
|
||||
"phpstan/phpstan": "^1.10.25",
|
||||
"phpstan/phpstan-deprecation-rules": "^1.1.3",
|
||||
"phpstan/phpstan-phpunit": "^1.3.13",
|
||||
"phpstan/phpstan-strict-rules": "^1.5.1",
|
||||
"phpunit/phpunit": "^10.2.3"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@ -1830,7 +1830,7 @@
|
||||
"description": "Yet another clock abstraction",
|
||||
"support": {
|
||||
"issues": "https://github.com/lcobucci/clock/issues",
|
||||
"source": "https://github.com/lcobucci/clock/tree/3.0.0"
|
||||
"source": "https://github.com/lcobucci/clock/tree/3.2.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -1842,7 +1842,7 @@
|
||||
"type": "patreon"
|
||||
}
|
||||
],
|
||||
"time": "2022-12-19T15:00:24+00:00"
|
||||
"time": "2023-11-17T17:00:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "lcobucci/jwt",
|
||||
@ -2913,31 +2913,31 @@
|
||||
},
|
||||
{
|
||||
"name": "nette/schema",
|
||||
"version": "v1.2.5",
|
||||
"version": "v1.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nette/schema.git",
|
||||
"reference": "0462f0166e823aad657c9224d0f849ecac1ba10a"
|
||||
"reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nette/schema/zipball/0462f0166e823aad657c9224d0f849ecac1ba10a",
|
||||
"reference": "0462f0166e823aad657c9224d0f849ecac1ba10a",
|
||||
"url": "https://api.github.com/repos/nette/schema/zipball/a6d3a6d1f545f01ef38e60f375d1cf1f4de98188",
|
||||
"reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"nette/utils": "^2.5.7 || ^3.1.5 || ^4.0",
|
||||
"php": "7.1 - 8.3"
|
||||
"nette/utils": "^4.0",
|
||||
"php": "8.1 - 8.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"nette/tester": "^2.3 || ^2.4",
|
||||
"nette/tester": "^2.4",
|
||||
"phpstan/phpstan-nette": "^1.0",
|
||||
"tracy/tracy": "^2.7"
|
||||
"tracy/tracy": "^2.8"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.2-dev"
|
||||
"dev-master": "1.3-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@ -2969,22 +2969,22 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/nette/schema/issues",
|
||||
"source": "https://github.com/nette/schema/tree/v1.2.5"
|
||||
"source": "https://github.com/nette/schema/tree/v1.3.0"
|
||||
},
|
||||
"time": "2023-10-05T20:37:59+00:00"
|
||||
"time": "2023-12-11T11:54:22+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nette/utils",
|
||||
"version": "v4.0.3",
|
||||
"version": "v4.0.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nette/utils.git",
|
||||
"reference": "a9d127dd6a203ce6d255b2e2db49759f7506e015"
|
||||
"reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nette/utils/zipball/a9d127dd6a203ce6d255b2e2db49759f7506e015",
|
||||
"reference": "a9d127dd6a203ce6d255b2e2db49759f7506e015",
|
||||
"url": "https://api.github.com/repos/nette/utils/zipball/d3ad0aa3b9f934602cb3e3902ebccf10be34d218",
|
||||
"reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -3055,9 +3055,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/nette/utils/issues",
|
||||
"source": "https://github.com/nette/utils/tree/v4.0.3"
|
||||
"source": "https://github.com/nette/utils/tree/v4.0.4"
|
||||
},
|
||||
"time": "2023-10-29T21:02:13+00:00"
|
||||
"time": "2024-01-17T16:50:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nunomaduro/termwind",
|
||||
@ -4258,20 +4258,20 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/css-selector",
|
||||
"version": "v6.4.0",
|
||||
"version": "v7.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/css-selector.git",
|
||||
"reference": "d036c6c0d0b09e24a14a35f8292146a658f986e4"
|
||||
"reference": "bb51d46e53ef8d50d523f0c5faedba056a27943e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/css-selector/zipball/d036c6c0d0b09e24a14a35f8292146a658f986e4",
|
||||
"reference": "d036c6c0d0b09e24a14a35f8292146a658f986e4",
|
||||
"url": "https://api.github.com/repos/symfony/css-selector/zipball/bb51d46e53ef8d50d523f0c5faedba056a27943e",
|
||||
"reference": "bb51d46e53ef8d50d523f0c5faedba056a27943e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.1"
|
||||
"php": ">=8.2"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@ -4303,7 +4303,7 @@
|
||||
"description": "Converts CSS selectors to XPath expressions",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/css-selector/tree/v6.4.0"
|
||||
"source": "https://github.com/symfony/css-selector/tree/v7.0.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -4319,7 +4319,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-10-31T08:40:20+00:00"
|
||||
"time": "2023-10-31T17:59:56+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/deprecation-contracts",
|
||||
@ -4465,24 +4465,24 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher",
|
||||
"version": "v6.4.2",
|
||||
"version": "v7.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/event-dispatcher.git",
|
||||
"reference": "e95216850555cd55e71b857eb9d6c2674124603a"
|
||||
"reference": "098b62ae81fdd6cbf941f355059f617db28f4f9a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/e95216850555cd55e71b857eb9d6c2674124603a",
|
||||
"reference": "e95216850555cd55e71b857eb9d6c2674124603a",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/098b62ae81fdd6cbf941f355059f617db28f4f9a",
|
||||
"reference": "098b62ae81fdd6cbf941f355059f617db28f4f9a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.1",
|
||||
"php": ">=8.2",
|
||||
"symfony/event-dispatcher-contracts": "^2.5|^3"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/dependency-injection": "<5.4",
|
||||
"symfony/dependency-injection": "<6.4",
|
||||
"symfony/service-contracts": "<2.5"
|
||||
},
|
||||
"provide": {
|
||||
@ -4491,13 +4491,13 @@
|
||||
},
|
||||
"require-dev": {
|
||||
"psr/log": "^1|^2|^3",
|
||||
"symfony/config": "^5.4|^6.0|^7.0",
|
||||
"symfony/dependency-injection": "^5.4|^6.0|^7.0",
|
||||
"symfony/error-handler": "^5.4|^6.0|^7.0",
|
||||
"symfony/expression-language": "^5.4|^6.0|^7.0",
|
||||
"symfony/http-foundation": "^5.4|^6.0|^7.0",
|
||||
"symfony/config": "^6.4|^7.0",
|
||||
"symfony/dependency-injection": "^6.4|^7.0",
|
||||
"symfony/error-handler": "^6.4|^7.0",
|
||||
"symfony/expression-language": "^6.4|^7.0",
|
||||
"symfony/http-foundation": "^6.4|^7.0",
|
||||
"symfony/service-contracts": "^2.5|^3",
|
||||
"symfony/stopwatch": "^5.4|^6.0|^7.0"
|
||||
"symfony/stopwatch": "^6.4|^7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@ -4525,7 +4525,7 @@
|
||||
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/event-dispatcher/tree/v6.4.2"
|
||||
"source": "https://github.com/symfony/event-dispatcher/tree/v7.0.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -4541,7 +4541,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-12-27T22:16:42+00:00"
|
||||
"time": "2023-12-27T22:24:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher-contracts",
|
||||
@ -6092,20 +6092,20 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/string",
|
||||
"version": "v6.4.2",
|
||||
"version": "v7.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/string.git",
|
||||
"reference": "7cb80bc10bfcdf6b5492741c0b9357dac66940bc"
|
||||
"reference": "cc78f14f91f5e53b42044d0620961c48028ff9f5"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/string/zipball/7cb80bc10bfcdf6b5492741c0b9357dac66940bc",
|
||||
"reference": "7cb80bc10bfcdf6b5492741c0b9357dac66940bc",
|
||||
"url": "https://api.github.com/repos/symfony/string/zipball/cc78f14f91f5e53b42044d0620961c48028ff9f5",
|
||||
"reference": "cc78f14f91f5e53b42044d0620961c48028ff9f5",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.1",
|
||||
"php": ">=8.2",
|
||||
"symfony/polyfill-ctype": "~1.8",
|
||||
"symfony/polyfill-intl-grapheme": "~1.0",
|
||||
"symfony/polyfill-intl-normalizer": "~1.0",
|
||||
@ -6115,11 +6115,11 @@
|
||||
"symfony/translation-contracts": "<2.5"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/error-handler": "^5.4|^6.0|^7.0",
|
||||
"symfony/http-client": "^5.4|^6.0|^7.0",
|
||||
"symfony/intl": "^6.2|^7.0",
|
||||
"symfony/error-handler": "^6.4|^7.0",
|
||||
"symfony/http-client": "^6.4|^7.0",
|
||||
"symfony/intl": "^6.4|^7.0",
|
||||
"symfony/translation-contracts": "^2.5|^3.0",
|
||||
"symfony/var-exporter": "^5.4|^6.0|^7.0"
|
||||
"symfony/var-exporter": "^6.4|^7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@ -6158,7 +6158,7 @@
|
||||
"utf8"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/string/tree/v6.4.2"
|
||||
"source": "https://github.com/symfony/string/tree/v7.0.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -6174,7 +6174,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-12-10T16:15:48+00:00"
|
||||
"time": "2023-12-10T16:54:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/translation",
|
||||
@ -7844,16 +7844,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phpunit/phpunit",
|
||||
"version": "10.5.5",
|
||||
"version": "10.5.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||
"reference": "ed21115d505b4b4f7dc7b5651464e19a2c7f7856"
|
||||
"reference": "08f4fa74d5fbfff1ef22abffee47aaedcaea227e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ed21115d505b4b4f7dc7b5651464e19a2c7f7856",
|
||||
"reference": "ed21115d505b4b4f7dc7b5651464e19a2c7f7856",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/08f4fa74d5fbfff1ef22abffee47aaedcaea227e",
|
||||
"reference": "08f4fa74d5fbfff1ef22abffee47aaedcaea227e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -7925,7 +7925,7 @@
|
||||
"support": {
|
||||
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
||||
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
|
||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.5"
|
||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.8"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -7941,7 +7941,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2023-12-27T15:13:52+00:00"
|
||||
"time": "2024-01-19T07:07:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/cli-parser",
|
||||
@ -9075,16 +9075,16 @@
|
||||
},
|
||||
{
|
||||
"name": "spatie/laravel-ignition",
|
||||
"version": "2.4.0",
|
||||
"version": "2.4.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/spatie/laravel-ignition.git",
|
||||
"reference": "b9395ba48d3f30d42092cf6ceff75ed7256cd604"
|
||||
"reference": "005e1e7b1232f3b22d7e7be3f602693efc7dba67"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/b9395ba48d3f30d42092cf6ceff75ed7256cd604",
|
||||
"reference": "b9395ba48d3f30d42092cf6ceff75ed7256cd604",
|
||||
"url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/005e1e7b1232f3b22d7e7be3f602693efc7dba67",
|
||||
"reference": "005e1e7b1232f3b22d7e7be3f602693efc7dba67",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -9163,7 +9163,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2024-01-04T14:51:24+00:00"
|
||||
"time": "2024-01-12T13:14:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "theseer/tokenizer",
|
||||
|
@ -1,10 +1,37 @@
|
||||
FROM registry.dege.au/leenooks/php:8.1-fpm-ldap
|
||||
FROM dunglas/frankenphp:latest-php8.3-alpine
|
||||
|
||||
# Base
|
||||
RUN apk add --no-cache bash
|
||||
|
||||
# Additional extensions:
|
||||
RUN install-php-extensions \
|
||||
ldap \
|
||||
memcached
|
||||
|
||||
RUN curl -4 https://getcomposer.org/installer|php -- --install-dir=/usr/local/bin --filename=composer
|
||||
ENV COMPOSER_HOME=/var/cache/composer
|
||||
|
||||
ENV SITE_USER=www-data
|
||||
|
||||
COPY docker/init-docker /sbin/init-docker
|
||||
RUN chmod 550 /sbin/init-docker && chown ${SITE_USER}:0 /sbin/init-docker
|
||||
|
||||
COPY . /var/www/html/
|
||||
WORKDIR /var/www/html
|
||||
|
||||
RUN mkdir -p ${COMPOSER_HOME} && \
|
||||
([ -r auth.json ] && mv auth.json ${COMPOSER_HOME}) || true && \
|
||||
touch .composer.refresh && \
|
||||
mv .env.example .env && \
|
||||
FORCE_PERMS=1 NGINX_START=FALSE /sbin/init && \
|
||||
rm -rf ${COMPOSER_HOME}/* composer.lock
|
||||
RUN mkdir -p ${COMPOSER_HOME} \
|
||||
&& ([ -r auth.json ] && mv auth.json ${COMPOSER_HOME}) || true \
|
||||
&& touch .composer.refresh \
|
||||
&& mv .env.example .env \
|
||||
&& FORCE_PERMS=1 /sbin/init-docker \
|
||||
&& rm -rf ${COMPOSER_HOME}/* composer.lock
|
||||
|
||||
# Fix start up items
|
||||
RUN sed -i -e 's/^{$CADDY_EXTRA_CONFIG}$/{$CADDY_EXTRA_CONFIG} /' /etc/caddy/Caddyfile
|
||||
RUN chown ${SITE_USER} /config/caddy /data/caddy
|
||||
|
||||
USER ${SITE_USER}
|
||||
|
||||
# Control which port to open
|
||||
ENV SERVER_NAME=:8080
|
||||
EXPOSE 8080
|
||||
|
172
docker/init-docker
Executable file
172
docker/init-docker
Executable file
@ -0,0 +1,172 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
role=${CONTAINER_ROLE:-app}
|
||||
env=${APP_ENV:-production}
|
||||
php=${PHP_DIR:-/var/www/html}
|
||||
composer=${COMPOSER_HOME:-/var/cache/composer}
|
||||
|
||||
SITE_USER=${SITE_USER:-www-data}
|
||||
MEMCACHED_START=${MEMCACHED_START:-FALSE}
|
||||
|
||||
# To run a local queue, running jobs from the queue "hostname"
|
||||
LOCAL_QUEUE=${LOCAL_QUEUE:-FALSE}
|
||||
# Optional additional queues to run for
|
||||
#LOCAL_QUEUES=
|
||||
|
||||
function mp() {
|
||||
set +e
|
||||
mountpoint -q $1
|
||||
local mp=$?
|
||||
set -e
|
||||
echo ${mp}
|
||||
}
|
||||
|
||||
function wait_for_db() {
|
||||
# Wait for DB to be active
|
||||
if [ -n "${DB_HOST}" -a -n "${DB_PORT}" ]; then
|
||||
while ! wait-for-it -h ${DB_HOST} -p ${DB_PORT} -t 5 -q; do
|
||||
echo "? Waiting for database at ${DB_HOST}:${DB_PORT}"
|
||||
sleep 1;
|
||||
done
|
||||
echo "- DB is active on ${DB_HOST}:${DB_PORT}"
|
||||
fi
|
||||
}
|
||||
|
||||
# Run any container setup
|
||||
[ -x /sbin/init-container ] && /sbin/init-container
|
||||
|
||||
# General Setup
|
||||
if [ -x /usr/bin/memcached -a "${MEMCACHED_START}" == "TRUE" ]; then
|
||||
echo "* Starting MEMCACHED..."
|
||||
/usr/bin/memcached -d -P /run/memcached/memcached.pid -u memcached
|
||||
fi
|
||||
|
||||
# Laravel Specific
|
||||
if [ -r artisan -a -e ${php}/.env ]; then
|
||||
echo "* Laravel Setup..."
|
||||
mp=$(mp ${php})
|
||||
echo " - [${php}] is a mount point [${mp}]"
|
||||
|
||||
# Only adjust perms if this is an external mountpoint
|
||||
if [ -n "${FORCE_PERMS}" -o ${mp} -eq 0 ]; then
|
||||
if [ -n "${FORCE_PERMS}" -o "${env}" != "local" -a -z "${SKIP_PERM}" ]; then
|
||||
echo " - Setting Permissions..."
|
||||
# Make sure our permissions are appropraite
|
||||
find ${php} -type f -exec chmod 640 {} \;
|
||||
find ${php} -type d -exec chmod 750 {} \;
|
||||
find ${php}/public -type f -exec chmod 644 {} \;
|
||||
find ${php}/public -type d -exec chmod 755 {} \;
|
||||
chmod o+rx ${php}
|
||||
chmod a+rx ${php}/artisan
|
||||
chown -R ${SITE_USER}:www-data ${php}
|
||||
|
||||
#if [ "${SITE_USER}" -ne "www-data" ]; then
|
||||
# echo " - Extended Permissions for ${SITE_USER}..."
|
||||
# chown -R www-data:www-data ${php}/storage ${php}/bootstrap ${php}/composer.*
|
||||
# [ -e ${php}/vendor ] && chown -R www-data:www-data ${php}/vendor
|
||||
#fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# See if we need to refresh our dependancies (only need if web dir is externally mounted)
|
||||
if [[ -r composer.json && ( -e .composer.refresh || ! -d vendor ) ]]; then
|
||||
echo " - Composer installing dependancies..."
|
||||
|
||||
rm -f ${php}/bootstrap/cache/*.php
|
||||
if [ "${env}" != "local" ]; then
|
||||
NODEV="--no-dev"
|
||||
fi
|
||||
|
||||
mp=$(mp ${composer})
|
||||
echo " - [${composer}] is a mount point [${mp}]"
|
||||
|
||||
if [ -n "${FORCE_PERMS}" -o ${mp} -eq 0 ]; then
|
||||
[ -n "${FORCE_PERMS}" -o "${env}" != "local" -a -z "${SKIP_PERM}" ] && chown -R ${SITE_USER}:www-data ${composer}
|
||||
[ ! -d ${php}/vendor ] && mkdir -m 750 ${php}/vendor && chown ${SITE_USER}:www-data ${php}/vendor
|
||||
[ -n "${FORCE_PERMS}" -o "${env}" != "local" -a -z "${SKIP_PERM}" ] && chmod g+w ${php}
|
||||
fi
|
||||
|
||||
su ${SITE_USER} -s /bin/sh -c "composer install --optimize-autoloader ${NODEV}" && ( test -e .composer.refresh && rm -f .composer.refresh )
|
||||
[ -n "${FORCE_PERMS}" -o "${env}" != "local" -a -z "${SKIP_PERM}" ] && [ ${mp} -eq 0 ] && chmod g-w ${php}
|
||||
fi
|
||||
|
||||
# We only check for non mount points, in case this container has the app inside
|
||||
mp=$(mp ${php})
|
||||
if [ ${mp} -eq 1 ]; then
|
||||
echo " - Caching configuration..."
|
||||
su ${SITE_USER} -s /bin/sh -c "(php artisan optimize)"
|
||||
fi
|
||||
|
||||
if [ "${role}" = "app" ]; then
|
||||
if [ "${env}" != "local" ]; then
|
||||
if [ -z "${IGNORE_MIGRATION}" ]; then
|
||||
if [ -r .migrate ]; then
|
||||
echo " - Running migration..."
|
||||
# If DB_HOST not set, source the env file
|
||||
[ -z "${DB_HOST}" -a -r .env ] && . .env
|
||||
|
||||
wait_for_db
|
||||
|
||||
su ${SITE_USER} -s /bin/sh -c "php artisan migrate" && rm -f .migrate
|
||||
fi
|
||||
else
|
||||
[ -r .migrate ] && echo "! NOTE: Migration ignored due to IGNORE_MIGRATION"
|
||||
fi
|
||||
|
||||
# If passport is installed
|
||||
if [ -d ${php}/vendor/laravel/passport ]; then
|
||||
echo " - Generating OAUTH keys ..."
|
||||
set +e
|
||||
su ${SITE_USER} -s /bin/sh -c "php artisan passport:keys"
|
||||
set -e
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "${LOCAL_QUEUE}" = "TRUE" ]; then
|
||||
echo " - Starting local queue for [$(hostname)${LOCAL_QUEUES:+,${LOCAL_QUEUES}}] with job timeout of [${WORK_TIMEOUT:-90}], trying [${WORK_TRIES:-1}] times..."
|
||||
su ${SITE_USER} -s /bin/sh -c "
|
||||
(while true; do php ${PHP_OPTIONS} artisan queue:work --verbose --tries=${WORK_TRIES:-1} --timeout=${WORK_TIMEOUT:-90} --queue=$(hostname)${LOCAL_QUEUES:+,${LOCAL_QUEUES}} ${WORK_MEMORY:+--memory=${WORK_MEMORY}} ${WORK_ONCE:+--once}; done) &
|
||||
"
|
||||
fi
|
||||
|
||||
set +e
|
||||
[ -x init-php.sh ] && su ${SITE_USER} -s /bin/sh "init-php.sh" &
|
||||
|
||||
exec /usr/local/bin/docker-php-entrypoint "$@"
|
||||
|
||||
elif [ "$role" = "queue" ]; then
|
||||
QUEUE_CMD=work
|
||||
|
||||
if [ "${env}" == "local" ]; then
|
||||
QUEUE_CMD=listen
|
||||
fi
|
||||
|
||||
echo " - Running the queue..."
|
||||
# We'll delay starting in case the app is caching
|
||||
sleep 15
|
||||
|
||||
wait_for_db
|
||||
|
||||
su ${SITE_USER} -s /bin/sh -c "
|
||||
while true; do
|
||||
php ${PHP_OPTIONS} artisan queue:${QUEUE_CMD} --verbose --tries=${WORK_TRIES:-1} --timeout=${WORK_TIMEOUT:-90} ${WORK_QUEUES:+--queue=${WORK_QUEUES}} ${WORK_MEMORY:+--memory=${WORK_MEMORY}} ${WORK_ONCE:+--once}
|
||||
done
|
||||
"
|
||||
|
||||
elif [ "$role" = "scheduler" ]; then
|
||||
echo " - Running the scheduler..."
|
||||
# We'll delay starting in case the app is caching
|
||||
sleep 15
|
||||
|
||||
su ${SITE_USER} -s /bin/sh -c "
|
||||
while true; do
|
||||
php ${PHP_OPTIONS} artisan schedule:work --verbose --no-interaction
|
||||
done
|
||||
"
|
||||
fi
|
||||
|
||||
else
|
||||
echo "? NO container role \"${role}\", AND/OR no laravel install, just starting php-fpm"
|
||||
exec /usr/local/bin/docker-php-entrypoint "$@"
|
||||
fi
|
@ -1,6 +1,7 @@
|
||||
dn: olcDatabase=mdb,cn=config
|
||||
changetype: add
|
||||
objectClass: olcDatabaseConfig
|
||||
objectClass: olcMdbConfig
|
||||
olcDbDirectory: /var/lib/openldap/data
|
||||
olcDatabase: mdb
|
||||
olcLastMod: TRUE
|
||||
olcMonitoring: TRUE
|
@ -1,6 +1,7 @@
|
||||
dn: olcDatabase=mdb,cn=config
|
||||
changetype: add
|
||||
objectClass: olcDatabaseConfig
|
||||
objectClass: olcMdbConfig
|
||||
olcDbDirectory: /var/lib/openldap/data
|
||||
olcDatabase: mdb
|
||||
olcLastMod: TRUE
|
||||
olcMonitoring: TRUE
|
@ -1,6 +1,7 @@
|
||||
dn: olcDatabase=mdb,cn=config
|
||||
changetype: add
|
||||
objectClass: olcDatabaseConfig
|
||||
objectClass: olcMdbConfig
|
||||
olcDbDirectory: /var/lib/openldap/data
|
||||
olcDatabase: mdb
|
||||
olcLastMod: TRUE
|
||||
olcMonitoring: TRUE
|
@ -1,6 +1,7 @@
|
||||
dn: olcDatabase=mdb,cn=config
|
||||
changetype: add
|
||||
objectClass: olcDatabaseConfig
|
||||
objectClass: olcMdbConfig
|
||||
olcDbDirectory: /var/lib/openldap/data
|
||||
olcDatabase: mdb
|
||||
olcLastMod: TRUE
|
||||
olcMonitoring: TRUE
|
12
tests/server/openldap/bases/25-test.ldif
Normal file
12
tests/server/openldap/bases/25-test.ldif
Normal file
@ -0,0 +1,12 @@
|
||||
dn: olcDatabase=mdb,cn=config
|
||||
objectClass: olcDatabaseConfig
|
||||
objectClass: olcMdbConfig
|
||||
olcDbDirectory: /var/lib/openldap/data
|
||||
olcDatabase: mdb
|
||||
olcLastMod: TRUE
|
||||
olcMonitoring: TRUE
|
||||
olcSuffix: dc=Test
|
||||
olcAccess: to dn.base="" by dn="cn=admin,dc=Test" write by * read
|
||||
olcAccess: to * by dn="cn=admin,dc=Test" write by dn="cn=admin,dc=Test" write by * read
|
||||
olcRootDN: cn=admin,dc=Test
|
||||
olcRootPW: {SSHA}UCTtlcHOSqGCFuKtOCJAU8k8icNpVGiw
|
@ -1,11 +0,0 @@
|
||||
##
|
||||
## Used for storing the next gid and next uid in the the directory
|
||||
##
|
||||
objectclass ( 1.3.6.1.4.1.7165.1.2.2.3 NAME 'uidPool' SUP top AUXILIARY
|
||||
DESC 'Pool for allocating UNIX uids'
|
||||
MUST ( uidNumber $ cn ) )
|
||||
|
||||
|
||||
objectclass ( 1.3.6.1.4.1.7165.1.2.2.4 NAME 'gidPool' SUP top AUXILIARY
|
||||
DESC 'Pool for allocating UNIX gids'
|
||||
MUST ( gidNumber $ cn ) )
|
4
tests/server/openldap/data/01-au.ldif
Normal file
4
tests/server/openldap/data/01-au.ldif
Normal file
@ -0,0 +1,4 @@
|
||||
# Base DN
|
||||
dn: c=AU
|
||||
c: AU
|
||||
objectclass: country
|
@ -1,11 +1,4 @@
|
||||
# LDIF Export for dc=example,dc=com
|
||||
# Server: C5: OpenLDAP 2.3.27: config (c5dev.leenooks.vpn)
|
||||
# Search Scope: sub
|
||||
# Search Filter: (objectClass=*)
|
||||
# Total Entries: 15
|
||||
#
|
||||
# Generated by phpLDAPadmin (http://phpldapadmin.sourceforge.net) on April 26, 2011 9:25 pm
|
||||
# Version: 1.2.0.5
|
||||
|
||||
#version: 1
|
||||
|
||||
@ -146,3 +139,64 @@ c: US
|
||||
description: United States of America
|
||||
objectclass: country
|
||||
objectclass: top
|
||||
|
||||
# Entry 16: c=JP,dc=example,dc=com
|
||||
dn: c=JP,dc=example,dc=com
|
||||
c: JP
|
||||
description: Japan
|
||||
description;lang-jp: 日本
|
||||
objectclass: country
|
||||
objectclass: top
|
||||
|
||||
#
|
||||
dn:: b3U95Za25qWt6YOoLGM9SlAsZGM9ZXhhbXBsZSxkYz1jb20=
|
||||
# dn:: ou=<JapaneseOU>,c=JP
|
||||
objectclass: top
|
||||
objectclass: organizationalUnit
|
||||
ou:: 5Za25qWt6YOo
|
||||
# ou:: <JapaneseOU>
|
||||
ou;lang-ja:: 5Za25qWt6YOo
|
||||
# ou;lang-ja:: <JapaneseOU>
|
||||
#ou;lang-ja;x-phonetic:: 44GI44GE44GO44KH44GG44G2
|
||||
# ou;lang-ja:: <JapaneseOU_in_phonetic_representation>
|
||||
ou;lang-en: Sales
|
||||
description: Japanese office
|
||||
|
||||
#
|
||||
dn:: dWlkPXJvZ2FzYXdhcmEsb3U95Za25qWt6YOoLGM9SlAsZGM9ZXhhbXBsZSxkYz1jb20=
|
||||
# dn:: uid=<uid>,ou=<JapaneseOU>,c=JP
|
||||
userpassword: {SHA}O3HSv1MusyL4kTjP+HKI5uxuNoM=
|
||||
objectclass: top
|
||||
objectclass: person
|
||||
objectclass: organizationalPerson
|
||||
objectclass: inetOrgPerson
|
||||
uid: rogasawara
|
||||
mail: rogasawara@airius.co.jp
|
||||
givenname;lang-ja:: 44Ot44OJ44OL44O8
|
||||
# givenname;lang-ja:: <JapaneseGivenname>
|
||||
sn;lang-ja:: 5bCP56yg5Y6f
|
||||
# sn;lang-ja:: <JapaneseSn>
|
||||
cn;lang-ja:: 5bCP56yg5Y6fIOODreODieODi+ODvA==
|
||||
# cn;lang-ja:: <JapaneseCn>
|
||||
title;lang-ja:: 5Za25qWt6YOoIOmDqOmVtw==
|
||||
# title;lang-ja:: <JapaneseTitle>
|
||||
preferredlanguage: ja
|
||||
givenname:: 44Ot44OJ44OL44O8
|
||||
# givenname:: <JapaneseGivenname>
|
||||
sn:: 5bCP56yg5Y6f
|
||||
# sn:: <JapaneseSn>
|
||||
cn:: 5bCP56yg5Y6fIOODreODieODi+ODvA==
|
||||
# cn:: <JapaneseCn>
|
||||
title:: 5Za25qWt6YOoIOmDqOmVtw==
|
||||
# title:: <JapaneseTitle>
|
||||
#givenname;lang-ja;x-phonetic:: 44KN44Gp44Gr44O8
|
||||
# givenname;lang-ja;x-phonetic:: <JapaneseGivenname_in_phonetic_representation_kana>
|
||||
#sn;lang-ja;x-phonetic:: 44GK44GM44GV44KP44KJ
|
||||
# sn;lang-ja;x-phonetic:: <JapaneseSn_in_phonetic_representation_kana>
|
||||
#cn;lang-ja;x-phonetic:: 44GK44GM44GV44KP44KJIOOCjeOBqeOBq+ODvA==
|
||||
# cn;lang-ja;x-phonetic:: <JapaneseCn_in_phonetic_representation_kana>
|
||||
#title;lang-ja;x-phonetic:: 44GI44GE44GO44KH44GG44G2IOOBtuOBoeOCh+OBhg==
|
||||
# title;lang-ja;x-phonetic:: <JapaneseTitle_in_phonetic_representation_kana>
|
||||
givenname;lang-en: Rodney
|
||||
sn;lang-en: Ogasawara
|
||||
cn;lang-en: Rodney Ogasawara
|
@ -1,11 +1,4 @@
|
||||
# LDIF Export for dc=example.com
|
||||
# Server: C5: OpenLDAP 2.3.27: config (c5dev.leenooks.vpn)
|
||||
# Search Scope: sub
|
||||
# Search Filter: (objectClass=*)
|
||||
# Total Entries: 23
|
||||
#
|
||||
# Generated by phpLDAPadmin (http://phpldapadmin.sourceforge.net) on April 26, 2011 9:13 pm
|
||||
# Version: 1.2.0.5
|
||||
|
||||
#version: 1
|
||||
|
@ -1,11 +1,4 @@
|
||||
# LDIF Export for o=Flintstones
|
||||
# Server: C5: OpenLDAP 2.3.27: config (c5dev.leenooks.vpn)
|
||||
# Search Scope: sub
|
||||
# Search Filter: (objectClass=*)
|
||||
# Total Entries: 12
|
||||
#
|
||||
# Generated by phpLDAPadmin (http://phpldapadmin.sourceforge.net) on April 26, 2011 9:03 pm
|
||||
# Version: 1.2.0.5
|
||||
|
||||
#version: 1
|
||||
|
@ -1,11 +1,4 @@
|
||||
# LDIF Export for o=Simpsons
|
||||
# Server: C5: OpenLDAP 2.3.27: config (c5dev.leenooks.vpn)
|
||||
# Search Scope: sub
|
||||
# Search Filter: (objectClass=*)
|
||||
# Total Entries: 11
|
||||
#
|
||||
# Generated by phpLDAPadmin (http://phpldapadmin.sourceforge.net) on April 26, 2011 9:05 pm
|
||||
# Version: 1.2.0.5
|
||||
|
||||
#version: 1
|
||||
|
@ -1,135 +1,135 @@
|
||||
# LDIF Export for o=Test
|
||||
# LDIF Export for dc=Test
|
||||
|
||||
#version: 1
|
||||
|
||||
dn: o=Test
|
||||
o: Test
|
||||
objectclass: organization
|
||||
#dn: dc=Test
|
||||
#o: Test
|
||||
#objectclass: organization
|
||||
|
||||
dn: cn=user,o=Test
|
||||
dn: cn=user,dc=Test
|
||||
cn: user
|
||||
sn: Doe
|
||||
objectclass: inetOrgPerson
|
||||
objectclass: top
|
||||
|
||||
dn: ou=Bad DNs,o=Test
|
||||
dn: ou=Bad DNs,dc=Test
|
||||
objectclass: organizationalUnit
|
||||
ou: Bad DNs
|
||||
|
||||
#dn: c=double plus ++,ou=Bad DNs,o=Test
|
||||
#dn: c=double plus ++,ou=Bad DNs,dc=Test
|
||||
#c: double plus ++
|
||||
#objectclass: country
|
||||
|
||||
#dn: c=end dollar$,ou=Bad DNs,o=Test
|
||||
#dn: c=end dollar$,ou=Bad DNs,dc=Test
|
||||
#c: end dollar$
|
||||
#objectclass: country
|
||||
|
||||
dn: sn=sign@at+uid=multi-mixed,ou=Bad DNs,o=Test
|
||||
dn: sn=sign@at+uid=multi-mixed,ou=Bad DNs,dc=Test
|
||||
cn: Test
|
||||
objectclass: inetOrgPerson
|
||||
sn: sign@at
|
||||
uid: multi-mixed
|
||||
|
||||
dn: uid=angle\3Cleft,ou=Bad DNs,o=Test
|
||||
dn: uid=angle\3Cleft,ou=Bad DNs,dc=Test
|
||||
cn: Test
|
||||
objectclass: inetOrgPerson
|
||||
sn: Test
|
||||
uid: angle<left
|
||||
|
||||
dn: uid=angle\3Eright,ou=Bad DNs,o=Test
|
||||
dn: uid=angle\3Eright,ou=Bad DNs,dc=Test
|
||||
cn: Test
|
||||
objectclass: inetOrgPerson
|
||||
sn: Test
|
||||
uid: angle>right
|
||||
|
||||
dn: uid=brace(left,ou=Bad DNs,o=Test
|
||||
dn: uid=brace(left,ou=Bad DNs,dc=Test
|
||||
cn: Test
|
||||
objectclass: inetOrgPerson
|
||||
sn: Test
|
||||
uid: brace(left
|
||||
|
||||
dn: uid=brace)right,ou=Bad DNs,o=Test
|
||||
dn: uid=brace)right,ou=Bad DNs,dc=Test
|
||||
cn: Test
|
||||
objectclass: inetOrgPerson
|
||||
sn: Test
|
||||
uid: brace)right
|
||||
|
||||
dn: uid=colon:full,ou=Bad DNs,o=Test
|
||||
dn: uid=colon:full,ou=Bad DNs,dc=Test
|
||||
cn: Test
|
||||
objectclass: inetOrgPerson
|
||||
sn: Test
|
||||
uid: colon:full
|
||||
|
||||
dn: uid=colon\3Bsemi,ou=Bad DNs,o=Test
|
||||
dn: uid=colon\3Bsemi,ou=Bad DNs,dc=Test
|
||||
cn: Test
|
||||
objectclass: inetOrgPerson
|
||||
sn: Test
|
||||
uid: colon;semi
|
||||
|
||||
#dn: uid=multi+uid=sign@at,ou=Bad DNs,o=Test
|
||||
#dn: uid=multi+uid=sign@at,ou=Bad DNs,dc=Test
|
||||
#cn: Test
|
||||
#objectclass: inetOrgPerson
|
||||
#sn: Test
|
||||
#uid: multi
|
||||
#uid: sign@at
|
||||
|
||||
#dn: uid=multi+uid=value,ou=Bad DNs,o=Test
|
||||
#dn: uid=multi+uid=value,ou=Bad DNs,dc=Test
|
||||
#cn: Test
|
||||
#objectclass: inetOrgPerson
|
||||
#sn: Test
|
||||
#uid: multi
|
||||
#uid: value
|
||||
|
||||
dn: uid=quote\22double,ou=Bad DNs,o=Test
|
||||
dn: uid=quote\22double,ou=Bad DNs,dc=Test
|
||||
cn: Test
|
||||
objectclass: inetOrgPerson
|
||||
sn: Test
|
||||
uid: quote"double
|
||||
|
||||
dn: uid=quote'single,ou=Bad DNs,o=Test
|
||||
dn: uid=quote'single,ou=Bad DNs,dc=Test
|
||||
cn: Test
|
||||
objectclass: inetOrgPerson
|
||||
sn: Test
|
||||
uid: quote'single
|
||||
|
||||
dn: uid=sign%percent,ou=Bad DNs,o=Test
|
||||
dn: uid=sign%percent,ou=Bad DNs,dc=Test
|
||||
cn: Test
|
||||
objectclass: inetOrgPerson
|
||||
sn: Test
|
||||
uid: sign%percent
|
||||
|
||||
dn: uid=sign\2Bplus,ou=Bad DNs,o=Test
|
||||
dn: uid=sign\2Bplus,ou=Bad DNs,dc=Test
|
||||
cn: Test
|
||||
objectclass: inetOrgPerson
|
||||
sn: Test
|
||||
uid: sign+plus
|
||||
|
||||
dn: uid=sign\2Ccomma,ou=Bad DNs,o=Test
|
||||
dn: uid=sign\2Ccomma,ou=Bad DNs,dc=Test
|
||||
cn: Test
|
||||
objectclass: inetOrgPerson
|
||||
sn: Test
|
||||
uid: sign,comma
|
||||
|
||||
dn: uid=sign\3Bsemicolon@at,ou=Bad DNs,o=Test
|
||||
dn: uid=sign\3Bsemicolon@at,ou=Bad DNs,dc=Test
|
||||
cn: Test
|
||||
objectclass: inetOrgPerson
|
||||
sn: Test
|
||||
uid: sign;semicolon@at
|
||||
|
||||
dn: uid=sign\3Dequal,ou=Bad DNs,o=Test
|
||||
dn: uid=sign\3Dequal,ou=Bad DNs,dc=Test
|
||||
cn: Test
|
||||
objectclass: inetOrgPerson
|
||||
sn: Test
|
||||
uid: sign=equal
|
||||
|
||||
dn: uid=sign?question,ou=Bad DNs,o=Test
|
||||
dn: uid=sign?question,ou=Bad DNs,dc=Test
|
||||
cn: Test
|
||||
objectclass: inetOrgPerson
|
||||
sn: Test
|
||||
uid: sign?question
|
||||
|
||||
dn: uid=sign@at,ou=Bad DNs,o=Test
|
||||
cn: Test
|
||||
objectclass: inetOrgPerson
|
||||
sn: Test
|
||||
uid: sign@at
|
||||
#dn: uid=sign@at,ou=Bad DNs,dc=Test
|
||||
#cn: Test
|
||||
#objectclass: inetOrgPerson
|
||||
#sn: Test
|
||||
#uid: sign@at
|
@ -1,18 +1,18 @@
|
||||
# This is a Test-File for characters / encoding
|
||||
# 1. Change the
|
||||
# ,o=Test
|
||||
# ,dc=Test
|
||||
# to avalue for your organisation
|
||||
# 2. Import it with phpldapadmin
|
||||
#
|
||||
# pla-i18n, example.com
|
||||
#
|
||||
dn: ou=pla-i18n,o=Test
|
||||
dn: ou=pla-i18n,dc=Test
|
||||
ou: pla-i18n
|
||||
objectClass: top
|
||||
objectClass: organizationalUnit
|
||||
|
||||
# pl, pla-i18n, example.com
|
||||
dn: ou=pl,ou=pla-i18n,o=Test
|
||||
dn: ou=pl,ou=pla-i18n,dc=Test
|
||||
description:: IGRvcMOza2k=
|
||||
description:: xITFu8WaxbnEhsWDxYHDk8SYIMSFxbzFm8W6xIfFhMWCw7PEmQ==
|
||||
description:: V3NrYXrDs3drYQ==
|
||||
@ -21,7 +21,7 @@ objectClass: organizationalUnit
|
||||
ou: pl
|
||||
|
||||
# ru, pla-i18n, example.com
|
||||
dn: ou=ru,ou=pla-i18n,o=Test
|
||||
dn: ou=ru,ou=pla-i18n,dc=Test
|
||||
description:: 0LfQstGD0YfQuNGCINC/0L7QtNC+0LHQvdC+
|
||||
description:: 0J/RgNC+0YHRgtCw0Y8g0YTQvtGA0LzQsCDQv9C+0LjRgdC6
|
||||
objectClass: top
|
||||
@ -29,21 +29,21 @@ objectClass: organizationalUnit
|
||||
ou: ru
|
||||
|
||||
# jp, pla-i18n, example.com
|
||||
dn: ou=jp,ou=pla-i18n,o=Test
|
||||
dn: ou=jp,ou=pla-i18n,dc=Test
|
||||
ou: jp
|
||||
objectClass: top
|
||||
objectClass: organizationalUnit
|
||||
description:: SVNPLTIwMjItSlDjga7lpJrlm73nsY3oqIDoqp7jgbjjga7mi6HlvLXmgKc=
|
||||
|
||||
# pt-br, pla-i18n, example.com
|
||||
dn: ou=pt-br,ou=pla-i18n,o=Test
|
||||
dn: ou=pt-br,ou=pla-i18n,dc=Test
|
||||
ou: pt-br
|
||||
objectClass: top
|
||||
objectClass: organizationalUnit
|
||||
description:: VmVyIGFzIHJlcXVpc2nDp8O1ZXMgZW0gYWJlcnRv
|
||||
|
||||
# de, pla-i18n, example.com
|
||||
dn: ou=de,ou=pla-i18n,o=Test
|
||||
dn: ou=de,ou=pla-i18n,dc=Test
|
||||
ou: de
|
||||
objectClass: top
|
||||
objectClass: organizationalUnit
|
||||
@ -51,7 +51,7 @@ description:: U29uZGVyemVpY2hlbiDDtsOkw7zDnyDDlsOEw5w=
|
||||
description:: w5bDliDDnMOcIMOEw4Q=
|
||||
|
||||
# sv, pla-i18n, example.com
|
||||
dn: ou=sv,ou=pla-i18n,o=Test
|
||||
dn: ou=sv,ou=pla-i18n,dc=Test
|
||||
ou: sv
|
||||
objectClass: top
|
||||
objectClass: organizationalUnit
|
||||
@ -59,7 +59,7 @@ description:: U8O2a29tZsOlbmc=
|
||||
description:: bMOldGVyIHNvbQ==
|
||||
|
||||
# ca, pla-i18n, example.com
|
||||
dn: ou=ca,ou=pla-i18n,o=Test
|
||||
dn: ou=ca,ou=pla-i18n,dc=Test
|
||||
ou: ca
|
||||
objectClass: top
|
||||
objectClass: organizationalUnit
|
@ -3,9 +3,9 @@
|
||||
#version: 1
|
||||
|
||||
# This entry already exists as a result of configuring the LDAP server
|
||||
#dn: dc=Test
|
||||
#dc: Test
|
||||
#objectclass: dNSDomain
|
||||
dn: dc=Test
|
||||
dc: Test
|
||||
objectclass: dNSDomain
|
||||
|
||||
dn: cn=AdminUser,dc=Test
|
||||
cn: Admin User
|
@ -1,11 +0,0 @@
|
||||
dn: olcDatabase=mdb,cn=config
|
||||
changetype: add
|
||||
objectClass: olcDatabaseConfig
|
||||
olcDatabase: mdb
|
||||
olcLastMod: TRUE
|
||||
olcMonitoring: TRUE
|
||||
olcSuffix: o=Test
|
||||
olcAccess: to dn.base="" by dn="cn=admin,dc=Test" write by * read
|
||||
olcAccess: to * by dn="cn=admin,o=Test" write by dn="cn=admin,dc=Test" write by * read
|
||||
olcRootDN: cn=admin,o=Test
|
||||
olcRootPW: {SSHA}e8xGdXmL+mSD3u/389YHeM+dpqFCUSyq
|
@ -1,69 +1,61 @@
|
||||
attributetype ( 1.3.6.1.4.1.15953.9.1.1
|
||||
NAME 'sudoUser'
|
||||
dn: cn=sudorole,cn=schema,cn=config
|
||||
objectClass: olcSchemaConfig
|
||||
cn: sudorole
|
||||
olcAttributeTypes: {0}( 1.3.6.1.4.1.15953.9.1.1 NAME 'sudoUser'
|
||||
DESC 'User(s) who may run sudo'
|
||||
EQUALITY caseExactIA5Match
|
||||
SUBSTR caseExactIA5SubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
|
||||
|
||||
attributetype ( 1.3.6.1.4.1.15953.9.1.2
|
||||
olcAttributeTypes: {1}( 1.3.6.1.4.1.15953.9.1.2
|
||||
NAME 'sudoHost'
|
||||
DESC 'Host(s) who may run sudo'
|
||||
EQUALITY caseExactIA5Match
|
||||
SUBSTR caseExactIA5SubstringsMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
|
||||
|
||||
attributetype ( 1.3.6.1.4.1.15953.9.1.3
|
||||
olcAttributeTypes: {2}( 1.3.6.1.4.1.15953.9.1.3
|
||||
NAME 'sudoCommand'
|
||||
DESC 'Command(s) to be executed by sudo'
|
||||
EQUALITY caseExactIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
|
||||
|
||||
attributetype ( 1.3.6.1.4.1.15953.9.1.4
|
||||
olcAttributeTypes: {3}( 1.3.6.1.4.1.15953.9.1.4
|
||||
NAME 'sudoRunAs'
|
||||
DESC 'User(s) impersonated by sudo'
|
||||
EQUALITY caseExactIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
|
||||
|
||||
attributetype ( 1.3.6.1.4.1.15953.9.1.5
|
||||
olcAttributeTypes: {4}( 1.3.6.1.4.1.15953.9.1.5
|
||||
NAME 'sudoOption'
|
||||
DESC 'Options(s) followed by sudo'
|
||||
EQUALITY caseExactIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
|
||||
|
||||
attributetype ( 1.3.6.1.4.1.15953.9.1.6
|
||||
olcAttributeTypes: {5}( 1.3.6.1.4.1.15953.9.1.6
|
||||
NAME 'sudoRunAsUser'
|
||||
DESC 'User(s) impersonated by sudo'
|
||||
EQUALITY caseExactIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
|
||||
|
||||
attributetype ( 1.3.6.1.4.1.15953.9.1.7
|
||||
olcAttributeTypes: {6}( 1.3.6.1.4.1.15953.9.1.7
|
||||
NAME 'sudoRunAsGroup'
|
||||
DESC 'Group(s) impersonated by sudo'
|
||||
EQUALITY caseExactIA5Match
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
|
||||
|
||||
attributetype ( 1.3.6.1.4.1.15953.9.1.8
|
||||
olcAttributeTypes: {7}( 1.3.6.1.4.1.15953.9.1.8
|
||||
NAME 'sudoNotBefore'
|
||||
DESC 'Start of time interval for which the entry is valid'
|
||||
EQUALITY generalizedTimeMatch
|
||||
ORDERING generalizedTimeOrderingMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
|
||||
|
||||
attributetype ( 1.3.6.1.4.1.15953.9.1.9
|
||||
olcAttributeTypes: {8}( 1.3.6.1.4.1.15953.9.1.9
|
||||
NAME 'sudoNotAfter'
|
||||
DESC 'End of time interval for which the entry is valid'
|
||||
EQUALITY generalizedTimeMatch
|
||||
ORDERING generalizedTimeOrderingMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
|
||||
|
||||
attributeTypes ( 1.3.6.1.4.1.15953.9.1.10
|
||||
olcAttributeTypes: {9} ( 1.3.6.1.4.1.15953.9.1.10
|
||||
NAME 'sudoOrder'
|
||||
DESC 'an integer to order the sudoRole entries'
|
||||
EQUALITY integerMatch
|
||||
ORDERING integerOrderingMatch
|
||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
|
||||
|
||||
objectclass ( 1.3.6.1.4.1.15953.9.2.1 NAME 'sudoRole' SUP top STRUCTURAL
|
||||
olcObjectClasses: {0} ( 1.3.6.1.4.1.15953.9.2.1 NAME 'sudoRole' SUP top STRUCTURAL
|
||||
DESC 'Sudoer Entries'
|
||||
MUST ( cn )
|
||||
MAY ( sudoUser $ sudoHost $ sudoCommand $ sudoRunAs $ sudoRunAsUser $ sudoRunAsGroup $ sudoOption $ sudoNotBefore $ sudoNotAfter $ sudoOrder $ description ) )
|
12
tests/server/openldap/schema/add/30-uidpool.ldif
Normal file
12
tests/server/openldap/schema/add/30-uidpool.ldif
Normal file
@ -0,0 +1,12 @@
|
||||
##
|
||||
## Used for storing the next gid and next uid in the the directory
|
||||
##
|
||||
dn: cn=uidpool,cn=schema,cn=config
|
||||
objectClass: olcSchemaConfig
|
||||
cn: uidpool
|
||||
olcObjectClasses: {0}( 1.3.6.1.4.1.7165.1.2.2.3 NAME 'uidPool' SUP top AUXILIARY
|
||||
DESC 'Pool for allocating UNIX uids'
|
||||
MUST ( uidNumber $ cn ) )
|
||||
olcObjectClasses: {1}( 1.3.6.1.4.1.7165.1.2.2.4 NAME 'gidPool' SUP top AUXILIARY
|
||||
DESC 'Pool for allocating UNIX gids'
|
||||
MUST ( gidNumber $ cn ) )
|
Loading…
x
Reference in New Issue
Block a user