{"action":"created","comment":{"url":"https://api.github.com/repos/sonata-project/SonataUserBundle/pulls/comments/184877317","pull_request_review_id":116160851,"id":184877317,"diff_hunk":"@@ -0,0 +1,103 @@\n+<?php\n+\n+declare(strict_types=1);\n+\n+/*\n+ * This file is part of the Sonata Project package.\n+ *\n+ * (c) Thomas Rabaix <thomas.rabaix@sonata-project.org>\n+ *\n+ * For the full copyright and license information, please view the LICENSE\n+ * file that was distributed with this source code.\n+ */\n+\n+namespace Sonata\\UserBundle\\Form\\Type;\n+\n+use Sonata\\UserBundle\\Security\\RolesBuilder\\ExpandableRolesBuilderInterface;\n+use Symfony\\Component\\Form\\AbstractType;\n+use Symfony\\Component\\Form\\Extension\\Core\\Type\\ChoiceType;\n+use Symfony\\Component\\Form\\FormTypeInterface;\n+use Symfony\\Component\\OptionsResolver\\Options;\n+use Symfony\\Component\\OptionsResolver\\OptionsResolver;\n+\n+/**\n+ * @author Silas Joisten <silasjoisten@hotmail.de>\n+ */\n+final class RolesMatrixType extends AbstractType\n+{\n+    /**\n+     * @var RolesBuilderInterface\n+     */\n+    private $rolesBuilder;\n+\n+    public function __construct(ExpandableRolesBuilderInterface $rolesBuilder)","path":"src/Form/Type/RolesMatrixType.php","position":33,"original_position":33,"commit_id":"a14a3f62dbf59458e2c22b187fafa6018074c84e","original_commit_id":"a14a3f62dbf59458e2c22b187fafa6018074c84e","user":{"login":"kunicmarko20","id":13528674,"avatar_url":"https://avatars3.githubusercontent.com/u/13528674?v=4","gravatar_id":"","url":"https://api.github.com/users/kunicmarko20","html_url":"https://github.com/kunicmarko20","followers_url":"https://api.github.com/users/kunicmarko20/followers","following_url":"https://api.github.com/users/kunicmarko20/following{/other_user}","gists_url":"https://api.github.com/users/kunicmarko20/gists{/gist_id}","starred_url":"https://api.github.com/users/kunicmarko20/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kunicmarko20/subscriptions","organizations_url":"https://api.github.com/users/kunicmarko20/orgs","repos_url":"https://api.github.com/users/kunicmarko20/repos","events_url":"https://api.github.com/users/kunicmarko20/events{/privacy}","received_events_url":"https://api.github.com/users/kunicmarko20/received_events","type":"User","site_admin":false},"body":"Here we have `ExpandableRolesBuilderInterface` and comment on variable points to `RolesBuilderInterface`","created_at":"2018-04-29T09:45:35Z","updated_at":"2018-04-29T09:51:12Z","html_url":"https://github.com/sonata-project/SonataUserBundle/pull/1005#discussion_r184877317","pull_request_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/pulls/1005","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/sonata-project/SonataUserBundle/pulls/comments/184877317"},"html":{"href":"https://github.com/sonata-project/SonataUserBundle/pull/1005#discussion_r184877317"},"pull_request":{"href":"https://api.github.com/repos/sonata-project/SonataUserBundle/pulls/1005"}}},"pull_request":{"url":"https://api.github.com/repos/sonata-project/SonataUserBundle/pulls/1005","id":164586450,"html_url":"https://github.com/sonata-project/SonataUserBundle/pull/1005","diff_url":"https://github.com/sonata-project/SonataUserBundle/pull/1005.diff","patch_url":"https://github.com/sonata-project/SonataUserBundle/pull/1005.patch","issue_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/issues/1005","number":1005,"state":"open","locked":false,"title":"new RolesMatrixType to display available actions per admin as matrix","user":{"login":"silasjoisten","id":10114981,"avatar_url":"https://avatars2.githubusercontent.com/u/10114981?v=4","gravatar_id":"","url":"https://api.github.com/users/silasjoisten","html_url":"https://github.com/silasjoisten","followers_url":"https://api.github.com/users/silasjoisten/followers","following_url":"https://api.github.com/users/silasjoisten/following{/other_user}","gists_url":"https://api.github.com/users/silasjoisten/gists{/gist_id}","starred_url":"https://api.github.com/users/silasjoisten/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/silasjoisten/subscriptions","organizations_url":"https://api.github.com/users/silasjoisten/orgs","repos_url":"https://api.github.com/users/silasjoisten/repos","events_url":"https://api.github.com/users/silasjoisten/events{/privacy}","received_events_url":"https://api.github.com/users/silasjoisten/received_events","type":"User","site_admin":false},"body":"This is a rework of #871\r\n\r\n## Changelog\r\n\r\n```markdown\r\n### Added\r\n- Role permissions can now be displayed in a matrix view using the `Sonata\\UserBundle\\Form\\Type\\RolesMatrixType`\r\n```\r\n- [x] Update the tests\r\n- [x] Update the documentation\r\n- [x] Add an upgrade note\r\n- [x] docs for `show_in_role_matrix` needed\r\n- [x] use `private` instead of `protected`\r\n- [x] make classes `final`\r\n- [x] fix chmod of `tests/Form/Transformer/RestoreRolesTransformerTest.php`\r\n\r\n### Look & Feel\r\n\r\n<img width=\"1388\" alt=\"bildschirmfoto 2018-03-26 um 12 14 27\" src=\"https://user-images.githubusercontent.com/10114981/37908751-5b3cd97e-3109-11e8-9045-bcb4ada22c71.png\">\r\n\r\n","created_at":"2018-01-23T14:13:26Z","updated_at":"2018-04-29T09:51:12Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ec048686280c058f0d71627f7586ad37d2af1199","assignee":null,"assignees":[],"requested_reviewers":[{"login":"greg0ire","id":657779,"avatar_url":"https://avatars1.githubusercontent.com/u/657779?v=4","gravatar_id":"","url":"https://api.github.com/users/greg0ire","html_url":"https://github.com/greg0ire","followers_url":"https://api.github.com/users/greg0ire/followers","following_url":"https://api.github.com/users/greg0ire/following{/other_user}","gists_url":"https://api.github.com/users/greg0ire/gists{/gist_id}","starred_url":"https://api.github.com/users/greg0ire/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/greg0ire/subscriptions","organizations_url":"https://api.github.com/users/greg0ire/orgs","repos_url":"https://api.github.com/users/greg0ire/repos","events_url":"https://api.github.com/users/greg0ire/events{/privacy}","received_events_url":"https://api.github.com/users/greg0ire/received_events","type":"User","site_admin":false},{"login":"jordisala1991","id":1137485,"avatar_url":"https://avatars3.githubusercontent.com/u/1137485?v=4","gravatar_id":"","url":"https://api.github.com/users/jordisala1991","html_url":"https://github.com/jordisala1991","followers_url":"https://api.github.com/users/jordisala1991/followers","following_url":"https://api.github.com/users/jordisala1991/following{/other_user}","gists_url":"https://api.github.com/users/jordisala1991/gists{/gist_id}","starred_url":"https://api.github.com/users/jordisala1991/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jordisala1991/subscriptions","organizations_url":"https://api.github.com/users/jordisala1991/orgs","repos_url":"https://api.github.com/users/jordisala1991/repos","events_url":"https://api.github.com/users/jordisala1991/events{/privacy}","received_events_url":"https://api.github.com/users/jordisala1991/received_events","type":"User","site_admin":false},{"login":"core23","id":3440437,"avatar_url":"https://avatars1.githubusercontent.com/u/3440437?v=4","gravatar_id":"","url":"https://api.github.com/users/core23","html_url":"https://github.com/core23","followers_url":"https://api.github.com/users/core23/followers","following_url":"https://api.github.com/users/core23/following{/other_user}","gists_url":"https://api.github.com/users/core23/gists{/gist_id}","starred_url":"https://api.github.com/users/core23/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/core23/subscriptions","organizations_url":"https://api.github.com/users/core23/orgs","repos_url":"https://api.github.com/users/core23/repos","events_url":"https://api.github.com/users/core23/events{/privacy}","received_events_url":"https://api.github.com/users/core23/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":369793348,"url":"https://api.github.com/repos/sonata-project/SonataUserBundle/labels/minor","name":"minor","color":"009800","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/pulls/1005/commits","review_comments_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/pulls/1005/comments","review_comment_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/pulls/comments{/number}","comments_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/issues/1005/comments","statuses_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/statuses/a14a3f62dbf59458e2c22b187fafa6018074c84e","head":{"label":"silasjoisten:feature/user-role-matrix","ref":"feature/user-role-matrix","sha":"a14a3f62dbf59458e2c22b187fafa6018074c84e","user":{"login":"silasjoisten","id":10114981,"avatar_url":"https://avatars2.githubusercontent.com/u/10114981?v=4","gravatar_id":"","url":"https://api.github.com/users/silasjoisten","html_url":"https://github.com/silasjoisten","followers_url":"https://api.github.com/users/silasjoisten/followers","following_url":"https://api.github.com/users/silasjoisten/following{/other_user}","gists_url":"https://api.github.com/users/silasjoisten/gists{/gist_id}","starred_url":"https://api.github.com/users/silasjoisten/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/silasjoisten/subscriptions","organizations_url":"https://api.github.com/users/silasjoisten/orgs","repos_url":"https://api.github.com/users/silasjoisten/repos","events_url":"https://api.github.com/users/silasjoisten/events{/privacy}","received_events_url":"https://api.github.com/users/silasjoisten/received_events","type":"User","site_admin":false},"repo":{"id":118470867,"name":"SonataUserBundle","full_name":"silasjoisten/SonataUserBundle","owner":{"login":"silasjoisten","id":10114981,"avatar_url":"https://avatars2.githubusercontent.com/u/10114981?v=4","gravatar_id":"","url":"https://api.github.com/users/silasjoisten","html_url":"https://github.com/silasjoisten","followers_url":"https://api.github.com/users/silasjoisten/followers","following_url":"https://api.github.com/users/silasjoisten/following{/other_user}","gists_url":"https://api.github.com/users/silasjoisten/gists{/gist_id}","starred_url":"https://api.github.com/users/silasjoisten/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/silasjoisten/subscriptions","organizations_url":"https://api.github.com/users/silasjoisten/orgs","repos_url":"https://api.github.com/users/silasjoisten/repos","events_url":"https://api.github.com/users/silasjoisten/events{/privacy}","received_events_url":"https://api.github.com/users/silasjoisten/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/silasjoisten/SonataUserBundle","description":"Integrates the UserBundle into the Sonata Project","fork":true,"url":"https://api.github.com/repos/silasjoisten/SonataUserBundle","forks_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/forks","keys_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/teams","hooks_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/hooks","issue_events_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/issues/events{/number}","events_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/events","assignees_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/assignees{/user}","branches_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/branches{/branch}","tags_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/tags","blobs_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/statuses/{sha}","languages_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/languages","stargazers_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/stargazers","contributors_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/contributors","subscribers_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/subscribers","subscription_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/subscription","commits_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/issues/comments{/number}","contents_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/contents/{+path}","compare_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/merges","archive_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/downloads","issues_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/issues{/number}","pulls_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/pulls{/number}","milestones_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/milestones{/number}","notifications_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/labels{/name}","releases_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/releases{/id}","deployments_url":"https://api.github.com/repos/silasjoisten/SonataUserBundle/deployments","created_at":"2018-01-22T14:50:50Z","updated_at":"2018-01-22T14:50:52Z","pushed_at":"2018-04-26T07:28:10Z","git_url":"git://github.com/silasjoisten/SonataUserBundle.git","ssh_url":"git@github.com:silasjoisten/SonataUserBundle.git","clone_url":"https://github.com/silasjoisten/SonataUserBundle.git","svn_url":"https://github.com/silasjoisten/SonataUserBundle","homepage":"https://sonata-project.org/","size":2070,"stargazers_count":0,"watchers_count":0,"language":"PHP","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"4.x"}},"base":{"label":"sonata-project:4.x","ref":"4.x","sha":"14c44c3546525afdd27cb77dbb85d7d58bee923e","user":{"login":"sonata-project","id":404157,"avatar_url":"https://avatars0.githubusercontent.com/u/404157?v=4","gravatar_id":"","url":"https://api.github.com/users/sonata-project","html_url":"https://github.com/sonata-project","followers_url":"https://api.github.com/users/sonata-project/followers","following_url":"https://api.github.com/users/sonata-project/following{/other_user}","gists_url":"https://api.github.com/users/sonata-project/gists{/gist_id}","starred_url":"https://api.github.com/users/sonata-project/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sonata-project/subscriptions","organizations_url":"https://api.github.com/users/sonata-project/orgs","repos_url":"https://api.github.com/users/sonata-project/repos","events_url":"https://api.github.com/users/sonata-project/events{/privacy}","received_events_url":"https://api.github.com/users/sonata-project/received_events","type":"Organization","site_admin":false},"repo":{"id":1759883,"name":"SonataUserBundle","full_name":"sonata-project/SonataUserBundle","owner":{"login":"sonata-project","id":404157,"avatar_url":"https://avatars0.githubusercontent.com/u/404157?v=4","gravatar_id":"","url":"https://api.github.com/users/sonata-project","html_url":"https://github.com/sonata-project","followers_url":"https://api.github.com/users/sonata-project/followers","following_url":"https://api.github.com/users/sonata-project/following{/other_user}","gists_url":"https://api.github.com/users/sonata-project/gists{/gist_id}","starred_url":"https://api.github.com/users/sonata-project/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sonata-project/subscriptions","organizations_url":"https://api.github.com/users/sonata-project/orgs","repos_url":"https://api.github.com/users/sonata-project/repos","events_url":"https://api.github.com/users/sonata-project/events{/privacy}","received_events_url":"https://api.github.com/users/sonata-project/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/sonata-project/SonataUserBundle","description":"Integrates the UserBundle into the Sonata Project","fork":false,"url":"https://api.github.com/repos/sonata-project/SonataUserBundle","forks_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/forks","keys_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/teams","hooks_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/hooks","issue_events_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/issues/events{/number}","events_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/events","assignees_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/assignees{/user}","branches_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/branches{/branch}","tags_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/tags","blobs_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/statuses/{sha}","languages_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/languages","stargazers_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/stargazers","contributors_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/contributors","subscribers_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/subscribers","subscription_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/subscription","commits_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/issues/comments{/number}","contents_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/contents/{+path}","compare_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/merges","archive_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/downloads","issues_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/issues{/number}","pulls_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/pulls{/number}","milestones_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/milestones{/number}","notifications_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/labels{/name}","releases_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/releases{/id}","deployments_url":"https://api.github.com/repos/sonata-project/SonataUserBundle/deployments","created_at":"2011-05-17T08:33:49Z","updated_at":"2018-04-23T14:03:31Z","pushed_at":"2018-04-26T07:28:12Z","git_url":"git://github.com/sonata-project/SonataUserBundle.git","ssh_url":"git@github.com:sonata-project/SonataUserBundle.git","clone_url":"https://github.com/sonata-project/SonataUserBundle.git","svn_url":"https://github.com/sonata-project/SonataUserBundle","homepage":"https://sonata-project.org/","size":1816,"stargazers_count":223,"watchers_count":223,"language":"PHP","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":485,"mirror_url":null,"archived":false,"open_issues_count":31,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":485,"open_issues":31,"watchers":223,"default_branch":"4.x"}},"_links":{"self":{"href":"https://api.github.com/repos/sonata-project/SonataUserBundle/pulls/1005"},"html":{"href":"https://github.com/sonata-project/SonataUserBundle/pull/1005"},"issue":{"href":"https://api.github.com/repos/sonata-project/SonataUserBundle/issues/1005"},"comments":{"href":"https://api.github.com/repos/sonata-project/SonataUserBundle/issues/1005/comments"},"review_comments":{"href":"https://api.github.com/repos/sonata-project/SonataUserBundle/pulls/1005/comments"},"review_comment":{"href":"https://api.github.com/repos/sonata-project/SonataUserBundle/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/sonata-project/SonataUserBundle/pulls/1005/commits"},"statuses":{"href":"https://api.github.com/repos/sonata-project/SonataUserBundle/statuses/a14a3f62dbf59458e2c22b187fafa6018074c84e"}},"author_association":"NONE"}}
{"actor":{"display_login":"kunicmarko20"}}