Merge pull request 'manager' (#4) from manager into master
Cadoles/nineskeletor/pipeline/head This commit looks good
Details
Cadoles/nineskeletor/pipeline/head This commit looks good
Details
Reviewed-on: #4
This commit is contained in:
commit
3d1c5a2159
12
.env
12
.env
|
@ -50,11 +50,13 @@ APP_NIVEAU04MANDATORY='[""]'
|
||||||
APP_GROUPUSE=1
|
APP_GROUPUSE=1
|
||||||
APP_GROUPSUBMITER='["ALL"]'
|
APP_GROUPSUBMITER='["ALL"]'
|
||||||
|
|
||||||
APP_ANNUSCOPEADMIN=ALL
|
APP_ANNUSCOPEADMIN=ALL # ALL or number of niveau view : 1||2||3||4
|
||||||
APP_ANNUSCOPEMODO=ALL
|
APP_ANNUSCOPEMODO=ALL # ALL or number of niveau view : 1||2||3||4
|
||||||
APP_ANNUSCOPEMASTER=ALL
|
APP_ANNUSCOPEMASTER=ALL # ALL or number of niveau view : 1||2||3||4
|
||||||
APP_ANNUSCOPEMANAGER=ALL
|
APP_ANNUSCOPEMANAGER=ALL # ALL or number of niveau view : 1||2||3||4
|
||||||
APP_ANNUSCOPEUSER=ALL
|
APP_ANNUSCOPEUSER=ALL # ALL or number of niveau view : 1||2||3||4
|
||||||
|
|
||||||
|
APP_USERVIEWISVISIBLE=1 # Profil user with isvisible field
|
||||||
|
|
||||||
# Synchronisation
|
# Synchronisation
|
||||||
APP_SYNCHRO= # Synchronisation null | LDAP2NINE | NINE2LDAP | NINE2NINE
|
APP_SYNCHRO= # Synchronisation null | LDAP2NINE | NINE2LDAP | NINE2NINE
|
||||||
|
|
|
@ -8,7 +8,7 @@ body {
|
||||||
color: var(--colorfttitledark);
|
color: var(--colorfttitledark);
|
||||||
}
|
}
|
||||||
|
|
||||||
.header a, #sidebar a, #sidebar hr{
|
.header h1, .header a, #sidebar a, #sidebar hr{
|
||||||
color: var(--colorfttitledark);
|
color: var(--colorfttitledark);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -121,6 +121,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
|
"doctrine/doctrine-fixtures-bundle": "^3.4",
|
||||||
"phpunit/phpunit": "^9.5",
|
"phpunit/phpunit": "^9.5",
|
||||||
"symfony/browser-kit": "6.1.*",
|
"symfony/browser-kit": "6.1.*",
|
||||||
"symfony/css-selector": "6.1.*",
|
"symfony/css-selector": "6.1.*",
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "8d7631f5e9055ef66369d9d0ea7d116e",
|
"content-hash": "d3be737db4f7ce5089c83be63c8dbf09",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "aws/aws-crt-php",
|
"name": "aws/aws-crt-php",
|
||||||
|
@ -10931,6 +10931,171 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"packages-dev": [
|
"packages-dev": [
|
||||||
|
{
|
||||||
|
"name": "doctrine/data-fixtures",
|
||||||
|
"version": "1.5.3",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/doctrine/data-fixtures.git",
|
||||||
|
"reference": "ba37bfb776de763c5bf04a36d074cd5f5a083c42"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/ba37bfb776de763c5bf04a36d074cd5f5a083c42",
|
||||||
|
"reference": "ba37bfb776de763c5bf04a36d074cd5f5a083c42",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"doctrine/common": "^2.13|^3.0",
|
||||||
|
"doctrine/persistence": "^1.3.3|^2.0|^3.0",
|
||||||
|
"php": "^7.2 || ^8.0"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"doctrine/dbal": "<2.13",
|
||||||
|
"doctrine/phpcr-odm": "<1.3.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"doctrine/coding-standard": "^9.0",
|
||||||
|
"doctrine/dbal": "^2.13 || ^3.0",
|
||||||
|
"doctrine/mongodb-odm": "^1.3.0 || ^2.0.0",
|
||||||
|
"doctrine/orm": "^2.7.0",
|
||||||
|
"ext-sqlite3": "*",
|
||||||
|
"jangregor/phpstan-prophecy": "^1",
|
||||||
|
"phpstan/phpstan": "^1.5",
|
||||||
|
"phpunit/phpunit": "^8.5 || ^9.5",
|
||||||
|
"symfony/cache": "^5.0 || ^6.0",
|
||||||
|
"vimeo/psalm": "^4.10"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"alcaeus/mongo-php-adapter": "For using MongoDB ODM 1.3 with PHP 7 (deprecated)",
|
||||||
|
"doctrine/mongodb-odm": "For loading MongoDB ODM fixtures",
|
||||||
|
"doctrine/orm": "For loading ORM fixtures",
|
||||||
|
"doctrine/phpcr-odm": "For loading PHPCR ODM fixtures"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Doctrine\\Common\\DataFixtures\\": "lib/Doctrine/Common/DataFixtures"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Jonathan Wage",
|
||||||
|
"email": "jonwage@gmail.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Data Fixtures for all Doctrine Object Managers",
|
||||||
|
"homepage": "https://www.doctrine-project.org",
|
||||||
|
"keywords": [
|
||||||
|
"database"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/doctrine/data-fixtures/issues",
|
||||||
|
"source": "https://github.com/doctrine/data-fixtures/tree/1.5.3"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://www.doctrine-project.org/sponsorship.html",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://www.patreon.com/phpdoctrine",
|
||||||
|
"type": "patreon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdata-fixtures",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2022-04-19T10:01:44+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "doctrine/doctrine-fixtures-bundle",
|
||||||
|
"version": "3.4.2",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/doctrine/DoctrineFixturesBundle.git",
|
||||||
|
"reference": "601988c5b46dbd20a0f886f967210aba378a6fd5"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/601988c5b46dbd20a0f886f967210aba378a6fd5",
|
||||||
|
"reference": "601988c5b46dbd20a0f886f967210aba378a6fd5",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"doctrine/data-fixtures": "^1.3",
|
||||||
|
"doctrine/doctrine-bundle": "^1.11|^2.0",
|
||||||
|
"doctrine/orm": "^2.6.0",
|
||||||
|
"doctrine/persistence": "^1.3.7|^2.0|^3.0",
|
||||||
|
"php": "^7.1 || ^8.0",
|
||||||
|
"symfony/config": "^3.4|^4.3|^5.0|^6.0",
|
||||||
|
"symfony/console": "^3.4|^4.3|^5.0|^6.0",
|
||||||
|
"symfony/dependency-injection": "^3.4.47|^4.3|^5.0|^6.0",
|
||||||
|
"symfony/doctrine-bridge": "^3.4|^4.1|^5.0|^6.0",
|
||||||
|
"symfony/http-kernel": "^3.4|^4.3|^5.0|^6.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"doctrine/coding-standard": "^9",
|
||||||
|
"phpstan/phpstan": "^1.4.10",
|
||||||
|
"phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20",
|
||||||
|
"symfony/phpunit-bridge": "^6.0.8",
|
||||||
|
"vimeo/psalm": "^4.22"
|
||||||
|
},
|
||||||
|
"type": "symfony-bundle",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Doctrine\\Bundle\\FixturesBundle\\": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Doctrine Project",
|
||||||
|
"homepage": "https://www.doctrine-project.org"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Symfony DoctrineFixturesBundle",
|
||||||
|
"homepage": "https://www.doctrine-project.org",
|
||||||
|
"keywords": [
|
||||||
|
"Fixture",
|
||||||
|
"persistence"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/doctrine/DoctrineFixturesBundle/issues",
|
||||||
|
"source": "https://github.com/doctrine/DoctrineFixturesBundle/tree/3.4.2"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://www.doctrine-project.org/sponsorship.html",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://www.patreon.com/phpdoctrine",
|
||||||
|
"type": "patreon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-fixtures-bundle",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2022-04-28T17:58:29+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "masterminds/html5",
|
"name": "masterminds/html5",
|
||||||
"version": "2.7.6",
|
"version": "2.7.6",
|
||||||
|
|
|
@ -21,4 +21,5 @@ return [
|
||||||
FOS\RestBundle\FOSRestBundle::class => ['all' => true],
|
FOS\RestBundle\FOSRestBundle::class => ['all' => true],
|
||||||
Nelmio\ApiDocBundle\NelmioApiDocBundle::class => ['all' => true],
|
Nelmio\ApiDocBundle\NelmioApiDocBundle::class => ['all' => true],
|
||||||
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
|
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
|
||||||
|
Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true],
|
||||||
];
|
];
|
||||||
|
|
|
@ -738,6 +738,37 @@ app_modo_user_delete:
|
||||||
controller: App\Controller\UserController::delete
|
controller: App\Controller\UserController::delete
|
||||||
defaults: { access: modo }
|
defaults: { access: modo }
|
||||||
|
|
||||||
|
#-- Access manager
|
||||||
|
app_manager_user:
|
||||||
|
path: /manager/user
|
||||||
|
controller: App\Controller\UserController::list
|
||||||
|
defaults: { access: manager }
|
||||||
|
|
||||||
|
app_manager_user_tablelist:
|
||||||
|
path: /manager/user/tablelist
|
||||||
|
controller: App\Controller\UserController::tablelist
|
||||||
|
defaults: { access: manager }
|
||||||
|
|
||||||
|
app_manager_user_selectlist:
|
||||||
|
path: /manager/user/selectlist
|
||||||
|
controller: App\Controller\UserController::selectlist
|
||||||
|
defaults: { access: manager }
|
||||||
|
|
||||||
|
app_manager_user_submit:
|
||||||
|
path: /manager/user/submit
|
||||||
|
controller: App\Controller\UserController::submit
|
||||||
|
defaults: { access: manager }
|
||||||
|
|
||||||
|
app_manager_user_update:
|
||||||
|
path: /manager/user/update/{id}
|
||||||
|
controller: App\Controller\UserController::update
|
||||||
|
defaults: { access: manager }
|
||||||
|
|
||||||
|
app_manager_user_delete:
|
||||||
|
path: /manager/user/delete/{id}
|
||||||
|
controller: App\Controller\UserController::delete
|
||||||
|
defaults: { access: manager }
|
||||||
|
|
||||||
#-- Access all
|
#-- Access all
|
||||||
app_all_user:
|
app_all_user:
|
||||||
path: /all/update
|
path: /all/update
|
||||||
|
|
|
@ -40,6 +40,8 @@ parameters:
|
||||||
appAnnuscopemanager: '%env(resolve:APP_ANNUSCOPEMANAGER)%'
|
appAnnuscopemanager: '%env(resolve:APP_ANNUSCOPEMANAGER)%'
|
||||||
appAnnuscopeuser: '%env(resolve:APP_ANNUSCOPEUSER)%'
|
appAnnuscopeuser: '%env(resolve:APP_ANNUSCOPEUSER)%'
|
||||||
|
|
||||||
|
appUserviewisvisible: '%env(resolve:APP_USERVIEWISVISIBLE)%'
|
||||||
|
|
||||||
appSynchro: '%env(resolve:APP_SYNCHRO)%'
|
appSynchro: '%env(resolve:APP_SYNCHRO)%'
|
||||||
appSynchroPurgeNiveau01: '%env(resolve:APP_SYNDCHROPURGENIVEAU01)%'
|
appSynchroPurgeNiveau01: '%env(resolve:APP_SYNDCHROPURGENIVEAU01)%'
|
||||||
appSynchroPurgeNiveau02: '%env(resolve:APP_SYNDCHROPURGENIVEAU02)%'
|
appSynchroPurgeNiveau02: '%env(resolve:APP_SYNDCHROPURGENIVEAU02)%'
|
||||||
|
|
|
@ -8,19 +8,40 @@ use Symfony\Component\HttpFoundation\Response;
|
||||||
|
|
||||||
class HomeController extends AbstractController
|
class HomeController extends AbstractController
|
||||||
{
|
{
|
||||||
public function home(Request $request): Response
|
public function home(Request $request)
|
||||||
{
|
{
|
||||||
if ($request->getSession()->get('fgforceconnect')) {
|
if ($request->getSession()->get('fgforceconnect') && !$this->getUser()) {
|
||||||
return $this->redirectToRoute('app_user_home');
|
return $this->redirectToRoute('app_login');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!$this->getUser()) {
|
||||||
return $this->render('Home/home.html.twig', [
|
return $this->render('Home/home.html.twig', [
|
||||||
'useheader' => true,
|
'useheader' => true,
|
||||||
'usemenu' => true,
|
'usemenu' => false,
|
||||||
'usesidebar' => false,
|
'usesidebar' => false,
|
||||||
'maxsize' => 1000,
|
'maxsize' => 1000,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
if ($this->getUser()->hasRole('ROLE_USER')) {
|
||||||
|
return $this->redirectToRoute('app_user_home');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->getUser()->hasRole('ROLE_MANAGER')) {
|
||||||
|
return $this->redirectToRoute('app_manager_home');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->getUser()->hasRole('ROLE_MASTER')) {
|
||||||
|
return $this->redirectToRoute('app_master_home');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->getUser()->hasRole('ROLE_MODO')) {
|
||||||
|
return $this->redirectToRoute('app_modo_home');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->getUser()->hasRole('ROLE_ADMIN')) {
|
||||||
|
return $this->redirectToRoute('app_admin_home');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function homeuser($access): Response
|
public function homeuser($access): Response
|
||||||
{
|
{
|
||||||
|
@ -32,9 +53,19 @@ class HomeController extends AbstractController
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function homeadmin($access): Response
|
public function homemaster($access): Response
|
||||||
{
|
{
|
||||||
return $this->redirectToRoute('app_admin_config');
|
return $this->render('Home/home.html.twig', [
|
||||||
|
'useheader' => true,
|
||||||
|
'usemenu' => false,
|
||||||
|
'usesidebar' => false,
|
||||||
|
'maxsize' => 1000,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function homemanager($access): Response
|
||||||
|
{
|
||||||
|
return $this->redirectToRoute('app_manager_user');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function homemodo($access): Response
|
public function homemodo($access): Response
|
||||||
|
@ -42,6 +73,11 @@ class HomeController extends AbstractController
|
||||||
return $this->redirectToRoute('app_modo_niveau02');
|
return $this->redirectToRoute('app_modo_niveau02');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function homeadmin($access): Response
|
||||||
|
{
|
||||||
|
return $this->redirectToRoute('app_admin_config');
|
||||||
|
}
|
||||||
|
|
||||||
public function docrest(): Response
|
public function docrest(): Response
|
||||||
{
|
{
|
||||||
return $this->render('Home/docrest.html.twig', [
|
return $this->render('Home/docrest.html.twig', [
|
||||||
|
|
|
@ -72,14 +72,15 @@ class UserController extends AbstractController
|
||||||
->from("App\Entity\UserModo", 'usermodo')
|
->from("App\Entity\UserModo", 'usermodo')
|
||||||
->where('usermodo.niveau01 = entity.niveau01')
|
->where('usermodo.niveau01 = entity.niveau01')
|
||||||
->andWhere('usermodo.user = :user')
|
->andWhere('usermodo.user = :user')
|
||||||
->where('entity.isactive = :isactive')
|
->andwhere('entity.isactive = :isactive')
|
||||||
->setParameter('isactive', $isactive)
|
->setParameter('isactive', $isactive)
|
||||||
->setParameter('user', $this->getUser())
|
->setParameter('user', $this->getUser())
|
||||||
->getQuery()->getSingleScalarResult();
|
->getQuery()->getSingleScalarResult();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
$isactive = true;
|
$isactive = ('manager' == $access ? $em->getRepository($this->entity)->getPreference($this->getUser(), 'userisactive', true) : true);
|
||||||
|
|
||||||
$niveau01 = $this->getUser()->getNiveau01();
|
$niveau01 = $this->getUser()->getNiveau01();
|
||||||
$niveau02 = $this->getUser()->getNiveau02();
|
$niveau02 = $this->getUser()->getNiveau02();
|
||||||
$niveau03 = $this->getUser()->getNiveau03();
|
$niveau03 = $this->getUser()->getNiveau03();
|
||||||
|
@ -89,7 +90,7 @@ class UserController extends AbstractController
|
||||||
->select('COUNT(entity)')
|
->select('COUNT(entity)')
|
||||||
->from($this->entity, 'entity')
|
->from($this->entity, 'entity')
|
||||||
->where('entity.isvisible=true')
|
->where('entity.isvisible=true')
|
||||||
->where('entity.isactive = :isactive')
|
->andwhere('entity.isactive = :isactive')
|
||||||
->setParameter('isactive', $isactive);
|
->setParameter('isactive', $isactive);
|
||||||
|
|
||||||
switch ($request->getSession()->get('scopeannu')) {
|
switch ($request->getSession()->get('scopeannu')) {
|
||||||
|
@ -247,7 +248,7 @@ class UserController extends AbstractController
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($ordercolumn) {
|
if ($ordercolumn) {
|
||||||
if ('admin' == $access || 'modo' == $access) {
|
if ('admin' == $access || 'modo' == $access || 'manager' == $access) {
|
||||||
$ordercolumn = $ordercolumn - 1;
|
$ordercolumn = $ordercolumn - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -298,6 +299,15 @@ class UserController extends AbstractController
|
||||||
case 'modo':
|
case 'modo':
|
||||||
$action .= "<a href='".$this->generateUrl(str_replace('_admin_', '_modo_', $this->route).'_update', ['id' => $data->getId()])."'><i class='fa fa-file fa-fw fa-2x'></i></a>";
|
$action .= "<a href='".$this->generateUrl(str_replace('_admin_', '_modo_', $this->route).'_update', ['id' => $data->getId()])."'><i class='fa fa-file fa-fw fa-2x'></i></a>";
|
||||||
break;
|
break;
|
||||||
|
case 'manager':
|
||||||
|
if ($this->getUser()->getNiveau03() && $this->getUser()->getNiveau03() == $data->getNiveau03()) {
|
||||||
|
$action .= "<a href='".$this->generateUrl(str_replace('_admin_', '_manager_', $this->route).'_update', ['id' => $data->getId()])."'><i class='fa fa-file fa-fw fa-2x'></i></a>";
|
||||||
|
} elseif (!$this->getUser()->getNiveau03() && $this->getUser()->getNiveau02() && $this->getUser()->getNiveau02() == $data->getNiveau02()) {
|
||||||
|
$action .= "<a href='".$this->generateUrl(str_replace('_admin_', '_manager_', $this->route).'_update', ['id' => $data->getId()])."'><i class='fa fa-file fa-fw fa-2x'></i></a>";
|
||||||
|
} elseif (!$this->getUser()->getNiveau02() && $this->getUser()->getNiveau01() && $this->getUser()->getNiveau01() == $data->getNiveau01()) {
|
||||||
|
$action .= "<a href='".$this->generateUrl(str_replace('_admin_', '_manager_', $this->route).'_update', ['id' => $data->getId()])."'><i class='fa fa-file fa-fw fa-2x'></i></a>";
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Groupes
|
// Groupes
|
||||||
|
@ -313,7 +323,7 @@ class UserController extends AbstractController
|
||||||
}
|
}
|
||||||
|
|
||||||
$tmp = [];
|
$tmp = [];
|
||||||
if ('admin' == $access || 'modo' == $access) {
|
if ('admin' == $access || 'modo' == $access || 'manager' == $access) {
|
||||||
array_push($tmp, $action);
|
array_push($tmp, $action);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -381,6 +391,14 @@ class UserController extends AbstractController
|
||||||
$data->setIsactive(true);
|
$data->setIsactive(true);
|
||||||
$data->setApikey(Uuid::uuid4());
|
$data->setApikey(Uuid::uuid4());
|
||||||
|
|
||||||
|
// If manager set same niveau to usertosubmit
|
||||||
|
if ('manager' == $access) {
|
||||||
|
$data->setNiveau01($this->getUser()->getNiveau01());
|
||||||
|
$data->setNiveau02($this->getUser()->getNiveau02());
|
||||||
|
$data->setNiveau03($this->getUser()->getNiveau03());
|
||||||
|
$data->setRoles(['ROLE_USER']);
|
||||||
|
}
|
||||||
|
|
||||||
// Création du formulaire
|
// Création du formulaire
|
||||||
$form = $this->createForm(Form::class, $data, [
|
$form = $this->createForm(Form::class, $data, [
|
||||||
'mode' => 'submit',
|
'mode' => 'submit',
|
||||||
|
@ -395,6 +413,7 @@ class UserController extends AbstractController
|
||||||
'appNiveau04use' => $this->GetParameter('appNiveau04use'),
|
'appNiveau04use' => $this->GetParameter('appNiveau04use'),
|
||||||
'appNiveau04label' => $this->GetParameter('appNiveau04label'),
|
'appNiveau04label' => $this->GetParameter('appNiveau04label'),
|
||||||
'appNiveauupdatable' => $this->GetParameter('appNiveauupdatable'),
|
'appNiveauupdatable' => $this->GetParameter('appNiveauupdatable'),
|
||||||
|
'appUserviewisvisible' => $this->GetParameter('appUserviewisvisible'),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Récupération des data du formulaire
|
// Récupération des data du formulaire
|
||||||
|
@ -514,6 +533,7 @@ class UserController extends AbstractController
|
||||||
'appNiveau04use' => $this->GetParameter('appNiveau04use'),
|
'appNiveau04use' => $this->GetParameter('appNiveau04use'),
|
||||||
'appNiveau04label' => $this->GetParameter('appNiveau04label'),
|
'appNiveau04label' => $this->GetParameter('appNiveau04label'),
|
||||||
'appNiveauupdatable' => $this->GetParameter('appNiveauupdatable'),
|
'appNiveauupdatable' => $this->GetParameter('appNiveauupdatable'),
|
||||||
|
'appUserviewisvisible' => $this->GetParameter('appUserviewisvisible'),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Récupération des data du formulaire
|
// Récupération des data du formulaire
|
||||||
|
@ -678,6 +698,8 @@ class UserController extends AbstractController
|
||||||
break;
|
break;
|
||||||
case 'modo': return true;
|
case 'modo': return true;
|
||||||
break;
|
break;
|
||||||
|
case 'manager': return true;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
throw $this->createAccessDeniedException('Permission denied');
|
throw $this->createAccessDeniedException('Permission denied');
|
||||||
}
|
}
|
||||||
|
@ -687,6 +709,7 @@ class UserController extends AbstractController
|
||||||
switch ($access) {
|
switch ($access) {
|
||||||
case 'admin': return true;
|
case 'admin': return true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'modo':
|
case 'modo':
|
||||||
$usermodo = $em->getRepository("App\Entity\UserModo")->findOneBy(['user' => $this->getUser(), 'niveau01' => $entity->getNiveau01()]);
|
$usermodo = $em->getRepository("App\Entity\UserModo")->findOneBy(['user' => $this->getUser(), 'niveau01' => $entity->getNiveau01()]);
|
||||||
if (!$usermodo) {
|
if (!$usermodo) {
|
||||||
|
@ -695,6 +718,19 @@ class UserController extends AbstractController
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'manager':
|
||||||
|
if ($this->getUser()->getNiveau03() && $this->getUser()->getNiveau03() == $entity->getNiveau03()) {
|
||||||
|
return true;
|
||||||
|
} elseif ($this->getUser()->getNiveau02() && $this->getUser()->getNiveau02() == $entity->getNiveau02()) {
|
||||||
|
return true;
|
||||||
|
} elseif ($this->getUser()->getNiveau01() && $this->getUser()->getNiveau01() == $entity->getNiveau01()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw $this->createAccessDeniedException('Permission denied');
|
||||||
|
break;
|
||||||
|
|
||||||
case 'all':
|
case 'all':
|
||||||
if ($this->getUser()->getId() != $entity->getId()) {
|
if ($this->getUser()->getId() != $entity->getId()) {
|
||||||
throw $this->createAccessDeniedException('Permission denied');
|
throw $this->createAccessDeniedException('Permission denied');
|
||||||
|
|
|
@ -0,0 +1,340 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\DataFixtures;
|
||||||
|
|
||||||
|
use App\Entity\Niveau01;
|
||||||
|
use App\Entity\Niveau02;
|
||||||
|
use App\Entity\Niveau03;
|
||||||
|
use App\Entity\Niveau04;
|
||||||
|
use App\Entity\User;
|
||||||
|
use App\Entity\UserModo;
|
||||||
|
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||||
|
use Doctrine\ORM\Id\AssignedGenerator;
|
||||||
|
use Doctrine\ORM\Mapping\ClassMetadata;
|
||||||
|
use Doctrine\Persistence\ObjectManager;
|
||||||
|
use Symfony\Bundle\FrameworkBundle\Console\Application;
|
||||||
|
use Symfony\Component\Console\Input\ArrayInput;
|
||||||
|
use Symfony\Component\Console\Output\BufferedOutput;
|
||||||
|
use Symfony\Component\Console\Output\ConsoleOutput;
|
||||||
|
use Symfony\Component\HttpKernel\KernelInterface;
|
||||||
|
|
||||||
|
class AppFixtures extends Fixture
|
||||||
|
{
|
||||||
|
private $kernel;
|
||||||
|
private $output;
|
||||||
|
|
||||||
|
public function __construct(KernelInterface $kernel)
|
||||||
|
{
|
||||||
|
$this->kernel = $kernel;
|
||||||
|
$this->output = new ConsoleOutput();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function load(ObjectManager $manager): void
|
||||||
|
{
|
||||||
|
// app:Init
|
||||||
|
$this->writeln('app:Init');
|
||||||
|
$application = new Application($this->kernel);
|
||||||
|
$application->setAutoExit(false);
|
||||||
|
$input = new ArrayInput(['command' => 'app:Init']);
|
||||||
|
$boutput = new BufferedOutput();
|
||||||
|
$application->run($input, $boutput);
|
||||||
|
$manager->flush();
|
||||||
|
|
||||||
|
// app:Synchro
|
||||||
|
$manager->clear();
|
||||||
|
$this->writeln('app:Synchro');
|
||||||
|
$input = new ArrayInput(['command' => 'app:Synchro']);
|
||||||
|
$boutput = new BufferedOutput();
|
||||||
|
$application->run($input, $boutput);
|
||||||
|
|
||||||
|
// Assign id
|
||||||
|
$metadata = $manager->getClassMetaData('App\Entity\Niveau01');
|
||||||
|
$metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
|
||||||
|
$metadata->setIdGenerator(new AssignedGenerator());
|
||||||
|
|
||||||
|
$metadata = $manager->getClassMetaData('App\Entity\Niveau02');
|
||||||
|
$metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
|
||||||
|
$metadata->setIdGenerator(new AssignedGenerator());
|
||||||
|
|
||||||
|
$metadata = $manager->getClassMetaData('App\Entity\Niveau03');
|
||||||
|
$metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
|
||||||
|
$metadata->setIdGenerator(new AssignedGenerator());
|
||||||
|
|
||||||
|
$metadata = $manager->getClassMetaData('App\Entity\Niveau04');
|
||||||
|
$metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE);
|
||||||
|
$metadata->setIdGenerator(new AssignedGenerator());
|
||||||
|
|
||||||
|
// Niveau 01
|
||||||
|
$this->writeln('Niveau01');
|
||||||
|
$csv = file_get_contents($this->kernel->getProjectDir().'/src/DataFixtures/niveau01.csv');
|
||||||
|
$tab = $this->csv_to_array($csv);
|
||||||
|
foreach ($tab as $lig) {
|
||||||
|
$niveau01 = $manager->getRepository('App\Entity\Niveau01')->find($lig['id']);
|
||||||
|
if (!$niveau01) {
|
||||||
|
$niveau01 = new Niveau01();
|
||||||
|
$niveau01->setId($lig['id']);
|
||||||
|
$manager->persist($niveau01);
|
||||||
|
}
|
||||||
|
$niveau01->setLabel($lig['label']);
|
||||||
|
$niveau01->setCode($lig['code']);
|
||||||
|
$niveau01->setPostaladress($lig['postaladress']);
|
||||||
|
$niveau01->setTelephonenumber($lig['telephonenumber']);
|
||||||
|
$niveau01->setEmail($lig['email']);
|
||||||
|
$niveau01->setApikey($lig['apikey']);
|
||||||
|
|
||||||
|
$manager->flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Niveau 02
|
||||||
|
$this->writeln('Niveau02');
|
||||||
|
$csv = file_get_contents($this->kernel->getProjectDir().'/src/DataFixtures/niveau02.csv');
|
||||||
|
$tab = $this->csv_to_array($csv);
|
||||||
|
foreach ($tab as $lig) {
|
||||||
|
$niveau01 = $manager->getRepository('App\Entity\Niveau01')->findOneBy(['code' => $lig['codenv1']]);
|
||||||
|
if (!$niveau01) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$niveau02 = $manager->getRepository('App\Entity\Niveau02')->find($lig['id']);
|
||||||
|
if (!$niveau02) {
|
||||||
|
$niveau02 = new Niveau02();
|
||||||
|
$niveau02->setId($lig['id']);
|
||||||
|
$manager->persist($niveau02);
|
||||||
|
}
|
||||||
|
$niveau02->setLabel($lig['label']);
|
||||||
|
$niveau02->setCode($lig['code']);
|
||||||
|
$niveau02->setPostaladress($lig['postaladress']);
|
||||||
|
$niveau02->setTelephonenumber($lig['telephonenumber']);
|
||||||
|
$niveau02->setEmail($lig['email']);
|
||||||
|
$niveau02->setApikey($lig['apikey']);
|
||||||
|
$niveau02->setNiveau01($niveau01);
|
||||||
|
|
||||||
|
$manager->flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Niveau 03
|
||||||
|
$this->writeln('Niveau03');
|
||||||
|
$csv = file_get_contents($this->kernel->getProjectDir().'/src/DataFixtures/niveau03.csv');
|
||||||
|
$tab = $this->csv_to_array($csv);
|
||||||
|
foreach ($tab as $lig) {
|
||||||
|
$niveau02 = $manager->getRepository('App\Entity\Niveau02')->findOneBy(['code' => $lig['codenv2']]);
|
||||||
|
if (!$niveau02) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$niveau03 = $manager->getRepository('App\Entity\Niveau03')->find($lig['id']);
|
||||||
|
if (!$niveau03) {
|
||||||
|
$niveau03 = new Niveau03();
|
||||||
|
$niveau03->setId($lig['id']);
|
||||||
|
$manager->persist($niveau03);
|
||||||
|
}
|
||||||
|
$niveau03->setLabel($lig['label']);
|
||||||
|
$niveau03->setCode($lig['code']);
|
||||||
|
$niveau03->setPostaladress($lig['postaladress']);
|
||||||
|
$niveau03->setTelephonenumber($lig['telephonenumber']);
|
||||||
|
$niveau03->setEmail($lig['email']);
|
||||||
|
$niveau03->setApikey($lig['apikey']);
|
||||||
|
$niveau03->setNiveau02($niveau02);
|
||||||
|
|
||||||
|
$manager->flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Niveau 04
|
||||||
|
$this->writeln('Niveau04');
|
||||||
|
$csv = file_get_contents($this->kernel->getProjectDir().'/src/DataFixtures/niveau04.csv');
|
||||||
|
$tab = $this->csv_to_array($csv);
|
||||||
|
foreach ($tab as $lig) {
|
||||||
|
$niveau03 = $manager->getRepository('App\Entity\Niveau03')->findOneBy(['code' => $lig['codenv3']]);
|
||||||
|
if (!$niveau03) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$niveau04 = $manager->getRepository('App\Entity\Niveau04')->find($lig['id']);
|
||||||
|
if (!$niveau04) {
|
||||||
|
$niveau04 = new Niveau04();
|
||||||
|
$niveau04->setId($lig['id']);
|
||||||
|
$manager->persist($niveau04);
|
||||||
|
}
|
||||||
|
$niveau04->setLabel($lig['label']);
|
||||||
|
$niveau04->setCode($lig['code']);
|
||||||
|
$niveau04->setPostaladress($lig['postaladress']);
|
||||||
|
$niveau04->setTelephonenumber($lig['telephonenumber']);
|
||||||
|
$niveau04->setEmail($lig['email']);
|
||||||
|
$niveau04->setApikey($lig['apikey']);
|
||||||
|
$niveau04->setNiveau03($niveau03);
|
||||||
|
|
||||||
|
$manager->flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
// User MODO
|
||||||
|
$this->writeln('User Modo');
|
||||||
|
$userid = -99;
|
||||||
|
$usercpt = 0;
|
||||||
|
$niveau01s = $manager->getRepository('App\Entity\Niveau01')->findAll();
|
||||||
|
foreach ($niveau01s as $niveau01) {
|
||||||
|
$userid = $userid - 1;
|
||||||
|
$usercpt = $usercpt + 1;
|
||||||
|
$username = 'modo'.str_pad($usercpt, 3, '0', STR_PAD_LEFT);
|
||||||
|
|
||||||
|
$user = $manager->getRepository('App\Entity\User')->find($userid);
|
||||||
|
if (!$user) {
|
||||||
|
$user = new User();
|
||||||
|
$user->setId($userid);
|
||||||
|
$manager->persist($user);
|
||||||
|
|
||||||
|
$usermodo = new UserModo();
|
||||||
|
$usermodo->setUser($user);
|
||||||
|
$usermodo->setNiveau01($niveau01);
|
||||||
|
$manager->persist($usermodo);
|
||||||
|
}
|
||||||
|
|
||||||
|
$user->setUsername($username);
|
||||||
|
$user->setPassword($username);
|
||||||
|
$user->setRoles(['ROLE_MODO']);
|
||||||
|
$user->setFirstname(str_pad($usercpt, 3, '0', STR_PAD_LEFT));
|
||||||
|
$user->setLastname('Modo');
|
||||||
|
$user->setEmail($username.'@noreply.fr');
|
||||||
|
$user->setIsvisible(true);
|
||||||
|
$user->setIsactive(true);
|
||||||
|
$user->setAvatar('noavatar.png');
|
||||||
|
$user->setApikey($username);
|
||||||
|
$user->setNiveau01($niveau01);
|
||||||
|
|
||||||
|
$manager->flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
// User MASTER
|
||||||
|
$this->writeln('User Master');
|
||||||
|
$userid = -199;
|
||||||
|
$usercpt = 0;
|
||||||
|
$niveau02s = $manager->getRepository('App\Entity\Niveau02')->findAll();
|
||||||
|
foreach ($niveau02s as $niveau02) {
|
||||||
|
$userid = $userid - 1;
|
||||||
|
$usercpt = $usercpt + 1;
|
||||||
|
$username = 'master'.str_pad($usercpt, 3, '0', STR_PAD_LEFT);
|
||||||
|
|
||||||
|
$user = $manager->getRepository('App\Entity\User')->find($userid);
|
||||||
|
if (!$user) {
|
||||||
|
$user = new User();
|
||||||
|
$user->setId($userid);
|
||||||
|
$manager->persist($user);
|
||||||
|
}
|
||||||
|
|
||||||
|
$user->setUsername($username);
|
||||||
|
$user->setPassword($username);
|
||||||
|
$user->setRoles(['ROLE_MASTER']);
|
||||||
|
$user->setFirstname(str_pad($usercpt, 3, '0', STR_PAD_LEFT));
|
||||||
|
$user->setLastname('Master');
|
||||||
|
$user->setEmail($username.'@noreply.fr');
|
||||||
|
$user->setIsvisible(true);
|
||||||
|
$user->setIsactive(true);
|
||||||
|
$user->setAvatar('noavatar.png');
|
||||||
|
$user->setApikey($username);
|
||||||
|
$user->setNiveau01($niveau02->getNiveau01());
|
||||||
|
$user->setNiveau02($niveau02);
|
||||||
|
|
||||||
|
$manager->flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
// User MANAGER
|
||||||
|
$this->writeln('User Manager');
|
||||||
|
$userid = -299;
|
||||||
|
$usercpt = 0;
|
||||||
|
$niveau03s = $manager->getRepository('App\Entity\Niveau03')->findAll();
|
||||||
|
foreach ($niveau03s as $niveau03) {
|
||||||
|
$userid = $userid - 1;
|
||||||
|
$usercpt = $usercpt + 1;
|
||||||
|
$username = 'manager'.str_pad($usercpt, 3, '0', STR_PAD_LEFT);
|
||||||
|
|
||||||
|
$user = $manager->getRepository('App\Entity\User')->find($userid);
|
||||||
|
if (!$user) {
|
||||||
|
$user = new User();
|
||||||
|
$user->setId($userid);
|
||||||
|
$manager->persist($user);
|
||||||
|
}
|
||||||
|
|
||||||
|
$user->setUsername($username);
|
||||||
|
$user->setPassword($username);
|
||||||
|
$user->setRoles(['ROLE_MANAGER']);
|
||||||
|
$user->setFirstname(str_pad($usercpt, 3, '0', STR_PAD_LEFT));
|
||||||
|
$user->setLastname('Manager');
|
||||||
|
$user->setEmail($username.'@noreply.fr');
|
||||||
|
$user->setIsvisible(true);
|
||||||
|
$user->setIsactive(true);
|
||||||
|
$user->setAvatar('noavatar.png');
|
||||||
|
$user->setApikey($username);
|
||||||
|
$user->setNiveau01($niveau03->getNiveau02()->getNiveau01());
|
||||||
|
$user->setNiveau02($niveau03->getNiveau02());
|
||||||
|
$user->setNiveau03($niveau03);
|
||||||
|
|
||||||
|
$manager->flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
// User USER
|
||||||
|
$this->writeln('User User');
|
||||||
|
$userid = -399;
|
||||||
|
$usercpt = 0;
|
||||||
|
$niveau03s = $manager->getRepository('App\Entity\Niveau03')->findAll();
|
||||||
|
foreach ($niveau03s as $niveau03) {
|
||||||
|
$userid = $userid - 1;
|
||||||
|
$usercpt = $usercpt + 1;
|
||||||
|
$username = 'user'.str_pad($usercpt, 3, '0', STR_PAD_LEFT);
|
||||||
|
|
||||||
|
$user = $manager->getRepository('App\Entity\User')->find($userid);
|
||||||
|
if (!$user) {
|
||||||
|
$user = new User();
|
||||||
|
$user->setId($userid);
|
||||||
|
$manager->persist($user);
|
||||||
|
}
|
||||||
|
|
||||||
|
$user->setUsername($username);
|
||||||
|
$user->setPassword($username);
|
||||||
|
$user->setRoles(['ROLE_USER']);
|
||||||
|
$user->setFirstname(str_pad($usercpt, 3, '0', STR_PAD_LEFT));
|
||||||
|
$user->setLastname('User');
|
||||||
|
$user->setEmail($username.'@noreply.fr');
|
||||||
|
$user->setIsvisible(true);
|
||||||
|
$user->setIsactive(true);
|
||||||
|
$user->setAvatar('noavatar.png');
|
||||||
|
$user->setApikey($username);
|
||||||
|
$user->setNiveau01($niveau03->getNiveau02()->getNiveau01());
|
||||||
|
$user->setNiveau02($niveau03->getNiveau02());
|
||||||
|
$user->setNiveau03($niveau03);
|
||||||
|
|
||||||
|
$manager->flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
// app:Synchro
|
||||||
|
$manager->clear();
|
||||||
|
$this->writeln('app:Synchro');
|
||||||
|
$input = new ArrayInput(['command' => 'app:Synchro']);
|
||||||
|
$boutput = new BufferedOutput();
|
||||||
|
$application->run($input, $boutput);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function writeln($string)
|
||||||
|
{
|
||||||
|
$this->output->writeln(' <fg=yellow>></> <info>'.$string.'</info>');
|
||||||
|
}
|
||||||
|
|
||||||
|
private function csv_to_array($csv, $delimiter = ';', $enclosure = '', $escape = '\\', $terminator = "\n")
|
||||||
|
{
|
||||||
|
$r = [];
|
||||||
|
$rows = explode($terminator, trim($csv));
|
||||||
|
|
||||||
|
$names = array_shift($rows);
|
||||||
|
$names = str_getcsv($names, $delimiter, $enclosure, $escape);
|
||||||
|
$nc = count($names);
|
||||||
|
foreach ($rows as $row) {
|
||||||
|
if (trim($row)) {
|
||||||
|
$values = str_getcsv($row, $delimiter, $enclosure, $escape);
|
||||||
|
if (!$values) {
|
||||||
|
$values = array_fill(0, $nc, null);
|
||||||
|
}
|
||||||
|
@$r[] = array_combine($names, $values);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $r;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
id;label;code;postaladress;telephonenumber;email;apikey
|
||||||
|
-1;Nv01;Nv01;;;;Nv01
|
||||||
|
-2;Nv02;Nv02;;;;Nv02
|
||||||
|
-3;Nv03;Nv03;;;;Nv03
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
id;label;code;postaladress;telephonenumber;email;apikey;codenv1
|
||||||
|
-1;Nv01Nv01;Nv01Nv01;;;;Nv01Nv01;Nv01
|
||||||
|
-2;Nv01Nv02;Nv01Nv02;;;;Nv01Nv02;Nv01
|
||||||
|
-3;Nv02Nv01;Nv02Nv01;;;;Nv02Nv01;Nv02
|
||||||
|
-4;Nv02Nv02;Nv02Nv02;;;;Nv02Nv02;Nv02
|
||||||
|
-5;Nv03Nv01;Nv03Nv01;;;;Nv03Nv01;Nv03
|
||||||
|
-6;Nv03Nv02;Nv03Nv02;;;;Nv03Nv02;Nv03
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
id;label;code;postaladress;telephonenumber;email;apikey;codenv2
|
||||||
|
-1;Nv01Nv01Nv01;Nv01Nv01Nv01;;;;Nv01Nv01Nv01;Nv01Nv01
|
||||||
|
-2;Nv01Nv01Nv02;Nv01Nv01Nv02;;;;Nv01Nv01Nv02;Nv01Nv01
|
||||||
|
-3;Nv01Nv02Nv01;Nv01Nv02Nv01;;;;Nv01Nv02Nv01;Nv01Nv02
|
||||||
|
-4;Nv01Nv02Nv02;Nv01Nv02Nv02;;;;Nv01Nv02Nv02;Nv01Nv02
|
||||||
|
-5;Nv02Nv01Nv01;Nv02Nv01Nv01;;;;Nv02Nv01Nv01;Nv02Nv01
|
||||||
|
-6;Nv02Nv01Nv02;Nv02Nv01Nv02;;;;Nv02Nv01Nv02;Nv02Nv01
|
||||||
|
-7;Nv02Nv02Nv01;Nv02Nv02Nv01;;;;Nv02Nv02Nv01;Nv02Nv02
|
||||||
|
-8;Nv02Nv02Nv02;Nv02Nv02Nv02;;;;Nv02Nv02Nv02;Nv02Nv02
|
||||||
|
-9;Nv03Nv01Nv01;Nv03Nv01Nv01;;;;Nv03Nv01Nv01;Nv03Nv01
|
||||||
|
-10;Nv03Nv01Nv02;Nv03Nv01Nv02;;;;Nv03Nv01Nv02;Nv03Nv01
|
||||||
|
-11;Nv03Nv02Nv01;Nv03Nv02Nv01;;;;Nv03Nv02Nv01;Nv03Nv02
|
||||||
|
-12;Nv03Nv02Nv02;Nv03Nv02Nv02;;;;Nv03Nv02Nv02;Nv03Nv02
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
id;label;code;postaladress;telephonenumber;email;apikey;codenv3
|
||||||
|
-1;Nv01Nv01Nv01Nv01;Nv01Nv01Nv01Nv01;;;;Nv01Nv01Nv01Nv01;Nv01Nv01Nv01
|
||||||
|
-2;Nv01Nv01Nv01Nv02;Nv01Nv01Nv01Nv02;;;;Nv01Nv01Nv01Nv02;Nv01Nv01Nv01
|
||||||
|
-3;Nv01Nv01Nv02Nv01;Nv01Nv01Nv02Nv01;;;;Nv01Nv01Nv02Nv01;Nv01Nv01Nv02
|
||||||
|
-4;Nv01Nv01Nv02Nv02;Nv01Nv01Nv02Nv02;;;;Nv01Nv01Nv02Nv02;Nv01Nv01Nv02
|
||||||
|
-5;Nv01Nv02Nv01Nv01;Nv01Nv02Nv01Nv01;;;;Nv01Nv02Nv01Nv01;Nv01Nv02Nv01
|
||||||
|
-6;Nv01Nv02Nv01Nv02;Nv01Nv02Nv01Nv02;;;;Nv01Nv02Nv01Nv02;Nv01Nv02Nv01
|
||||||
|
-7;Nv01Nv02Nv02Nv01;Nv01Nv02Nv02Nv01;;;;Nv01Nv02Nv02Nv01;Nv01Nv02Nv02
|
||||||
|
-8;Nv01Nv02Nv02Nv02;Nv01Nv02Nv02Nv02;;;;Nv01Nv02Nv02Nv02;Nv01Nv02Nv02
|
||||||
|
-9;Nv02Nv01Nv01Nv01;Nv02Nv01Nv01Nv01;;;;Nv02Nv01Nv01Nv01;Nv02Nv01Nv01
|
||||||
|
-10;Nv02Nv01Nv01Nv02;Nv02Nv01Nv01Nv02;;;;Nv02Nv01Nv01Nv02;Nv02Nv01Nv01
|
||||||
|
-11;Nv02Nv01Nv02Nv01;Nv02Nv01Nv02Nv01;;;;Nv02Nv01Nv02Nv01;Nv02Nv01Nv02
|
||||||
|
-12;Nv02Nv01Nv02Nv02;Nv02Nv01Nv02Nv02;;;;Nv02Nv01Nv02Nv02;Nv02Nv01Nv02
|
||||||
|
-13;Nv02Nv02Nv01Nv01;Nv02Nv02Nv01Nv01;;;;Nv02Nv02Nv01Nv01;Nv02Nv02Nv01
|
||||||
|
-14;Nv02Nv02Nv01Nv02;Nv02Nv02Nv01Nv02;;;;Nv02Nv02Nv01Nv02;Nv02Nv02Nv01
|
||||||
|
-15;Nv02Nv02Nv02Nv01;Nv02Nv02Nv02Nv01;;;;Nv02Nv02Nv02Nv01;Nv02Nv02Nv02
|
||||||
|
-16;Nv02Nv02Nv02Nv02;Nv02Nv02Nv02Nv02;;;;Nv02Nv02Nv02Nv02;Nv02Nv02Nv02
|
||||||
|
-17;Nv03Nv01Nv01Nv01;Nv03Nv01Nv01Nv01;;;;Nv03Nv01Nv01Nv01;Nv03Nv01Nv01
|
||||||
|
-18;Nv03Nv01Nv01Nv02;Nv03Nv01Nv01Nv02;;;;Nv03Nv01Nv01Nv02;Nv03Nv01Nv01
|
||||||
|
-19;Nv03Nv01Nv02Nv01;Nv03Nv01Nv02Nv01;;;;Nv03Nv01Nv02Nv01;Nv03Nv01Nv02
|
||||||
|
-20;Nv03Nv01Nv02Nv02;Nv03Nv01Nv02Nv02;;;;Nv03Nv01Nv02Nv02;Nv03Nv01Nv02
|
||||||
|
-21;Nv03Nv02Nv01Nv01;Nv03Nv02Nv01Nv01;;;;Nv03Nv02Nv01Nv01;Nv03Nv02Nv01
|
||||||
|
-22;Nv03Nv02Nv01Nv02;Nv03Nv02Nv01Nv02;;;;Nv03Nv02Nv01Nv02;Nv03Nv02Nv01
|
||||||
|
-23;Nv03Nv02Nv02Nv01;Nv03Nv02Nv02Nv01;;;;Nv03Nv02Nv02Nv01;Nv03Nv02Nv02
|
||||||
|
-24;Nv03Nv02Nv02Nv02;Nv03Nv02Nv02Nv02;;;;Nv03Nv02Nv02Nv02;Nv03Nv02Nv02
|
|
|
@ -104,14 +104,6 @@ class Niveau01
|
||||||
*/
|
*/
|
||||||
private $modos;
|
private $modos;
|
||||||
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->niveau02s = new ArrayCollection();
|
|
||||||
$this->registrations = new ArrayCollection();
|
|
||||||
$this->users = new ArrayCollection();
|
|
||||||
$this->modos = new ArrayCollection();
|
|
||||||
}
|
|
||||||
|
|
||||||
// == CODE A NE PAS REGENERER
|
// == CODE A NE PAS REGENERER
|
||||||
public function setId(int $id): self
|
public function setId(int $id): self
|
||||||
{
|
{
|
||||||
|
@ -121,6 +113,14 @@ class Niveau01
|
||||||
}
|
}
|
||||||
// == FIN DU CODE A NE PAS REGENERER
|
// == FIN DU CODE A NE PAS REGENERER
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->niveau02s = new ArrayCollection();
|
||||||
|
$this->registrations = new ArrayCollection();
|
||||||
|
$this->users = new ArrayCollection();
|
||||||
|
$this->modos = new ArrayCollection();
|
||||||
|
}
|
||||||
|
|
||||||
public function getId(): ?int
|
public function getId(): ?int
|
||||||
{
|
{
|
||||||
return $this->id;
|
return $this->id;
|
||||||
|
|
|
@ -87,6 +87,15 @@ class Niveau02
|
||||||
*/
|
*/
|
||||||
private $users;
|
private $users;
|
||||||
|
|
||||||
|
// == CODE A NE PAS REGENERER
|
||||||
|
public function setId(int $id): self
|
||||||
|
{
|
||||||
|
$this->id = $id;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
// == FIN DU CODE A NE PAS REGENERER
|
||||||
|
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
$this->niveau03s = new ArrayCollection();
|
$this->niveau03s = new ArrayCollection();
|
||||||
|
|
|
@ -101,7 +101,14 @@ class Niveau03
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
// ==
|
|
||||||
|
public function setId(int $id): self
|
||||||
|
{
|
||||||
|
$this->id = $id;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
// == FIN DU CODE A NE PAS REGENERER
|
||||||
|
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
|
|
|
@ -108,7 +108,13 @@ class Niveau04
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ==
|
public function setId(int $id): self
|
||||||
|
{
|
||||||
|
$this->id = $id;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
// == FIN DU CODE A NE PAS REGENERER
|
||||||
|
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
|
|
|
@ -181,6 +181,7 @@ class UserType extends AbstractType
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (('all' != $access && 'manager' != $access) || $options['appUserviewisvisible']) {
|
||||||
$choices = ['oui' => '1', 'non' => '0'];
|
$choices = ['oui' => '1', 'non' => '0'];
|
||||||
$builder->add('isvisible',
|
$builder->add('isvisible',
|
||||||
ChoiceType::class, [
|
ChoiceType::class, [
|
||||||
|
@ -188,6 +189,7 @@ class UserType extends AbstractType
|
||||||
'choices' => $choices,
|
'choices' => $choices,
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
$builder->add('postaladress',
|
$builder->add('postaladress',
|
||||||
TextareaType::class, [
|
TextareaType::class, [
|
||||||
|
@ -285,6 +287,7 @@ class UserType extends AbstractType
|
||||||
'appNiveau04use' => 'string',
|
'appNiveau04use' => 'string',
|
||||||
'appNiveau04label' => 'string',
|
'appNiveau04label' => 'string',
|
||||||
'appNiveauupdatable' => 'string',
|
'appNiveauupdatable' => 'string',
|
||||||
|
'appUserviewisvisible' => 'string',
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,6 +44,10 @@ class AppSession
|
||||||
$session->set('colorbgbodydark-darkrgb', $this->hexToRgb($session->get('colorbgbodydark-darker')));
|
$session->set('colorbgbodydark-darkrgb', $this->hexToRgb($session->get('colorbgbodydark-darker')));
|
||||||
$session->set('colorbgbodydark-lightrgb', $this->hexToRgb($session->get('colorbgbodydark-lighter')));
|
$session->set('colorbgbodydark-lightrgb', $this->hexToRgb($session->get('colorbgbodydark-lighter')));
|
||||||
|
|
||||||
|
// Préférence par défaut
|
||||||
|
$session->set('fgheader', true);
|
||||||
|
$session->set('fgaudit', false);
|
||||||
|
|
||||||
// Current user
|
// Current user
|
||||||
$token = $this->token->getToken();
|
$token = $this->token->getToken();
|
||||||
if (!$token) {
|
if (!$token) {
|
||||||
|
@ -51,10 +55,6 @@ class AppSession
|
||||||
}
|
}
|
||||||
$curentuser = $token->getUser();
|
$curentuser = $token->getUser();
|
||||||
|
|
||||||
// Préférence par défaut
|
|
||||||
$session->set('fgheader', true);
|
|
||||||
$session->set('fgaudit', false);
|
|
||||||
|
|
||||||
// Préférence
|
// Préférence
|
||||||
if ('anon.' != $curentuser) {
|
if ('anon.' != $curentuser) {
|
||||||
$preference = $curentuser->getPreference();
|
$preference = $curentuser->getPreference();
|
||||||
|
|
12
symfony.lock
12
symfony.lock
|
@ -22,6 +22,18 @@
|
||||||
"src/Repository/.gitignore"
|
"src/Repository/.gitignore"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"doctrine/doctrine-fixtures-bundle": {
|
||||||
|
"version": "3.4",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "3.0",
|
||||||
|
"ref": "1f5514cfa15b947298df4d771e694e578d4c204d"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"src/DataFixtures/AppFixtures.php"
|
||||||
|
]
|
||||||
|
},
|
||||||
"doctrine/doctrine-migrations-bundle": {
|
"doctrine/doctrine-migrations-bundle": {
|
||||||
"version": "3.2",
|
"version": "3.2",
|
||||||
"recipe": {
|
"recipe": {
|
||||||
|
|
|
@ -13,5 +13,13 @@
|
||||||
{{ render(path("app_publish_sample",{id:2})) }}
|
{{ render(path("app_publish_sample",{id:2})) }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<div style="text-align:center">
|
||||||
|
<img src="{{ path('app_minio_image',{file:"logo/"~app.session.get("logolight")}) }}" style="height:120px;margin-top:10px;margin-bottom:20px;">
|
||||||
|
<h1 style="border:none">{{app.session.get('appname')}}</h1>
|
||||||
|
<div style="max-width:600px; text-align:justify; margin:auto ">{{app.session.get('appdescription')|raw}}</div>
|
||||||
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
{% block body %}
|
{% block body %}
|
||||||
{{ form_start(form) }}
|
{{ form_start(form) }}
|
||||||
<h1 class="page-header">
|
<h1 class="page-header">
|
||||||
{% if access=="admin" or access=="modo" %}
|
{% if access=="admin" or access=="modo" or access=="manager" %}
|
||||||
{% if mode=="update" %}
|
{% if mode=="update" %}
|
||||||
Modification Utilisateur = {{ user.username}}
|
Modification Utilisateur = {{ user.username}}
|
||||||
{% else %}
|
{% else %}
|
||||||
|
@ -191,7 +191,7 @@
|
||||||
{{ form_row(form.firstname) }}
|
{{ form_row(form.firstname) }}
|
||||||
{{ form_row(form.lastname) }}
|
{{ form_row(form.lastname) }}
|
||||||
{{ form_row(form.email) }}
|
{{ form_row(form.email) }}
|
||||||
{{ form_row(form.isvisible) }}
|
{%if form.isvisible is defined %}{{ form_row(form.isvisible) }}{%endif%}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
<table class="table table-striped table-bordered table-hover wrap" id="dataTables" style="width:100%; font-size:11px;">
|
<table class="table table-striped table-bordered table-hover wrap" id="dataTables" style="width:100%; font-size:11px;">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
{% if access=="admin" or access=="modo"%}
|
{% if access=="admin" or access=="modo" or access=="manager"%}
|
||||||
<th class="no-sort">Action</th>
|
<th class="no-sort">Action</th>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
@ -67,6 +67,9 @@
|
||||||
{% elseif access=="modo" %}
|
{% elseif access=="modo" %}
|
||||||
order: [[ 2, "asc" ]],
|
order: [[ 2, "asc" ]],
|
||||||
ajax: "{{ path('app_modo_user_tablelist') }}",
|
ajax: "{{ path('app_modo_user_tablelist') }}",
|
||||||
|
{% elseif access=="manager" %}
|
||||||
|
order: [[ 2, "asc" ]],
|
||||||
|
ajax: "{{ path('app_manager_user_tablelist') }}",
|
||||||
{% else %}
|
{% else %}
|
||||||
order: [[ 1, "asc" ]],
|
order: [[ 1, "asc" ]],
|
||||||
ajax: "{{ path('app_all_user_tablelist') }}",
|
ajax: "{{ path('app_all_user_tablelist') }}",
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html"; charset="utf-8" />
|
<meta http-equiv="Content-Type" content="text/html"; charset="utf-8" />
|
||||||
<title>{% block title %}{{app.session.get("appname")}}{% endblock %}</title>
|
<title>{% block title %}{{app.session.get("appname")}}{% endblock %}</title>
|
||||||
|
<meta name="description" content="{{app.session.get("appdescription")|striptags|raw}}">
|
||||||
|
|
||||||
<link rel="shortcut icon" href="{{ path('app_minio_image',{file:"logo/"~app.session.get("logodark")}) }}" />
|
<link rel="shortcut icon" href="{{ path('app_minio_image',{file:"logo/"~app.session.get("logodark")}) }}" />
|
||||||
|
|
||||||
|
|
||||||
|
@ -33,7 +35,7 @@
|
||||||
{{app.session.get("appname")}}
|
{{app.session.get("appname")}}
|
||||||
</a>
|
</a>
|
||||||
<br>
|
<br>
|
||||||
<small>{{app.session.get("appsubname")}}</small>
|
<small><a href="{{ path('app_home')}}">{{app.session.get("appsubname")}}</a></small>
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<div class="pe-3">
|
<div class="pe-3">
|
||||||
|
|
Loading…
Reference in New Issue