From 818eb8628b5513b115556cba94fe3ca3d45c1bf4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Laurent=20L=C3=A9cluse?= <laurent.lecluse@unicaen.fr>
Date: Fri, 29 Nov 2019 15:13:32 +0100
Subject: [PATCH] =?UTF-8?q?Nouveau=20champ=20pour=20savoir=20s'il=20faut?=
 =?UTF-8?q?=20rendre=20le=20r=C3=B4le=20accessible=20ou=20non=20de=20l'ext?=
 =?UTF-8?q?=C3=A9rieur?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 data/schema.sqlite.sql                     |  1 +
 data/schema_mysql.sql                      |  1 +
 data/schema_oracle.sql                     |  3 +-
 data/schema_postgresql.sql                 |  1 +
 src/UnicaenAuth/Entity/Db/AbstractRole.php | 32 ++++++++++++++++++++++
 5 files changed, 37 insertions(+), 1 deletion(-)

diff --git a/data/schema.sqlite.sql b/data/schema.sqlite.sql
index 0b95d01..d903a9e 100644
--- a/data/schema.sqlite.sql
+++ b/data/schema.sqlite.sql
@@ -18,6 +18,7 @@ CREATE TABLE IF NOT EXISTS user_role (
     is_default TINYINT(1) NOT NULL DEFAULT 0,
     parent_id INTEGER NULL DEFAULT NULL,
     ldap_filter varchar(255) DEFAULT NULL,
+    accessible_exterieur TINYINT(1) NOT NULL DEFAULT 1,
 
     FOREIGN KEY (parent_id) REFERENCES user_role (id) ON DELETE SET NULL
 );
diff --git a/data/schema_mysql.sql b/data/schema_mysql.sql
index c75b45c..e4f0890 100644
--- a/data/schema_mysql.sql
+++ b/data/schema_mysql.sql
@@ -20,6 +20,7 @@ CREATE TABLE IF NOT EXISTS user_role (
   is_default TINYINT(1) NOT NULL DEFAULT 0,
   parent_id INT(11) NULL DEFAULT NULL,
   ldap_filter varchar(255) CHARACTER SET utf8 DEFAULT NULL,
+  accessible_exterieur TINYINT(1) NOT NULL DEFAULT 1,
   PRIMARY KEY (id),
   UNIQUE INDEX unique_role (role_id ASC),
   INDEX idx_parent_id (parent_id ASC),
diff --git a/data/schema_oracle.sql b/data/schema_oracle.sql
index 0d3b7ad..c1ff9a3 100644
--- a/data/schema_oracle.sql
+++ b/data/schema_oracle.sql
@@ -18,9 +18,10 @@ create unique index USER_PASSWORD_RESET_TOKEN_UN on "USER" (PASSWORD_RESET_TOKEN
 CREATE TABLE USER_ROLE
 (	"ID" NUMBER(*,0) NOT NULL ENABLE,
 	 "ROLE_ID" VARCHAR2(64 CHAR) NOT NULL ENABLE,
-	 "IS_DEFAULT" NUMBER(38,0) NOT NULL ENABLE,
+	 "IS_DEFAULT" NUMBER(1) NOT NULL ENABLE,
 	 "PARENT_ID" NUMBER(*,0),
 	 "LDAP_FILTER" VARCHAR2(255) DEFAULT NULL,
+	 "ACCESSIBLE_EXTERIEUR" NUMBER(1) DEFAULT 1 NOT NULL ENABLE,
 	CONSTRAINT "USER_ROLE_PK" PRIMARY KEY ("ID"),
 	CONSTRAINT "USER_ROLE_ROLE_UN" UNIQUE ("ROLE_ID"),
 	CONSTRAINT "USER_ROLE_USER_ROLE_FK" FOREIGN KEY ("PARENT_ID") REFERENCES USER_ROLE ("ID") ENABLE
diff --git a/data/schema_postgresql.sql b/data/schema_postgresql.sql
index dbe59dc..8e88b34 100644
--- a/data/schema_postgresql.sql
+++ b/data/schema_postgresql.sql
@@ -18,6 +18,7 @@ CREATE TABLE user_role (
   is_default SMALLINT NOT NULL DEFAULT 0,
   parent_id BIGINT DEFAULT NULL,
   ldap_filter varchar(255) DEFAULT NULL,
+  accessible_exterieur SMALLINT NOT NULL DEFAULT 1,
   FOREIGN KEY (parent_id) REFERENCES user_role (id) ON DELETE SET NULL
 );
 CREATE UNIQUE INDEX user_role_roleid_unique ON user_role (role_id);
diff --git a/src/UnicaenAuth/Entity/Db/AbstractRole.php b/src/UnicaenAuth/Entity/Db/AbstractRole.php
index 55f838a..1df2dba 100644
--- a/src/UnicaenAuth/Entity/Db/AbstractRole.php
+++ b/src/UnicaenAuth/Entity/Db/AbstractRole.php
@@ -44,6 +44,12 @@ abstract class AbstractRole implements RoleInterface
      */
     protected $ldapFilter;
 
+    /**
+     * @var boolean
+     * @ORM\Column(name="accessible_exterieur", type="boolean", nullable=false)
+     */
+    protected $accessibleExterieur = true;
+
     /**
      * @var \Doctrine\Common\Collections\Collection
      * @ORM\ManyToMany(targetEntity="UnicaenAuth\Entity\Db\User")
@@ -178,6 +184,32 @@ abstract class AbstractRole implements RoleInterface
         return $this;
     }
 
+
+
+    /**
+     * @return bool
+     */
+    public function getAccessibleExterieur(): bool
+    {
+        return $this->accessibleExterieur;
+    }
+
+
+
+    /**
+     * @param bool $accessibleExterieur
+     *
+     * @return self
+     */
+    public function setAccessibleExterieur($accessibleExterieur): self
+    {
+        $this->accessibleExterieur = (bool)$accessibleExterieur;
+
+        return $this;
+    }
+
+    
+    
     /**
      * Get users.
      *
-- 
GitLab