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"); }
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(); }
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'); }