Created
January 5, 2024 12:58
-
-
Save bartwttewaall/0c6eb4a0e90ad0dfaf32cc6d3b4adcf2 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace craft\contentmigrations; | |
use Craft; | |
use craft\db\Migration; | |
use craft\elements\User; | |
/** | |
* m240105_091858_disablePermissionUtilityFindReplace migration. | |
*/ | |
class m240105_091858_disablePermissionUtilityFindReplace extends Migration | |
{ | |
/** | |
* @inheritdoc | |
* Running this migration should output: | |
* *** applying m240105_091858_disablePermissionUtilityFindReplace | |
* β Removed permission 'utility:find-replace' for user: <username> | |
* *** applied m240105_091858_disablePermissionUtilityFindReplace (time: 0.375s) | |
* | |
* Running a second time should result in: | |
* *** applying m240105_091858_disablePermissionUtilityFindReplace | |
* π No users found with permission utility:find-replace | |
* *** applied m240105_091858_disablePermissionUtilityFindReplace (time: 0.375s) | |
*/ | |
public function safeUp(): bool | |
{ | |
$FIND_REPLACE = 'utility:find-replace'; | |
$userPermissions = Craft::$app->getUserPermissions(); | |
// find all non-admin users with the permission | |
$users = User::find()->admin(false)->can($FIND_REPLACE)->all(); | |
if (count($users) == 0) echo "π No users found with permission $FIND_REPLACE\r\n"; | |
foreach($users as $user) { | |
$permissions = $userPermissions->getPermissionsByUserId($user->id); | |
unset($permissions[array_search($FIND_REPLACE, $permissions)]); | |
$userPermissions->saveUserPermissions($user->id, $permissions); | |
echo "β Removed permission $FIND_REPLACE for user: $user->name\r\n"; | |
} | |
return true; | |
} | |
/** | |
* @inheritdoc | |
*/ | |
public function safeDown(): bool | |
{ | |
echo "m240105_091858_disablePermissionUtilityFindReplace cannot be reverted.\n"; | |
return true; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment