Don't remind editors about stalled or abandoned projects

This commit is contained in:
Alex Cabal 2025-04-23 22:56:37 -05:00
parent de99d1869f
commit 1f41eb1e55
2 changed files with 24 additions and 1 deletions

View file

@ -2,6 +2,7 @@
/** /**
* @property-read bool $HasBenefits Are any of the benefits in this object **`TRUE`**? * @property-read bool $HasBenefits Are any of the benefits in this object **`TRUE`**?
* @property-read bool $RequiresPassword Do any of the benefits in this object require the `User` to have a password set? * @property-read bool $RequiresPassword Do any of the benefits in this object require the `User` to have a password set?
* @property-read bool $IsEditor Can this `User` manage or review projects?
*/ */
class Benefits{ class Benefits{
use Traits\Accessor; use Traits\Accessor;
@ -55,6 +56,18 @@ class Benefits{
return false; return false;
} }
protected function GetIsEditor(): bool{
if(
$this->CanManageProjects
||
$this->CanReviewProjects
){
return true;
}
return false;
}
protected function GetHasBenefits(): bool{ protected function GetHasBenefits(): bool{
if(!isset($this->_HasBenefits)){ if(!isset($this->_HasBenefits)){
$this->_HasBenefits = false; $this->_HasBenefits = false;

View file

@ -712,13 +712,23 @@ final class Project{
} }
/** /**
* Send an email reminder to the producer notifying them about their project status. * Send an email reminder to the producer notifying them about their project status, but only if they're not an editor.
*/ */
public function SendReminder(Enums\ProjectReminderType $type): void{ public function SendReminder(Enums\ProjectReminderType $type): void{
if($this->ProducerEmail === null || $this->GetReminder($type) !== null){ if($this->ProducerEmail === null || $this->GetReminder($type) !== null){
return; return;
} }
try{
$user = User::GetByEmail($this->ProducerEmail);
if($user->Benefits->IsEditor){
return;
}
}
catch(Exceptions\UserNotFoundException){
// Pass.
}
$reminder = new ProjectReminder(); $reminder = new ProjectReminder();
$reminder->ProjectId = $this->ProjectId; $reminder->ProjectId = $this->ProjectId;
$reminder->Type = $type; $reminder->Type = $type;