Desativação automática de usuários no ISPManager5 lite sem BILLmanager

Dado:

  1. Servidor VPS com licença perpétua do ispmanager lite 5
  2. 10-20 usuários no servidor
  3. Google Calendar com lembretes regulares sobre quem expirou para PrestaShop
  4. É difícil pagar por qualquer coisa, especialmente por uma assinatura

Objetivo: livrar-se do Google Calendar e dos lembretes manuais para o cliente sobre a necessidade de pagar pelo hosting. Eliminar a situação de 'deixe-o trabalhar mais um pouco, ele vai pagar em breve' e 'é meio incômodo desligá-lo', delegando isso a uma máquina sem alma.

Claro, inicialmente pesquisei no Google, mas não encontrei soluções, tudo apontava que era preciso assinar o BILLmanager, mas o item nº 4 é muito importante e sério para mim, não vou me desfazer dele. E no final, a solução não se mostrou tão complicada.

Então, o que fazemos.

Criamos uma pasta users.addon, no diretório /usr/local/mgr5/etc/sql/, dois arquivos vazios:

  1. pay_date
  2. uwemail

Isso dará ao painel a ordem de criar na base
/usr/local/mgr5/etc/ispmgr.db
na tabela users dois campos correspondentes onde os valores serão salvos a partir do painel administrativo.

Criamos o arquivo ispmgr_mod_pay_data.xml na pasta /usr/local/mgr5/etc/xml com o conteúdo

Pago até
			Email do usuário
		
	
	
		
			Paid before
			User email

Isso fornece uma regra para o painel para que nossos campos apareçam no formulário de edição do usuário.

Reinicie o painel:

/usr/local/mgr5/sbin/mgrctl -m ispmgr exit

Obtemos:

Desativação automática de usuários no ISPManager5 lite sem BILLmanager

Nos campos, escrevemos até qual dia o hosting deve funcionar e qual o email do usuário para enviar lembretes de que o hosting está prestes a expirar.

Agora precisamos criar um script que lembre os usuários sobre a expiração do hosting em um intervalo de tempo. Notificar o administrador sobre a expiração do hosting. Notificar o usuário e o administrador de que o usuário foi desligado.

Eu sou próximo do php, então escrevi o script.

query('SELECT * FROM users WHERE active == "on" AND pay_date IS NOT NULL');
while ($user = $results->fetchArray()) {
		days_left=floor( ( strtotime($user['pay_date']) - time() ) / (60 * 60 * 24));
		if(in_array($days_left, $day_send_message)){
			if($user['uwemail'] != ""){
				mail($user['uwemail'], 'ISPMANAGER hosting expira em '.$days_left.' dias', "Texto para o usuário sobre quantos dias restam");
			}
		}
		if( $days_left == 3 ) {
			mail($adminemail, 'ISPMANAGER USUÁRIO '.$user['name'], $user['name'] . " O hosting expirará em ".$days_left." dia");
		}
		if($days_left <= 0){
			mail($adminemail, 'ISPMANAGER USUÁRIO '.$user['name'].' DESATIVADO', $user['name'].' Desativado');
			exec("/usr/local/mgr5/sbin/mgrctl -m ispmgr user.suspend elid=".$user["name"]);
			if( $user['uwemail'] != "" ) {
				mail($user['uwemail'], 'ISPMANAGER hosting desativado', 'Texto para o usuário que o hosting expirou'); 
			}
		}
		// se desejado, pode-se ainda escrever uma pequena condição para que os dados sejam apagados após algum tempo, mas isso não é necessário para mim
}

Este script pode ser salvo em qualquer lugar e nomeado como quiser, adicione uma tarefa cron para chamá-lo uma vez por dia. Tudo pronto.

Agora a consciência está limpa, o sentimento de culpa se foi, sem custos adicionais.

Basta preencher os dados nos usuários sobre até que data o hosting foi pago, e os e-mails dos usuários para enviar lembretes.

Fico feliz se isso ajudar alguém.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster