From 449faa0c299d9f8c67cfd76e6a84856f2173dc81 Mon Sep 17 00:00:00 2001 From: Marc Jauvin Date: Sat, 15 Mar 2025 14:24:25 -0400 Subject: [PATCH 01/14] convert UserGroups controller --- controllers/UserGroups.php | 25 --------- .../{_list_toolbar.htm => _list_toolbar.php} | 0 controllers/usergroups/create.htm | 48 ---------------- controllers/usergroups/index.htm | 2 - controllers/usergroups/preview.htm | 19 ------- controllers/usergroups/update.htm | 56 ------------------- 6 files changed, 150 deletions(-) rename controllers/usergroups/{_list_toolbar.htm => _list_toolbar.php} (100%) delete mode 100644 controllers/usergroups/create.htm delete mode 100644 controllers/usergroups/index.htm delete mode 100644 controllers/usergroups/preview.htm delete mode 100644 controllers/usergroups/update.htm diff --git a/controllers/UserGroups.php b/controllers/UserGroups.php index 5b57202..23bfb5d 100644 --- a/controllers/UserGroups.php +++ b/controllers/UserGroups.php @@ -18,33 +18,8 @@ class UserGroups extends Controller \Backend\Behaviors\ListController::class ]; - /** - * @var array `FormController` configuration. - */ - public $formConfig = 'config_form.yaml'; - - /** - * @var array `ListController` configuration. - */ - public $listConfig = 'config_list.yaml'; - - /** - * @var array `RelationController` configuration, by extension. - */ - public $relationConfig; - /** * @var array Permissions required to view this page. */ public $requiredPermissions = ['winter.users.access_groups']; - - /** - * Constructor. - */ - public function __construct() - { - parent::__construct(); - - BackendMenu::setContext('Winter.User', 'user', 'usergroups'); - } } diff --git a/controllers/usergroups/_list_toolbar.htm b/controllers/usergroups/_list_toolbar.php similarity index 100% rename from controllers/usergroups/_list_toolbar.htm rename to controllers/usergroups/_list_toolbar.php diff --git a/controllers/usergroups/create.htm b/controllers/usergroups/create.htm deleted file mode 100644 index 1b11930..0000000 --- a/controllers/usergroups/create.htm +++ /dev/null @@ -1,48 +0,0 @@ - - - - -fatalError): ?> - - 'layout']) ?> - -
- formRender() ?> -
- -
-
- - - - - -
-
- - - - - -

fatalError) ?>

-

- - diff --git a/controllers/usergroups/index.htm b/controllers/usergroups/index.htm deleted file mode 100644 index 766877d..0000000 --- a/controllers/usergroups/index.htm +++ /dev/null @@ -1,2 +0,0 @@ - -listRender() ?> diff --git a/controllers/usergroups/preview.htm b/controllers/usergroups/preview.htm deleted file mode 100644 index f572bd7..0000000 --- a/controllers/usergroups/preview.htm +++ /dev/null @@ -1,19 +0,0 @@ - - - - -fatalError): ?> - -
- formRenderPreview() ?> -
- - - -

fatalError) ?>

-

Return to user groups list

- - \ No newline at end of file diff --git a/controllers/usergroups/update.htm b/controllers/usergroups/update.htm deleted file mode 100644 index 7032faf..0000000 --- a/controllers/usergroups/update.htm +++ /dev/null @@ -1,56 +0,0 @@ - - - - -fatalError): ?> - - 'layout']) ?> - -
- formRender() ?> -
- -
-
- - - - - - -
-
- - - - - -

fatalError) ?>

-

- - From 4bf5e1ddf8198c975c97a20fe3806dbbf13fbb4b Mon Sep 17 00:00:00 2001 From: Marc Jauvin Date: Sat, 15 Mar 2025 14:59:22 -0400 Subject: [PATCH 02/14] convert users controller --- controllers/Users.php | 31 +------- ...guest_form.htm => _convert_guest_form.php} | 0 ...{_hint_activate.htm => _hint_activate.php} | 0 .../{_hint_banned.htm => _hint_banned.php} | 0 .../{_hint_guest.htm => _hint_guest.php} | 0 .../{_hint_trashed.htm => _hint_trashed.php} | 0 .../{_list_toolbar.htm => _list_toolbar.php} | 0 ...scoreboard.htm => _preview_scoreboard.php} | 0 ...eview_toolbar.htm => _preview_toolbar.php} | 0 controllers/users/create.htm | 64 ----------------- controllers/users/index.htm | 2 - .../users/{preview.htm => preview.php} | 0 controllers/users/update.htm | 72 ------------------- 13 files changed, 2 insertions(+), 167 deletions(-) rename controllers/users/{_convert_guest_form.htm => _convert_guest_form.php} (100%) rename controllers/users/{_hint_activate.htm => _hint_activate.php} (100%) rename controllers/users/{_hint_banned.htm => _hint_banned.php} (100%) rename controllers/users/{_hint_guest.htm => _hint_guest.php} (100%) rename controllers/users/{_hint_trashed.htm => _hint_trashed.php} (100%) rename controllers/users/{_list_toolbar.htm => _list_toolbar.php} (100%) rename controllers/users/{_preview_scoreboard.htm => _preview_scoreboard.php} (100%) rename controllers/users/{_preview_toolbar.htm => _preview_toolbar.php} (100%) delete mode 100644 controllers/users/create.htm delete mode 100644 controllers/users/index.htm rename controllers/users/{preview.htm => preview.php} (100%) delete mode 100644 controllers/users/update.htm diff --git a/controllers/Users.php b/controllers/Users.php index ec3f86d..8db4f7d 100644 --- a/controllers/Users.php +++ b/controllers/Users.php @@ -5,10 +5,7 @@ use Flash; use Response; use Redirect; -use BackendMenu; -use BackendAuth; use Backend\Classes\Controller; -use System\Classes\SettingsManager; use Winter\User\Models\User; use Winter\User\Models\UserGroup; use Winter\User\Models\MailBlocker; @@ -24,41 +21,17 @@ class Users extends Controller \Backend\Behaviors\ListController::class ]; - /** - * @var array `FormController` configuration. - */ - public $formConfig = 'config_form.yaml'; - - /** - * @var array `ListController` configuration. - */ - public $listConfig = 'config_list.yaml'; - - /** - * @var array `RelationController` configuration, by extension. - */ - public $relationConfig; - /** * @var array Permissions required to view this page. */ public $requiredPermissions = ['winter.users.access_users']; /** - * @var string HTML body tag class + * @var string formL */ public $bodyClass = 'compact-container'; - /** - * Constructor. - */ - public function __construct() - { - parent::__construct(); - - BackendMenu::setContext('Winter.User', 'user', 'users'); - SettingsManager::setContext('Winter.User', 'settings'); - } + public $formLayout = 'sidebar'; public function index() { diff --git a/controllers/users/_convert_guest_form.htm b/controllers/users/_convert_guest_form.php similarity index 100% rename from controllers/users/_convert_guest_form.htm rename to controllers/users/_convert_guest_form.php diff --git a/controllers/users/_hint_activate.htm b/controllers/users/_hint_activate.php similarity index 100% rename from controllers/users/_hint_activate.htm rename to controllers/users/_hint_activate.php diff --git a/controllers/users/_hint_banned.htm b/controllers/users/_hint_banned.php similarity index 100% rename from controllers/users/_hint_banned.htm rename to controllers/users/_hint_banned.php diff --git a/controllers/users/_hint_guest.htm b/controllers/users/_hint_guest.php similarity index 100% rename from controllers/users/_hint_guest.htm rename to controllers/users/_hint_guest.php diff --git a/controllers/users/_hint_trashed.htm b/controllers/users/_hint_trashed.php similarity index 100% rename from controllers/users/_hint_trashed.htm rename to controllers/users/_hint_trashed.php diff --git a/controllers/users/_list_toolbar.htm b/controllers/users/_list_toolbar.php similarity index 100% rename from controllers/users/_list_toolbar.htm rename to controllers/users/_list_toolbar.php diff --git a/controllers/users/_preview_scoreboard.htm b/controllers/users/_preview_scoreboard.php similarity index 100% rename from controllers/users/_preview_scoreboard.htm rename to controllers/users/_preview_scoreboard.php diff --git a/controllers/users/_preview_toolbar.htm b/controllers/users/_preview_toolbar.php similarity index 100% rename from controllers/users/_preview_toolbar.htm rename to controllers/users/_preview_toolbar.php diff --git a/controllers/users/create.htm b/controllers/users/create.htm deleted file mode 100644 index d8af81a..0000000 --- a/controllers/users/create.htm +++ /dev/null @@ -1,64 +0,0 @@ - - - - -fatalError): ?> - - - -
- formRenderOutsideFields() ?> -
-
- formRenderPrimaryTabs() ?> -
- -
-
- - - - - -
-
- - - - -
formRenderSecondaryTabs() ?>
- - - - 'layout stretch']) ?> - makeLayout('form-with-sidebar') ?> - - - - -
- -
-
-

fatalError)) ?>

-

-
- diff --git a/controllers/users/index.htm b/controllers/users/index.htm deleted file mode 100644 index 766877d..0000000 --- a/controllers/users/index.htm +++ /dev/null @@ -1,2 +0,0 @@ - -listRender() ?> diff --git a/controllers/users/preview.htm b/controllers/users/preview.php similarity index 100% rename from controllers/users/preview.htm rename to controllers/users/preview.php diff --git a/controllers/users/update.htm b/controllers/users/update.htm deleted file mode 100644 index 40035ce..0000000 --- a/controllers/users/update.htm +++ /dev/null @@ -1,72 +0,0 @@ - - - - -fatalError): ?> - - - -
- formRenderOutsideFields() ?> -
- -
- formRenderPrimaryTabs() ?> -
- -
-
- - - - - - -
-
- - - - -
formRenderSecondaryTabs() ?>
- - - - 'layout stretch']) ?> - makeLayout('form-with-sidebar') ?> - - - - -
- -
-
-

fatalError)) ?>

-

-
- From d9d826c8a34781fb4c1ad92e4b4dedaa1ac3ee60 Mon Sep 17 00:00:00 2001 From: Marc Jauvin Date: Sat, 15 Mar 2025 15:14:50 -0400 Subject: [PATCH 03/14] fix docstring --- controllers/Users.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/Users.php b/controllers/Users.php index 8db4f7d..25c9921 100644 --- a/controllers/Users.php +++ b/controllers/Users.php @@ -27,7 +27,7 @@ class Users extends Controller public $requiredPermissions = ['winter.users.access_users']; /** - * @var string formL + * @var string HTML body tag class */ public $bodyClass = 'compact-container'; From c86ff659879d293c92b4a8fc97dcbdce8e260386 Mon Sep 17 00:00:00 2001 From: Marc Jauvin Date: Sat, 15 Mar 2025 15:40:10 -0400 Subject: [PATCH 04/14] reuse markup from default views --- controllers/users/preview.php | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/controllers/users/preview.php b/controllers/users/preview.php index 3c5ee41..a81fd20 100644 --- a/controllers/users/preview.php +++ b/controllers/users/preview.php @@ -1,8 +1,5 @@ -
    -
  • -
  • pageTitle)) ?>
  • -
+ makeLayoutPartial('breadcrumb') ?> fatalError): ?> @@ -31,14 +28,12 @@ -
- formRender(['preview' => true, 'section' => 'outside']) ?> -
- -
- formRender(['preview' => true, 'section' => 'primary']) ?> +
+
+ formRenderOutsideFields() ?> + formRenderPrimaryTabs() ?> +
- From 3b1dc25ac51fee2fd3ed9f5fc197b0c67c0fb126 Mon Sep 17 00:00:00 2001 From: Marc Jauvin Date: Sat, 15 Mar 2025 15:42:07 -0400 Subject: [PATCH 05/14] remove empty lines --- controllers/users/preview.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/controllers/users/preview.php b/controllers/users/preview.php index a81fd20..65a46d6 100644 --- a/controllers/users/preview.php +++ b/controllers/users/preview.php @@ -3,9 +3,7 @@ fatalError): ?> - - is_guest): ?> makePartial('hint_guest') ?> isBanned()): ?> From 7a82c8b5e7df42b14881a3a66972850dbb982319 Mon Sep 17 00:00:00 2001 From: Marc Jauvin Date: Sat, 15 Mar 2025 15:46:02 -0400 Subject: [PATCH 06/14] remove layout div --- controllers/users/preview.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/controllers/users/preview.php b/controllers/users/preview.php index 65a46d6..4183ec7 100644 --- a/controllers/users/preview.php +++ b/controllers/users/preview.php @@ -26,11 +26,9 @@
-
-
- formRenderOutsideFields() ?> - formRenderPrimaryTabs() ?> -
+
+ formRenderOutsideFields() ?> + formRenderPrimaryTabs() ?>
From 40b12cf4a1bc33bed5a0447de2ac7568077e4c40 Mon Sep 17 00:00:00 2001 From: Marc Jauvin Date: Tue, 18 Mar 2025 08:03:48 -0400 Subject: [PATCH 07/14] add configs back in case the plugin is extended --- controllers/Users.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/controllers/Users.php b/controllers/Users.php index 25c9921..bf11f52 100644 --- a/controllers/Users.php +++ b/controllers/Users.php @@ -21,6 +21,21 @@ class Users extends Controller \Backend\Behaviors\ListController::class ]; + /** + * @var array `FormController` configuration. + */ + public $formConfig = 'config_form.yaml'; + + /** + * @var array `ListController` configuration. + */ + public $listConfig = 'config_list.yaml'; + + /** + * @var array `RelationController` configuration, by extension. + */ + public $relationConfig; + /** * @var array Permissions required to view this page. */ From 5415a6a87aa2c5a078182fa0154db4158211a8f3 Mon Sep 17 00:00:00 2001 From: Marc Jauvin Date: Fri, 2 May 2025 21:40:08 -0400 Subject: [PATCH 08/14] add winter 1.2.8 dependency --- composer.json | 1 + 1 file changed, 1 insertion(+) diff --git a/composer.json b/composer.json index aff5c3d..e41b52c 100644 --- a/composer.json +++ b/composer.json @@ -29,6 +29,7 @@ }, "require": { "php": ">=7.2", + "winter/wn-backend-module": "~1.2.8", "composer/installers": "~1.0" }, "replace": { From 367b87331b3bbb70d715cd096406c71e459a5c9e Mon Sep 17 00:00:00 2001 From: Marc Jauvin Date: Thu, 8 May 2025 09:28:04 -0400 Subject: [PATCH 09/14] Try out new Setup Winter action --- .github/workflows/tests.yml | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c1abcb5..8f31d6e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -30,26 +30,13 @@ jobs: extensions: curl, fileinfo, gd, mbstring, openssl, pdo, pdo_sqlite, sqlite3, xml, zip steps: - - name: Checkout Winter CMS - uses: actions/checkout@v4 - with: - repository: wintercms/winter - ref: ${{ matrix.winterBranch }} - - - name: Checkout changes - uses: actions/checkout@v2 - with: - path: plugins/winter/user - - - name: Install PHP - uses: shivammathur/setup-php@v2 + - name: Setup Winter + uses: wintercms/setup-winter-action@v1 with: php-version: ${{ matrix.phpVersion }} - tools: composer:v2 - extensions: ${{ env.extensions }} - - - name: Install Composer dependencies - run: composer install --no-interaction --no-progress --no-scripts + winter-ref: ${{ matrix.winterBranch }} + plugin-author: winter + plugin-name: user - name: Run linting run: ./vendor/bin/parallel-lint plugins/winter/user From e167ecd4ca02d381850b97b63bd4806632298fd1 Mon Sep 17 00:00:00 2001 From: Marc Jauvin Date: Fri, 9 May 2025 14:17:49 -0400 Subject: [PATCH 10/14] use partial in form model fields definition --- controllers/users/_preview_scoreboard.php | 79 ++++++------ controllers/users/_preview_status.php | 10 ++ controllers/users/_preview_toolbar.php | 139 +++++++++++----------- controllers/users/preview.php | 52 -------- models/user/fields.yaml | 15 +++ 5 files changed, 139 insertions(+), 156 deletions(-) create mode 100644 controllers/users/_preview_status.php delete mode 100644 controllers/users/preview.php diff --git a/controllers/users/_preview_scoreboard.php b/controllers/users/_preview_scoreboard.php index f0ce76a..2619b87 100644 --- a/controllers/users/_preview_scoreboard.php +++ b/controllers/users/_preview_scoreboard.php @@ -1,40 +1,45 @@ -
-

- name): ?> -

name) ?>

- -

- -

- - email) ?> - -

-
-created_at): ?> -
-

-

- created_at->toFormattedDateString() ?> -

-

- Status: - is_guest): ?> - - is_activated): ?> - +

+
+
+

+ name): ?> +

name) ?>

- +

-

-
- -last_seen): ?> -
-

-

last_seen->diffForHumans() ?>

-

- isOnline() ? e(trans('winter.user::lang.user.is_online')) : e(trans('winter.user::lang.user.is_offline')) ?> -

+

+ + email) ?> + +

+
+ created_at): ?> +
+

+

+ created_at->toFormattedDateString() ?> +

+

+ Status: + is_guest): ?> + + is_activated): ?> + + + + +

+
+ + last_seen): ?> +
+

+

last_seen->diffForHumans() ?>

+

+ isOnline() ? e(trans('winter.user::lang.user.is_online')) : e(trans('winter.user::lang.user.is_offline')) ?> +

+
+
- +
+ diff --git a/controllers/users/_preview_status.php b/controllers/users/_preview_status.php new file mode 100644 index 0000000..83eae2c --- /dev/null +++ b/controllers/users/_preview_status.php @@ -0,0 +1,10 @@ + is_guest): ?> + makePartial('hint_guest') ?> + isBanned()): ?> + makePartial('hint_banned') ?> + trashed()): ?> + makePartial('hint_trashed') ?> + is_activated): ?> + makePartial('hint_activate') ?> + + diff --git a/controllers/users/_preview_toolbar.php b/controllers/users/_preview_toolbar.php index 40888a3..923904a 100644 --- a/controllers/users/_preview_toolbar.php +++ b/controllers/users/_preview_toolbar.php @@ -1,71 +1,76 @@ - - - - - - -user->hasAccess('winter.users.impersonate_user')): ?> - - - - +
+
+ + + + + + + user->hasAccess('winter.users.impersonate_user')): ?> + + + + -isSuspended()): ?> - - - - + isSuspended()): ?> + + + + - - - Deactivate - - - Ban user - - - Delete - + + + Deactivate + + + Ban user + + + Delete + +
+ */ + ?> + + makePartial('~/path/to/partial'); + * }); + * + */ + $this->fireViewEvent('winter.user.view.extendPreviewToolbar', [ + 'record' => $formModel + ]); + ?> +
-*/ -?> -makePartial('~/path/to/partial'); - * }); - * - */ - $this->fireViewEvent('winter.user.view.extendPreviewToolbar', [ - 'record' => $formModel - ]); -?> diff --git a/controllers/users/preview.php b/controllers/users/preview.php deleted file mode 100644 index 4183ec7..0000000 --- a/controllers/users/preview.php +++ /dev/null @@ -1,52 +0,0 @@ - - makeLayoutPartial('breadcrumb') ?> - - -fatalError): ?> - - is_guest): ?> - makePartial('hint_guest') ?> - isBanned()): ?> - makePartial('hint_banned') ?> - trashed()): ?> - makePartial('hint_trashed') ?> - is_activated): ?> - makePartial('hint_activate') ?> - - -
-
- makePartial('preview_scoreboard') ?> -
-
- -
-
- makePartial('preview_toolbar') ?> -
-
- -
- formRenderOutsideFields() ?> - formRenderPrimaryTabs() ?> -
- - - -
formRender(['preview' => true, 'section' => 'secondary']) ?>
- - - - 'layout stretch']) ?> - makeLayout('form-with-sidebar') ?> - - - - - -
-

fatalError) ?>

-

-
- - diff --git a/models/user/fields.yaml b/models/user/fields.yaml index 9e1cbee..a999e6a 100644 --- a/models/user/fields.yaml +++ b/models/user/fields.yaml @@ -4,6 +4,21 @@ fields: + _status: + type: partial + path: preview_status + context: preview + + _scoreboard: + type: partial + path: preview_scoreboard + context: preview + + _preview_toolbar: + type: partial + path: preview_toolbar + context: preview + name: label: winter.user::lang.user.name span: auto From 76a5fc71a0c2c3656f866d22adb4ce16190b3300 Mon Sep 17 00:00:00 2001 From: Luke Towers Date: Wed, 18 Jun 2025 14:08:53 -0600 Subject: [PATCH 11/14] Update controllers/users/_preview_status.php --- controllers/users/_preview_status.php | 1 - 1 file changed, 1 deletion(-) diff --git a/controllers/users/_preview_status.php b/controllers/users/_preview_status.php index 83eae2c..ff3a47e 100644 --- a/controllers/users/_preview_status.php +++ b/controllers/users/_preview_status.php @@ -7,4 +7,3 @@ is_activated): ?> makePartial('hint_activate') ?> - From dc144a9f5a1140da760004587479ab102c31f5c6 Mon Sep 17 00:00:00 2001 From: Luke Towers Date: Wed, 18 Jun 2025 14:09:21 -0600 Subject: [PATCH 12/14] Update controllers/users/_preview_toolbar.php --- controllers/users/_preview_toolbar.php | 1 - 1 file changed, 1 deletion(-) diff --git a/controllers/users/_preview_toolbar.php b/controllers/users/_preview_toolbar.php index 923904a..f44912e 100644 --- a/controllers/users/_preview_toolbar.php +++ b/controllers/users/_preview_toolbar.php @@ -73,4 +73,3 @@ class="btn btn-default oc-icon-pencil"> ?>
- From 1530bce77aae124a5948fdaf966caa826f7782ff Mon Sep 17 00:00:00 2001 From: Luke Towers Date: Wed, 18 Jun 2025 15:54:50 -0600 Subject: [PATCH 13/14] Remove unnecessary bodyClass property --- controllers/Users.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/controllers/Users.php b/controllers/Users.php index bf11f52..169ecfd 100644 --- a/controllers/Users.php +++ b/controllers/Users.php @@ -42,10 +42,8 @@ class Users extends Controller public $requiredPermissions = ['winter.users.access_users']; /** - * @var string HTML body tag class + * @var string The form layout to use. One of standard, sidebar, fancy */ - public $bodyClass = 'compact-container'; - public $formLayout = 'sidebar'; public function index() From bdf629fd029072bc4ec6c1f88e6ff6751243a832 Mon Sep 17 00:00:00 2001 From: Luke Towers Date: Wed, 23 Jul 2025 10:00:01 -0700 Subject: [PATCH 14/14] Update composer.json --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index e41b52c..012d4fe 100644 --- a/composer.json +++ b/composer.json @@ -29,7 +29,7 @@ }, "require": { "php": ">=7.2", - "winter/wn-backend-module": "~1.2.8", + "winter/wn-backend-module": "~1.2.8|dev-develop", "composer/installers": "~1.0" }, "replace": {