szurubooru/src/Api/Jobs/AddUserJob.php

48 lines
985 B
PHP
Raw Normal View History

2014-05-04 14:57:44 +02:00
<?php
class AddUserJob extends AbstractJob
{
public function execute()
{
$firstUser = UserModel::getCount() == 0;
$user = UserModel::spawn();
$user->joinDate = time();
$user->staffConfirmed = $firstUser;
UserModel::forgeId($user);
$arguments = $this->getArguments();
$arguments[EditUserJob::USER_ENTITY] = $user;
2014-05-04 14:57:44 +02:00
2014-05-04 19:23:09 +02:00
Logger::bufferChanges();
$job = new EditUserJob();
$job->setContext(self::CONTEXT_BATCH_ADD);
Api::run($job, $arguments);
2014-05-04 19:23:09 +02:00
Logger::setBuffer([]);
2014-05-04 14:57:44 +02:00
if ($firstUser)
2014-05-07 00:34:02 +02:00
{
$user->setAccessRank(new AccessRank(AccessRank::Admin));
$user->confirmEmail();
2014-05-07 00:34:02 +02:00
}
else
{
$user->setAccessRank(new AccessRank(AccessRank::Registered));
}
2014-05-04 14:57:44 +02:00
//save the user to db if everything went okay
UserModel::save($user);
2014-05-04 19:23:09 +02:00
Logger::log('{subject} just signed up', [
2014-05-04 14:57:44 +02:00
'subject' => TextHelper::reprUser($user)]);
2014-05-04 19:23:09 +02:00
Logger::flush();
2014-05-04 14:57:44 +02:00
return $user;
}
public function requiresPrivilege()
{
2014-05-04 16:27:15 +02:00
return new Privilege(Privilege::RegisterAccount);
2014-05-04 14:57:44 +02:00
}
}