Skip to content

Commit

Permalink
Merge pull request #1293 from proditis/master
Browse files Browse the repository at this point in the history
update player maintenance and add keys for expiration
  • Loading branch information
proditis authored Nov 6, 2024
2 parents a06ed09 + 4b5bb49 commit ccd67f6
Show file tree
Hide file tree
Showing 4 changed files with 110 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?php

use yii\db\Migration;

/**
* Class m241106_101540_add_player_deletion_sysconfig_keys
*/
class m241106_101540_add_player_deletion_sysconfig_keys extends Migration
{
/**
* {@inheritdoc}
*/
public function safeUp()
{
$this->upsert('sysconfig', ['id' => 'player_delete_inactive_after', 'val' => 10]);
$this->upsert('sysconfig', ['id' => 'player_delete_deleted_after', 'val' => 30]);
$this->upsert('sysconfig', ['id' => 'player_changed_to_deleted_after', 'val' => 10]);
$this->upsert('sysconfig', ['id' => 'player_delete_rejected_after', 'val' => 5]);
}

/**
* {@inheritdoc}
*/
public function safeDown()
{
$this->upsert('sysconfig', ['id' => 'player_delete_inactive_after']);
$this->upsert('sysconfig', ['id' => 'player_delete_deleted_after']);
$this->upsert('sysconfig', ['id' => 'player_changed_to_deleted_after']);
$this->upsert('sysconfig', ['id' => 'player_delete_rejected_after']);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<?php

use yii\db\Migration;

/**
* Class m241106_082202_create_player_maintenance_procedure
*/
class m241106_082202_create_player_maintenance_procedure extends Migration
{
public $DROP_SQL = "DROP PROCEDURE IF EXISTS {{%player_maintenance}}";
public $CREATE_SQL = "CREATE PROCEDURE {{%player_maintenance}} ()
BEGIN
DECLARE player_require_approval,player_delete_inactive_after,player_delete_deleted_after,player_changed_to_deleted_after,player_delete_rejected_after INT;
SET player_require_approval=memc_get('sysconfig:player_require_approval');
SET player_delete_inactive_after=memc_get('sysconfig:player_delete_inactive_after');
SET player_delete_deleted_after=memc_get('sysconfig:player_delete_deleted_after');
SET player_changed_to_deleted_after=memc_get('sysconfig:player_changed_to_deleted_after');
SET player_delete_rejected_after=memc_get('sysconfig:player_delete_rejected_after');
IF player_require_approval IS NOT NULL and player_require_approval>0 AND player_delete_rejected_after IS NOT NULL AND player_delete_rejected_after>0 THEN
DELETE FROM `player` WHERE `ts` < NOW() - INTERVAL player_delete_rejected_after DAY AND `status`=9 AND approval=4;
END IF;
IF player_delete_inactive_after IS NOT NULL AND player_delete_inactive_after > 0 THEN
DELETE FROM `player` WHERE `ts` < NOW() - INTERVAL player_delete_inactive_after DAY AND `status`=9;
END IF;
IF player_delete_deleted_after IS NOT NULL AND player_delete_deleted_after > 0 THEN
DELETE FROM `player` WHERE `ts` < NOW() - INTERVAL player_delete_deleted_after DAY AND `status`=0;
END IF;
IF player_changed_to_deleted_after IS NOT NULL AND player_changed_to_deleted_after > 0 THEN
UPDATE player SET status=0 WHERE status=8 AND ts < NOW() - INTERVAL player_changed_to_deleted_after DAY;
END IF;
END";

// Use up()/down() to run migration code without a transaction.
public function up()
{
$this->db->createCommand($this->DROP_SQL)->execute();
$this->db->createCommand($this->CREATE_SQL)->execute();
}

public function down()
{
$this->db->createCommand($this->DROP_SQL)->execute();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?php

use yii\db\Migration;

/**
* Class m241106_082203_update_player_maintenance_event
*/
class m241106_082203_update_player_maintenance_event extends Migration
{
public $DROP_SQL = "DROP EVENT IF EXISTS {{%player_maintenance}}";
public $CREATE_SQL = "CREATE EVENT {{%player_maintenance}} ON SCHEDULE EVERY 1 DAY STARTS '2020-01-01 00:00:00' ON COMPLETION PRESERVE ENABLE DO
BEGIN
CALL player_maintenance();
END";

public function up()
{
$this->db->createCommand($this->DROP_SQL)->execute();
$this->db->createCommand($this->CREATE_SQL)->execute();
}

public function down()
{
$this->db->createCommand($this->DROP_SQL)->execute();
}
}
5 changes: 5 additions & 0 deletions docs/Sysconfig-Keys.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,11 @@
* `api_target_spawn_timeout` set the rate limit for the given target operation endpoints. One request per `api_target_spawn_timeout`+1 seconds
* `api_target_spawn_timeout` set the rate limit for the given target operation endpoints. One request per `api_target_spawn_timeout`+1 seconds

* `player_delete_inactive_after`: Delete players with status=9 (inactive) after X days
* `player_delete_deleted_after`: Delete players with status=0 (deleted) after X days
* `player_changed_to_deleted_after`: Update players with status=8 (changed) into status=0 (deleted) after X days
* `player_delete_rejected_after`: Delete players that their registration was rejected (status=9 and approval=4) after X days

## mail configuration
* `mail_from` Email address used to send registration and password reset mails from
* `mail_fromName` The name appeared on the email send for registration and password resets
Expand Down

0 comments on commit ccd67f6

Please sign in to comment.