Projeto

Geral

Perfil

Estatísticas
| Branch: | Revisão:

expressolivretools / app / Commons / Ldap.php @ 68c328a2

Histórico | Ver | Anotar | Baixar (1,8 KB)

1
<?php
2

    
3
namespace App\Commons;
4

    
5
use LdapRecord\Connection;
6
use Illuminate\Support\Facades\DB;
7

    
8
class Ldap 
9
{
10
    private $conn;
11
    private $ldapBaseDn;
12

    
13
    public function __construct()
14
    {
15
        $this->conn = "";
16

    
17
        $configEAdmin = DB::connection('pgsql-expresso')->table('phpgw_emailadmin')
18
                                ->where('description', env('KEY_EMAILADMIN_SOGO') )
19
                                ->first();
20

    
21
        // Base DN                                
22
        $this->ldapBaseDn = $configEAdmin->smtpldapbasedn;
23

    
24
        $this->conn = new Connection([
25
            'hosts'    => [ $configEAdmin->smtpldapserver ],
26
            'base_dn'  => $configEAdmin->smtpldapbasedn,
27
            'username' => $configEAdmin->smtpldapadmindn,
28
            'password' => $configEAdmin->smtpldapadminpw,
29
        ]);
30

    
31
    }
32

    
33
    public function getUidNumber( string $user )
34
    {
35
        $query = $this->conn->query()
36
                    ->select('uidnumber')
37
                    ->where('uid','=', $user)
38
                    ->get();
39

    
40
        return $query[0]['uidnumber'][0] ?? false ;
41
    }
42

    
43
    public function getUid( string $user )
44
    {
45
        $query = $this->conn->query()
46
                    ->select('uid')
47
                    ->where('uidnumber','=', $user)
48
                    ->get();
49

    
50
        return $query[0]['uid'][0] ?? false ;
51
    }
52

    
53
    public function getUsersOu( string $organization )
54
    {
55
        $baseDn = "ou=".$organization.",".$this->ldapBaseDn;
56

    
57
        $query = $this->conn->query()
58
                    ->setDn( $baseDn )
59
                    ->select('cn', 'uid', 'uidnumber')
60
                    ->where([
61
                        ['phpgwaccounttype', '=', 'u'],
62
                        ['phpgwaccountstatus', '=', 'A']
63
                    ])->get();                    
64

    
65
        return $query;
66
    }
67
}