diff --git a/CHANGELOG.md b/CHANGELOG.md
index b79e475db..4b11bc76a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,4 +3,5 @@ Dev branches
============
- adding .gitlab-ci to upgrade automatically packagist (master)
+- adding fixtures for ACL and DocumentCategory
diff --git a/DataFixtures/ORM/LoadDocumentACL.php b/DataFixtures/ORM/LoadDocumentACL.php
new file mode 100644
index 000000000..c17e795e6
--- /dev/null
+++ b/DataFixtures/ORM/LoadDocumentACL.php
@@ -0,0 +1,92 @@
+
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+
+namespace Chill\DocStoreBundle\DataFixtures\ORM;
+
+use Doctrine\Common\DataFixtures\AbstractFixture;
+use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
+use Doctrine\Common\Persistence\ObjectManager;
+use Chill\MainBundle\DataFixtures\ORM\LoadPermissionsGroup;
+use Chill\MainBundle\Entity\RoleScope;
+use Chill\MainBundle\DataFixtures\ORM\LoadScopes;
+use Chill\DocStoreBundle\Security\Authorization\PersonDocumentVoter;
+
+/**
+ * Adding acl for person document
+ *
+ */
+class LoadDocumentACL extends AbstractFixture implements OrderedFixtureInterface
+{
+ public function getOrder()
+ {
+ return 35000;
+ }
+
+
+ public function load(ObjectManager $manager)
+ {
+ foreach (LoadPermissionsGroup::$refs as $permissionsGroupRef) {
+ $permissionsGroup = $this->getReference($permissionsGroupRef);
+ printf("processing permission group %s \n", $permissionsGroup->getName());
+ foreach (LoadScopes::$references as $scopeRef){
+ $scope = $this->getReference($scopeRef);
+ printf("processing scope %s \n", $scope->getName()['en']);
+ //create permission group
+ switch ($permissionsGroup->getName()) {
+ case 'social':
+ if ($scope->getName()['en'] === 'administrative') {
+ printf("denying power on administrative \n");
+ break 2; // we do not want any power on administrative
+ }
+ break;
+ case 'administrative':
+ case 'direction':
+ if (in_array($scope->getName()['en'], array('administrative', 'social'))) {
+ printf("denying power on %s\n", $scope->getName()['en']);
+ break 2; // we do not want any power on social or administrative
+ }
+ break;
+ }
+
+ printf("Adding Person report acl to %s "
+ . "permission group, scope '%s' \n",
+ $permissionsGroup->getName(), $scope->getName()['en']);
+ $roleScopeUpdate = (new RoleScope())
+ ->setRole(PersonDocumentVoter::CREATE)
+ ->setScope($scope);
+ $permissionsGroup->addRoleScope($roleScopeUpdate);
+ $roleScopeCreate = (new RoleScope())
+ ->setRole(PersonDocumentVoter::UPDATE)
+ ->setScope($scope);
+ $permissionsGroup->addRoleScope($roleScopeCreate);
+ $roleScopeDelete = (new RoleScope())
+ ->setRole(PersonDocumentVoter::DELETE)
+ ->setScope($scope);
+ $permissionsGroup->addRoleScope($roleScopeDelete);
+ $manager->persist($roleScopeUpdate);
+ $manager->persist($roleScopeCreate);
+ $manager->persist($roleScopeDelete);
+ }
+
+ }
+
+ $manager->flush();
+ }
+
+}
diff --git a/DataFixtures/ORM/LoadDocumentCategory.php b/DataFixtures/ORM/LoadDocumentCategory.php
new file mode 100644
index 000000000..37e55c5b7
--- /dev/null
+++ b/DataFixtures/ORM/LoadDocumentCategory.php
@@ -0,0 +1,60 @@
+
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+namespace Chill\DocStoreBundle\DataFixtures\ORM;
+
+use Doctrine\Common\DataFixtures\AbstractFixture;
+use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
+use Doctrine\Common\Persistence\ObjectManager;
+use Chill\DocStoreBundle\Entity\DocumentCategory;
+
+/**
+ *
+ *
+ */
+class LoadDocumentCategory extends AbstractFixture implements OrderedFixtureInterface
+{
+ public function getOrder()
+ {
+ return 35010;
+ }
+
+ public function load(ObjectManager $manager)
+ {
+ $category = (new DocumentCategory('chill-doc-store', 10))
+ ->setDocumentClass(\Chill\DocStoreBundle\Entity\PersonDocument::class)
+ ->setName([
+ 'fr' => "Document d'identité",
+ 'en' => "Identity"
+ ])
+ ;
+
+ $manager->persist($category);
+
+ $category = (new DocumentCategory('chill-doc-store', 20))
+ ->setDocumentClass(\Chill\DocStoreBundle\Entity\PersonDocument::class)
+ ->setName([
+ 'fr' => "Courrier reçu",
+ 'en' => "Received email"
+ ])
+ ;
+
+ $manager->persist($category);
+
+ $manager->flush();
+ }
+}
diff --git a/DependencyInjection/ChillDocStoreExtension.php b/DependencyInjection/ChillDocStoreExtension.php
index aae7c1a16..44141741e 100644
--- a/DependencyInjection/ChillDocStoreExtension.php
+++ b/DependencyInjection/ChillDocStoreExtension.php
@@ -29,7 +29,7 @@ class ChillDocStoreExtension extends Extension implements PrependExtensionInterf
$loader->load('services/media.yml');
$loader->load('services/controller.yml');
$loader->load('services/menu.yml');
-
+ $loader->load('services/fixtures.yml');
}
public function prepend(ContainerBuilder $container)
diff --git a/Entity/StoredObject.php b/Entity/StoredObject.php
index dde739ee1..e145ff1ab 100644
--- a/Entity/StoredObject.php
+++ b/Entity/StoredObject.php
@@ -129,17 +129,6 @@ class StoredObject implements AsyncFileInterface
return $this->getFilename();
}
- public function setAsyncFile(/*AsyncFileInterface*/ $async)
- {
- dump($async);
- //$this->setFilename($async->getObjectName());
- }
-
- public function getAsyncFile()
- {
- return $this;
- }
-
public function getKeyInfos()
{
return $this->keyInfos;
diff --git a/Resources/config/services/fixtures.yml b/Resources/config/services/fixtures.yml
new file mode 100644
index 000000000..c9bc451d6
--- /dev/null
+++ b/Resources/config/services/fixtures.yml
@@ -0,0 +1,4 @@
+services:
+ Chill\DocStoreBundle\DataFixtures\ORM\:
+ resource: ../../../DataFixtures/ORM
+ tags: [ 'doctrine.fixture.orm' ]