Ejemplo n.º 1
0
function user_execSync()
{
    global $srcdir, $config;
    require_once $srcdir . '/libs/GoogleApi.php';
    $api = new GoogleApi();
    $Gregistred = array();
    $Sregistred = array();
    $pageToken = null;
    do {
        $members = $api->getGroupMembers($config['GoogleApps']['members_ml'], $pageToken);
        foreach ($members->members as $member) {
            if (isset($member->email)) {
                $Gregistred[] = strtolower($member->email);
            }
        }
        $pageToken = isset($members->nextPageToken) ? $members->nextPageToken : null;
    } while ($pageToken !== null);
    $mdl = new Modele('users');
    $mdl->find();
    while ($mdl->next()) {
        $Sregistred[] = strtolower($mdl->user_email);
    }
    // Add
    foreach (array_diff($Sregistred, $Gregistred) as $mail) {
        $api->addGroupMember($config['GoogleApps']['members_ml'], $mail);
    }
    // Del
    foreach (array_diff($Gregistred, $Sregistred) as $mail) {
        $api->delGroupMember($config['GoogleApps']['members_ml'], $mail);
    }
    redirect("user", "sync2");
}
Ejemplo n.º 2
0
function section_admin_ml()
{
    global $tpl, $srcdir, $pdo;
    include $srcdir . '/libs/GoogleApi.php';
    $api = new GoogleApi();
    $mdl = new Modele('sections');
    $mdl->fetch($_REQUEST['section']);
    $mdl->assignTemplate('section');
    $lnk = new Modele('section_ml');
    $lnk->find(array('sm_section' => $_REQUEST['section'], 'sm_ml' => $_REQUEST['ml']));
    if (!$lnk->next()) {
        modexec('syscore', 'forbidden');
    }
    $grp = $api->getGroupsDetails($lnk->sm_ml);
    $tpl->assign('group', $grp);
    $members = $api->getGroupMembers($grp->id);
    $usql = $pdo->prepare('SELECT * FROM users WHERE user_email = ?');
    foreach ($members->members as $member) {
        $usql->bindValue(1, $member->email);
        $usql->execute();
        $user = $usql->fetch();
        $tpl->append('members', array('isSave' => strpos($member->email, 'save_') === 0, 'user' => $user, 'obj' => $member));
    }
    display();
}
Ejemplo n.º 3
0
function ml_execUpdate()
{
    $section = new Modele('sections');
    $section->find('section_ml != ""');
    $api = new GoogleApi();
    while ($section->next()) {
        $toAdd = array();
        $toDelete = array();
        $Lmembers = new Modele('user_sections');
        $Lmembers->find(array('us_section' => $section->getKey(), 'us_type' => 'manager'));
        while ($Lmembers->next()) {
            $toAdd[] = strtolower($Lmembers->us_user->user_email);
        }
        $reelMembers = $api->getGroupMembers($section->section_ml);
        if (isset($reelMembers->members)) {
            foreach ($reelMembers->members as $member) {
                $key = array_keys($toAdd, strtolower($member->email));
                if (strpos($member->email, 'save_') !== 0) {
                    //Skip sauvegarde
                    if ($member->type == "GROUP") {
                        continue;
                    } elseif (count($key) == 0) {
                        $toDelete[] = strtolower($member->email);
                    } else {
                        unset($toAdd[$key[0]]);
                    }
                }
            }
        }
        foreach ($toAdd as $mail) {
            $api->addGroupMember($section->section_ml, $mail);
        }
        foreach ($toDelete as $mail) {
            $api->delGroupMember($section->section_ml, $mail);
        }
    }
    redirect('ml', 'autoUpdate');
}