Events on user registrations now strictly typed

This commit is contained in:
Mikael Nordfeldth 2013-09-14 18:36:35 +02:00
parent 482296561e
commit 83b852312a
7 changed files with 19 additions and 24 deletions

View File

@ -781,12 +781,10 @@ SendImConfirmationCode: Send a confirmation code to confirm a user owns an IM sc
- $user: user requesting the confirmation
StartUserRegister: When a new user is being registered
- &$profile: new profile data (no ID)
- &$user: new user account (no ID or URI)
- $profile: Profile object with new profile data (no ID yet)
EndUserRegister: When a new user has been registered
- &$profile: new profile data
- &$user: new user account
- $profile: Profile object with new profile data
StartRobotsTxt: Before outputting the robots.txt page
- &$action: RobotstxtAction being shown

View File

@ -335,7 +335,7 @@ class User extends Managed_DataObject
$user->created = common_sql_now();
if (Event::handle('StartUserRegister', array(&$user, &$profile))) {
if (Event::handle('StartUserRegister', array($profile))) {
$profile->query('BEGIN');
@ -459,7 +459,7 @@ class User extends Managed_DataObject
}
}
Event::handle('EndUserRegister', array(&$profile, &$user));
Event::handle('EndUserRegister', array($profile));
}
return $user;

View File

@ -90,11 +90,11 @@ class AutoSandboxPlugin extends Plugin
$action->elementEnd('div');
}
function onEndUserRegister(&$profile,&$user)
public function onEndUserRegister(Profile $profile)
{
$profile->sandbox();
if ($this->debug) {
common_log(LOG_WARNING, "AutoSandbox: sandboxed of $user->nickname");
$profile->sandbox();
if ($this->debug) {
common_log(LOG_WARNING, "AutoSandbox: sandboxed of $profile->nickname");
}
}
}

View File

@ -55,24 +55,23 @@ class FollowEveryonePlugin extends Plugin
* the new user to them. Exceptions (like silenced users or whatever)
* are caught, logged, and ignored.
*
* @param Profile &$newProfile The new user's profile
* @param User &$newUser The new user
* @param Profile $profile The new user's profile
*
* @return boolean hook value
*/
function onEndUserRegister(&$newProfile, &$newUser)
public function onEndUserRegister(Profile $profile)
{
$otherUser = new User();
$otherUser->whereAdd('id != ' . $newUser->id);
$otherUser->whereAdd('id != ' . $profile->id);
if ($otherUser->find()) {
while ($otherUser->fetch()) {
$otherProfile = $otherUser->getProfile();
try {
if (User_followeveryone_prefs::followEveryone($otherUser->id)) {
Subscription::start($otherProfile, $newProfile);
Subscription::start($otherProfile, $profile);
}
Subscription::start($newProfile, $otherProfile);
Subscription::start($profile, $otherProfile);
} catch (Exception $e) {
common_log(LOG_WARNING, $e->getMessage());
continue;
@ -82,7 +81,7 @@ class FollowEveryonePlugin extends Plugin
$ufep = new User_followeveryone_prefs();
$ufep->user_id = $newUser->id;
$ufep->user_id = $profile->id;
$ufep->followeveryone = true;
$ufep->insert();

View File

@ -61,9 +61,8 @@ class ForceGroupPlugin extends Plugin
return true;
}
function onEndUserRegister($profile, $user)
public function onEndUserRegister(Profile $profile)
{
$profile = $user->getProfile();
foreach ($this->join as $nickname) {
$group = User_group::getForNickname($nickname);
if ($group && !$profile->isMember($group)) {
@ -73,7 +72,7 @@ class ForceGroupPlugin extends Plugin
// TRANS: Server exception.
// TRANS: %1$s is a user nickname, %2$s is a group nickname.
throw new ServerException(sprintf(_m('Could not join user %1$s to group %2$s.'),
$user->nickname, $group->nickname));
$profile->nickname, $group->nickname));
}
}
}

View File

@ -142,11 +142,10 @@ class RegisterThrottlePlugin extends Plugin
* We record the successful registration and IP address.
*
* @param Profile $profile new user's profile
* @param User $user new user
*
* @return boolean hook value
*/
function onEndUserRegister($profile, $user)
public function onEndUserRegister(Profile $profile)
{
$ipaddress = $this->_getIpAddress();
@ -157,7 +156,7 @@ class RegisterThrottlePlugin extends Plugin
$reg = new Registration_ip();
$reg->user_id = $user->id;
$reg->user_id = $profile->id;
$reg->ipaddress = $ipaddress;
$result = $reg->insert();

View File

@ -49,7 +49,7 @@ class UserLimitPlugin extends Plugin
{
public $maxUsers = null;
function onStartUserRegister(&$user, &$profile)
public function onStartUserRegister(Profile $profile)
{
$this->_checkMaxUsers();
return true;