static function fetchUserGroupClassNames() { // Get names of user classes $userClassNames = array(); $userClasses = eZUser::fetchUserClassList(false, array('identifier')); foreach ($userClasses as $class) { $userClassNames[] = $class['identifier']; } // Get names of all allowed content-classes for the Users subtree $contentIni = eZINI::instance("content.ini"); $userGroupClassNames = array(); if ($contentIni->hasVariable('ClassGroupIDs', 'Users') and is_numeric($usersClassGroupID = $contentIni->variable('ClassGroupIDs', 'Users')) and count($usersClassList = eZContentClassClassGroup::fetchClassList(eZContentClass::VERSION_STATUS_DEFINED, $usersClassGroupID)) > 0) { foreach ($usersClassList as $userClass) { $userGroupClassNames[] = $userClass->attribute('identifier'); } } // Get names of user-group classes $groupClassNames = array_diff($userGroupClassNames, $userClassNames); return $groupClassNames; }
/** * Fetch the eZPaEx objects that have their password about to expire * * @return array of eZPaEx objects corresponding to users that have to be notified */ static function fetchExpiryNotificationPendingList() { $currentTime = time(); $conds = array('expirationnotification_sent' => 0, 'passwordlifetime' => array('>', 0)); $customConds = ' AND (passwordlifetime *86400 - (' . $currentTime . ' - password_last_updated ) ) < expirationnotification '; $userClassIDs = array(); foreach (eZUser::fetchUserClassList(true) as $userClass) { $userClassIDs[] = $userClass->attribute('id'); } if (empty($userClassIDs)) { return array(); } $customConds .= ' AND ezcontentobject.id = contentobject_id '; $customConds .= ' AND ' . eZDB::instance()->generateSQLINStatement($userClassIDs, 'ezcontentobject.contentclass_id'); return eZPersistentObject::fetchObjectList(eZPaEx::definition(), null, $conds, null, null, true, false, null, array('ezcontentobject'), $customConds); }