Witam,

W dniu 2015-04-27 o 13:47, Maciej Hiller pisze:
Hej,

w jakim momencie chcesz kasować sesje clips?

jak przy edycji komputera w LMS ( zmiana MAC, IP )

to na wersji LMSa z 07.2014 plugin node_edit_before

Dzięki, o to właśnie chodziło. Masz jeszcze jakieś inne rozwiązania integrujące RedBacka z LMS?
Oprócz clipsa używamy również pppoe. Muszę rozwinąć tą klasę o obsługę również takich połączeń.

Pozdrawiam
Grzegorz Czarnota
Beskid Media Sp. z o.o.


class node_edit_before_redback_coa
{
    private $lms;

    /**
     * Class constructor
     *
     * @param object $LMS LMS object
     */
    function __construct($LMS)
    {
        $this->lms = $LMS;
    }

    /**
     * Action after node addition
     *
     * @param array $vars Node data
     *
     * @return array Node data
     */
    function node_before($vars)
    {
        global $DB;

        $logfile = '/tmp/lms_rb.log';

        // zmiana MAC

        $q = $DB->GetAll('SELECT m.mac FROM macs m JOIN nodes n ON (m.nodeid = n.id) WHERE n.id = ?', array($vars['id']));
        $mac = strtolower($q[0]['mac']);
        $rb = $DB->GetRow('SELECT name,ip FROM redback_context WHERE id = (SELECT ne.redback_context_id FROM
                        networks ne WHERE ne.address < (SELECT  n.ipaddr FROM nodes n JOIN macs m ON (n.id = m.nodeid)
                        WHERE m.mac = ? GROUP BY m.mac) AND broadcast(ne.address,inet_aton(ne.mask)) >
                        (SELECT n.ipaddr FROM nodes n JOIN macs m ON (n.id = m.nodeid) WHERE m.mac = ? GROUP BY m.mac))', array($mac, $mac));

        $change_mac = true;

        foreach($vars['macs'] as $chmac){
            if($mac==strtolower($chmac))
                $change_mac = false;
            else{
                exec("echo \"User-Name=".strtolower($chmac)."\" | radclient -x ".$rb['ip'].":3799 disconnect RB_COA_PASSWORD >>".$logfile);
            }
        }

        if($change_mac){
            exec("echo \"User-Name=".$mac."\" | radclient -x ".$rb['ip'].":3799 disconnect RB_COA_PASSWORD >>".$logfile);
        }

        // zmiana IP

        $q = $DB->GetAll('SELECT ipaddr FROM nodes WHERE id = ?', array($vars['id']));

        if($q[0]['ipaddr']!=ip2long($vars['ipaddr'])){
            exec("echo \"User-Name=".$mac."\" | radclient -x ".$rb['ip'].":3799 disconnect RB_COA_PASSWORD >>".$logfile);
        }

         // always return $vars
        return $vars;
    }
}

// Initialize plugin
$redback_plugin = new node_edit_before_redback_coa($LMS);

// Register plugin actions:
$LMS->RegisterHook('node_edit_before', array($redback_plugin, 'node_before'));




W dniu 2015-04-27 10:03, Grzegorz Czarnota - Beskid Media Sp. z o.o. napisał(a):
Witam,
 czy ma ktoś rozbudowanego LMS'a o obsługę RedBacka? Chodzi
głównie o kasowanie sesji clips.

--

 Pozdrawiam,
 Grzegorz Czarnota
 Beskid Media Sp. z o.o.

_______________________________________________
lms mailing list
lms@lists.lms.org.pl
http://lists.lms.org.pl/mailman/listinfo/lms



--

Pozdrawiam,

Grzegorz Czarnota
Wiceprezes Zarządu
tel. +48 605 055 852
grzegorz.czarnota@beskidmedia.pl

Beskid Media Sp. z o.o.
Beskid Media Sp. z o.o.
ul. Kościuszki 115,32-650 Kęty
www.beskidmedia.pl, poczta@beskidmedia.pl, tel. +48 (33) 4841919, fax +48 (33) 4841922

Sąd Rejonowy dla Krakowa-Śródmieścia w Krakowie, XII Wydział Gospodarczy Wysokość kapitału zakładowego: 1.605.000,00 PLN KRS: 0000378167, NIP: 5492417339, REGON 121463522
Wiadomość ta przeznaczona jest wyłącznie dla jej odbiorców i jest poufna. Jeśli nie jesteście Państwo adresatami tej wiadomości, prosimy o jej usunięcie i powiadomienie
nadawcy o zaistniałej sytuacji. Każde przeglądanie, rozpowszechnianie oraz inne użycie wiadomości przez osoby inne niż zamierzony odbiorca jest zabronione.