prevent deletion of WP Users segment in Segments listing

This commit is contained in:
Jonathan Labreuille
2016-05-20 18:35:40 +02:00
parent 8c56c8da5e
commit d10a29598d
3 changed files with 22 additions and 2 deletions

View File

@ -72,7 +72,7 @@ class Model extends \Sudzy\ValidModel {
static function bulkTrash($orm) { static function bulkTrash($orm) {
$model = get_called_class(); $model = get_called_class();
return self::bulkAction($orm, function($ids) use($model) { return self::bulkAction($orm, function($ids) use($model) {
self::rawExecute(join(' ', array( self::rawExecute(join(' ', array(
'UPDATE `'.$model::$_table.'`', 'UPDATE `'.$model::$_table.'`',
'SET `deleted_at`=NOW()', 'SET `deleted_at`=NOW()',
'WHERE `id` IN ('.rtrim(str_repeat('?,', count($ids)), ',').')' 'WHERE `id` IN ('.rtrim(str_repeat('?,', count($ids)), ',').')'

View File

@ -190,4 +190,24 @@ class Segment extends Model {
static function getPublic() { static function getPublic() {
return self::getPublished()->where('type', 'default')->orderByAsc('name'); return self::getPublished()->where('type', 'default')->orderByAsc('name');
} }
static function bulkTrash($orm) {
return parent::bulkAction($orm, function($ids) {
parent::rawExecute(join(' ', array(
'UPDATE `'.self::$_table.'`',
'SET `deleted_at`=NOW()',
'WHERE `id` IN ('.rtrim(str_repeat('?,', count($ids)), ',').')',
'AND `type` = "default"'
)), $ids);
});
}
static function bulkDelete($orm) {
return parent::bulkAction($orm, function($ids) {
// delete segments (only default)
Segment::whereIn('id', $ids)
->where('type', 'default')
->deleteMany();
});
}
} }

View File

@ -597,7 +597,7 @@ class Subscriber extends Model {
static function bulkTrash($orm) { static function bulkTrash($orm) {
return parent::bulkAction($orm, function($ids) { return parent::bulkAction($orm, function($ids) {
parent::rawExecute(join(' ', array( parent::rawExecute(join(' ', array(
'UPDATE `'.self::$_table.'`', 'UPDATE `'.self::$_table.'`',
'SET `deleted_at`=NOW()', 'SET `deleted_at`=NOW()',
'WHERE `id` IN ('.rtrim(str_repeat('?,', count($ids)), ',').')', 'WHERE `id` IN ('.rtrim(str_repeat('?,', count($ids)), ',').')',