-
Notifications
You must be signed in to change notification settings - Fork 1
/
agi.php
96 lines (80 loc) · 2.85 KB
/
agi.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#!/usr/bin/php
<?php
/*
* Exemplo de utilização em integração com o Asterisk
* (reset de senha via telefone)
*
*Autor: Alisson Pelizaro (alissonpelizaro@hotmail.com)
*/
require __DIR__.'/ssh_reset/core.php';
require __DIR__.'/phpagi.php';
$host = "172.16.100.140";
$user = "dev";
$pass = "enter@cbs";
$agi=new AGI();
$ssh = new SSH_Conn($host, $user, $pass, false);
$powershell = new PowerShell($ssh);
/*
ARGV[1] = Numero digitado
ARGV[2] = Stage do usuario
ARGV[3] = Nome do usuário no AD (a partir do stage 2)
ARGV[4] = Loopcount para controle de erros
*/
$_stage = $argv[2];
if(!$_stage) $_stage = 1;
$agi->set_variable("STAGERESET", $_stage);
$agi->set_variable("RESETRESPONSE", "Estamos com problema nesse serviço no momento. Por favor, tente novamente mais tarde.");
switch ($_stage) {
case '1':
// Verificação de matricula
$argv[1] = limpaString($argv[1);
$user = $powershell->searchUser('HomePhone', $argv[1]);
if($user){
$agi->set_variable("RESETRESPONSE","Localizei sua matrícula. Agora digite o seu C P F.");
$agi->set_variable("RESETUSER", $user->CN);
$agi->set_variable("STAGERESET", '2');
$agi->set_variable("loopreset", 1);
} else {
$agi->set_variable("RESETRESPONSE","Não encontramos essa matrícula. Digite novamente.");
$agi->set_variable("loopreset",((int) $argv[4]) + 1);
}
// Fim da verificação de matrícula
break;
case '2':
// Verificação do CPF
$argv[3] = limpaString($argv[3]);
$user = $powershell->getUser($argv[3]);
if($user && (int) $argv[1] == (int) $user->HomePhone){
$agi->set_variable("RESETRESPONSE","Certo. Digite o número 1 para confirmar o reset de sua senha, ou qualquer outro número para cancelar.");
$agi->set_variable("RESETCPF", $argv[1]);
$agi->set_variable("STAGERESET", '3');
$agi->set_variable("loopreset", 1);
} else {
$agi->set_variable("RESETRESPONSE","O C P F informado não confere, digite novamente.");
$agi->set_variable("loopreset",((int) $argv[4]) + 1);
}
// Fim da verificação do CPF
break;
case '3':
// Confirmação
$argv[3] = limpaString($argv[3]);
if($argv[1] == '1'){
$senha = rand(100,999);
$powershell->setExpiredPass($argv[3]);
$powershell->resetPassword($argv[3], "veracel@".$senha);
$powershell->askNewPassword($argv[3]);
$agi->set_variable("RESETRESPONSE","Sua senha foi resetada para: veracel, @");
$agi->set_variable("RESETRESPONSEKEYS", $senha);
$agi->set_variable("RESETFINISHED","true");
} else {
$agi->set_variable("RESETRESPONSE","A operação foi cancelada");
$agi->set_variable("RESETRESPONSEKEYS","false");
$agi->set_variable("RESETFINISHED","true");
}
// Fim da verificação do CPF
break;
}
function limpaString($string){
return str_replace("\n", "". $string);
}
?>