Restricted some jobs from public execution

This commit is contained in:
Marcin Kurczewski 2014-05-17 16:02:40 +02:00
parent 9e756e28e4
commit 9f99ccd78f
6 changed files with 21 additions and 0 deletions

View file

@ -17,6 +17,11 @@ abstract class AbstractJob implements IJob
public abstract function getRequiredArguments();
public function isAvailableToPublic()
{
return true;
}
public function getName()
{
$name = get_called_class();

View file

@ -9,6 +9,7 @@ interface IJob
public function getRequiredSubPrivileges();
public function isAuthenticationRequired();
public function isConfirmedEmailRequired();
public function isAvailableToPublic();
public function getArgument($key);
public function getArguments();

View file

@ -72,6 +72,11 @@ class ActivateUserEmailJob extends AbstractJob
return false;
}
public function isAvailableToPublic()
{
return false;
}
public static function sendEmail($user)
{
$regConfig = Core::getConfig()->registration;

View file

@ -76,6 +76,11 @@ class PasswordResetJob extends AbstractJob
return false;
}
public function isAvailableToPublic()
{
return false;
}
public static function sendEmail($user)
{
$regConfig = Core::getConfig()->registration;

View file

@ -22,6 +22,8 @@ class ApiController extends AbstractController
$job = $this->jobFromName($jobName);
if (!$job)
throw new SimpleException('Unknown job: ' . $jobName);
if (!$job->isAvailableToPublic())
throw new SimpleException('This job is unavailable for public.');
if (isset($_FILES['args']))
{

View file

@ -108,6 +108,9 @@ $jobClassNames = array_values($jobClassNames);
foreach ($jobClassNames as $i => $className)
{
$job = new $className;
if (!$job->isAvailableToPublic())
continue;
?>
<?php if ($i != 0): ?>