*/ /** * The self-registration module * * @package SelfRegistration */ class RegisterModule extends GalleryModule { function RegisterModule() { global $gallery; $this->setId('register'); $this->setName('Registration'); $this->setDescription($gallery->i18n('New User Registration')); $this->setVersion('0.8.7'); $this->setGroup('gallery', $this->translate('Gallery')); $this->setCallbacks('getSystemLinks|getUserAdminViews|getSiteAdminViews'); $this->setRequiredCoreApi(array(4, 0)); $this->setRequiredModuleApi(array(0, 9)); } /** * @see GalleryModule::upgrade() */ function upgrade($currentVersion) { global $gallery; if (!isset($currentVersion)) { foreach (array('confirmation' => 'admin', 'emailadmins' => 1, 'subject' => $this->translate('Account activation'), 'adminsubject' => $this->translate('New user registration'), 'from' => 'webmaster@' . GalleryUtilities::getServerVar('SERVER_NAME')) as $key => $value) { $ret = $this->setParameter($key, $value); if ($ret->isError()) { return $ret->wrap(__FILE__, __LINE__); } } } return GalleryStatus::success(); } /** * @see GalleryModule::performFactoryRegistrations() */ function performFactoryRegistrations() { $ret = GalleryCoreApi::registerFactoryImplementation( 'GalleryEntity', 'GalleryPendingUser', 'GalleryPendingUser', 'modules/register/classes/GalleryPendingUser.class', 'register', null); if ($ret->isError()) { return $ret->wrap(__FILE__, __LINE__); } return GalleryStatus::success(); } /** * @see GalleryModule::autoConfigure */ function autoConfigure() { /* We don't require any special configuration */ return array(GalleryStatus::success(), true); } /** * @see GalleryModule::getSystemLinks */ function getSystemLinks() { global $gallery; $links = array(); list ($ret, $anonymousUserId) = GalleryCoreApi::getPluginParameter('module', 'core', 'id.anonymousUser'); if ($ret->isError()) { return array($ret->wrap(__FILE__, __LINE__), null); } // Only anonymous users will see the register link if ($gallery->getActiveUserId() == $anonymousUserId) { $links[] = array('text' => $this->translate('Register'), 'params' => array('view' => 'core:UserAdmin', 'subview' => 'register:UserSelfRegistration', 'return' => 1, ) ); } return array(GalleryStatus::success(), $links); } /** * @see GalleryModule::getUserAdminViews(); */ function getUserAdminViews($user) { global $gallery; $views = array(); list ($ret, $anonymousUserId) = GalleryCoreApi::getPluginParameter('module', 'core', 'id.anonymousUser'); if ($ret->isError()) { return array($ret->wrap(__FILE__, __LINE__), null); } // Only anonymous users will see the register link if ($gallery->getActiveUserId() == $anonymousUserId) { $views[] = array('name' => $this->translate('Register'), 'view' => 'register:UserSelfRegistration'); } return array(GalleryStatus::success(), $views); } /** * @see GalleryModule::getSiteAdminViews */ function getSiteAdminViews() { return array(GalleryStatus::success(), array(array('name' => $this->translate('Registration'), 'view' => 'register:AdminSelfRegistration'))); } } ?>