protected function actionSyncContacts($params) { \GO::$ignoreAclPermissions = true; //allow this script access to all \GO::$disableModelCache = true; //for less memory usage ini_set('max_execution_time', '300'); $ab = \GO\Addressbook\Model\Addressbook::model()->findSingleByAttribute('users', '1'); //\GO::t('users','base')); if (!$ab) { $ab = new \GO\Addressbook\Model\Addressbook(); $ab->name = \GO::t('users'); $ab->users = true; $ab->save(); } $stmt = User::model()->find(); while ($user = $stmt->fetch()) { $contact = $user->contact(); if (!$contact) { \GO::output("Creating contact for " . $user->username); $contact = new \GO\Addressbook\Model\Contact(); $contact->go_user_id = $user->id; $contact->addressbook_id = $ab->id; } else { \GO::output("Updating contact for " . $user->username); } $attr = $user->getAttributes(); unset($attr['id']); $contact->setAttributes($attr); $contact->save(); } \GO::output("Done!"); //return array('success' => true); }