diff --git a/lib/Artwork.php b/lib/Artwork.php index 6033cd8f..694f2f0a 100644 --- a/lib/Artwork.php +++ b/lib/Artwork.php @@ -393,7 +393,7 @@ class Artwork{ } if(!isset($this->Status)){ - $error->Add(new Exceptions\InvalidArtworkException('Invalid status.')); + $error->Add(new Exceptions\InvalidArtworkStatusException()); } if(isset($this->Tags)){ diff --git a/lib/Exceptions/InvalidArtworkStatusException.php b/lib/Exceptions/InvalidArtworkStatusException.php new file mode 100644 index 00000000..477fb9d5 --- /dev/null +++ b/lib/Exceptions/InvalidArtworkStatusException.php @@ -0,0 +1,7 @@ +Status != $newStatus && !$artwork->CanStatusBeChangedBy(Session::$User)){ + if($artwork->Status != $newStatus){ + if(!$artwork->CanStatusBeChangedBy(Session::$User)){ throw new Exceptions\InvalidPermissionsException(); } - $artwork->ReviewerUserId = Session::$User->UserId; - - $artwork->Status = $newStatus; - } - else{ - unset($artwork->Status); + if($newStatus !== null){ + $artwork->ReviewerUserId = Session::$User->UserId; + $artwork->Status = $newStatus; + }else{ + unset($artwork->Status); + } } }