From f1900b686eb8d7c41a940eede778234ac55086e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Tue, 6 Sep 2016 20:21:49 +0200 Subject: Added migration for user group Just a first draft of #805 --- app/DoctrineMigrations/Version20160906180558.php | 35 ++++++++++++++++++++++++ app/config/config.yml | 2 ++ app/config/routing.yml | 4 +++ src/Wallabag/UserBundle/Entity/Group.php | 20 ++++++++++++++ src/Wallabag/UserBundle/Entity/User.php | 12 ++++++-- 5 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 app/DoctrineMigrations/Version20160906180558.php create mode 100644 src/Wallabag/UserBundle/Entity/Group.php diff --git a/app/DoctrineMigrations/Version20160906180558.php b/app/DoctrineMigrations/Version20160906180558.php new file mode 100644 index 00000000..227bb20f --- /dev/null +++ b/app/DoctrineMigrations/Version20160906180558.php @@ -0,0 +1,35 @@ +addSql('CREATE TABLE `wallabag_group` (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, roles LONGTEXT NOT NULL, UNIQUE INDEX UNIQ_B2305B375E237E06 (name), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); + $this->addSql('CREATE TABLE wallabag_user_group (user_id INT NOT NULL, group_id INT NOT NULL, INDEX IDX_6E85169A76ED395 (user_id), INDEX IDX_6E85169FE54D947 (group_id), PRIMARY KEY(user_id, group_id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); + $this->addSql('ALTER TABLE wallabag_user_group ADD CONSTRAINT FK_6E85169A76ED395 FOREIGN KEY (user_id) REFERENCES `wallabag_user` (id)'); + $this->addSql('ALTER TABLE wallabag_user_group ADD CONSTRAINT FK_6E85169FE54D947 FOREIGN KEY (group_id) REFERENCES `wallabag_group` (id)'); + } + + /** + * @param Schema $schema + */ + public function down(Schema $schema) + { + $this->abortIf($this->connection->getDatabasePlatform()->getName() == 'sqlite', 'Migration can only be executed safely on \'mysql\'.'); + + $this->addSql('ALTER TABLE wallabag_user_group DROP FOREIGN KEY FK_6E85169FE54D947'); + $this->addSql('DROP TABLE `wallabag_group`'); + $this->addSql('DROP TABLE wallabag_user_group'); + } +} diff --git a/app/config/config.yml b/app/config/config.yml index 2bc5e3b3..f1d93aaa 100644 --- a/app/config/config.yml +++ b/app/config/config.yml @@ -178,6 +178,8 @@ fos_user: db_driver: orm firewall_name: secured_area user_class: Wallabag\UserBundle\Entity\User + group: + group_class: Wallabag\UserBundle\Entity\Group registration: confirmation: enabled: "%fosuser_confirmation%" diff --git a/app/config/routing.yml b/app/config/routing.yml index 0bd2d130..9c916f7d 100644 --- a/app/config/routing.yml +++ b/app/config/routing.yml @@ -41,6 +41,10 @@ homepage: fos_user: resource: "@FOSUserBundle/Resources/config/routing/all.xml" +fos_user_group: + resource: "@FOSUserBundle/Resources/config/routing/group.xml" + prefix: /group + fos_oauth_server_token: resource: "@FOSOAuthServerBundle/Resources/config/routing/token.xml" diff --git a/src/Wallabag/UserBundle/Entity/Group.php b/src/Wallabag/UserBundle/Entity/Group.php new file mode 100644 index 00000000..9145959d --- /dev/null +++ b/src/Wallabag/UserBundle/Entity/Group.php @@ -0,0 +1,20 @@ +