private function usersWithRole($role = 'ev')
 {
     $interestedUsers = array();
     $u = new User();
     $users = $u->get_full_list();
     foreach ($users as $user) {
         if ($user->check_role_membership($role, $user->id)) {
             $interestedUsers[] = $user;
         }
     }
     return $interestedUsers;
 }
Example #2
0
/**
 * Get a full user list.
 *
 * This function does not require a session be created first.
 *
 * @param string $user -- user name for validation
 * @param password $password -- MD5 hash of the user password for validation
 * @return User Array -- An array of user detail records
 */
function user_list($user, $password)
{
    if (!validate_user($user, $password)) {
        return array();
    }
    $seed_user = new User();
    $output_list = array();
    if (!$seed_user->ACLAccess('ListView')) {
        return $output_list;
    }
    $userList = $seed_user->get_full_list();
    foreach ($userList as $user) {
        $output_list[] = get_user_list_array($user);
    }
    return $output_list;
}
Example #3
0
function GoogleCalendarSync()
{
    require_once 'modules/GoogleSync/GoogleSync.php';
    global $timedate;
    GoogleSync::init();
    $usr = new User();
    $users = $usr->get_full_list();
    foreach ($users as $user) {
        $client = GoogleSync::getClient($user);
        if ($client != false) {
            $service = new Zend_Gdata_Calendar($client);
            try {
                $listFeed = $service->getCalendarEventFeed();
                foreach ($listFeed as $calendar) {
                    $id = $calendar->id;
                    $googleSync = new GoogleSync();
                    $list = $googleSync->get_list('', "{$googleSync->table_name}.google_id='{$id}'");
                    if ($list['row_count'] > 0) {
                        $event = BeanFactory::getBean($list['list'][0]->parent_name);
                        $event->retrieve($list['list'][0]->parent_id);
                        $event->name = $calendar->title->text;
                        if (!preg_match('/event.private$/', $calendar->visibility->value)) {
                            $event->description = $calendar->content->text;
                        }
                        GoogleSync::setDates($event, $calendar->when[0]->startTime, 0);
                        switch ($event->module_dir) {
                            case 'Calls':
                                $event->name = preg_replace('/^Звонок: /ui', '', $calendar->title->text);
                                GoogleSync::setReminder($event, $calendar->when[0]->reminders[0]);
                                GoogleSync::setDuration(&$event, $calendar->when[0]->startTime, $calendar->when[0]->endTime);
                                break;
                            case 'Meetings':
                                $event->name = preg_replace('/^Звонок: /ui', '', $calendar->title->text);
                                GoogleSync::setReminder($event, $calendar->when[0]->reminders[0]);
                                GoogleSync::setDuration(&$event, $calendar->when[0]->startTime, $calendar->when[0]->endTime);
                                $event->location = $calendar->where[0]->valueString;
                                break;
                            case 'Tasks':
                                $event->name = preg_replace('/^Задача: /ui', '', $calendar->title->text);
                                GoogleSync::setDates($event, $calendar->when[0]->endTime, 1);
                                break;
                        }
                        $event->from_where = 'GOOGLE';
                        $event->save();
                    } else {
                        if (preg_match('/^Звонок/ui', $calendar->title->text)) {
                            $event = new Call();
                            $event->name = preg_replace('/^Звонок: /ui', '', $calendar->title->text);
                            GoogleSync::setReminder($event, $calendar->when[0]->reminders[0]);
                            GoogleSync::setDuration(&$event, $calendar->when[0]->startTime, $calendar->when[0]->endTime);
                        } elseif (preg_match('/^Встреча/ui', $calendar->title->text)) {
                            $event = new Meeting();
                            $event->name = preg_replace('/^Встреча: /ui', '', $calendar->title->text);
                            GoogleSync::setReminder($event, $calendar->when[0]->reminders[0]);
                            GoogleSync::setDuration(&$event, $calendar->when[0]->startTime, $calendar->when[0]->endTime);
                            $event->location = $calendar->where[0]->valueString;
                        } elseif (preg_match('/^Задача/ui', $calendar->title->text)) {
                            $event = new Task();
                            $event->name = preg_replace('/^Задача: /ui', '', $calendar->title->text);
                            GoogleSync::setDates($event, $calendar->when[0]->endTime, 1);
                        }
                        if (isset($event)) {
                            if (!preg_match('/event.private$/', $calendar->visibility->value)) {
                                $event->description = $calendar->content->text;
                            }
                            GoogleSync::setDates($event, $calendar->when[0]->startTime, 0);
                            $event->from_where = 'GOOGLE';
                            $event->assigned_user_id = $user->id;
                            $event_id = $event->save();
                            $googleSync->parent_name = $event->module_dir;
                            $googleSync->parent_id = $event_id;
                            $googleSync->google_id = $id;
                            $googleSync->user_id = $user->id;
                            $googleSync->save();
                        }
                    }
                }
            } catch (Zend_Gdata_App_Exception $e) {
            }
        }
    }
    return true;
}