diff --git a/data/config.ini b/data/config.ini index 3c1a334b..c2d767dd 100644 --- a/data/config.ini +++ b/data/config.ini @@ -120,15 +120,15 @@ listUsers=registered viewUser=registered viewUserEmail.all=admin viewUserEmail.own=registered -changeUserPassword.own=registered -changeUserPassword.all=admin -changeUserEmail.own=registered -changeUserEmail.all=admin -changeUserEmailNoConfirm=admin -changeUserAccessRank=admin -changeUserName=moderator -changeUserSettings.all=nobody -changeUserSettings.own=registered +editUserPassword.own=registered +editUserPassword.all=admin +editUserEmail.own=registered +editUserEmail.all=admin +editUserEmailNoConfirm=admin +editUserAccessRank=admin +editUserName=moderator +editUserSettings.all=nobody +editUserSettings.own=registered acceptUserRegistration=moderator banUser.own=nobody banUser.all=admin diff --git a/src/Access.php b/src/Access.php index 86070e32..e29b0904 100644 --- a/src/Access.php +++ b/src/Access.php @@ -13,15 +13,11 @@ class Access $key .= '.'; list ($privilegeName, $subPrivilegeName) = explode('.', $key); - $privilegeName = TextCaseConverter::convert($privilegeName, - TextCaseConverter::CAMEL_CASE, - TextCaseConverter::SPINAL_CASE); - $subPrivilegeName = TextCaseConverter::convert($subPrivilegeName, - TextCaseConverter::CAMEL_CASE, - TextCaseConverter::SPINAL_CASE); - $key = rtrim($privilegeName . '.' . $subPrivilegeName, '.'); + if (!in_array($privilegeName, Privilege::getAllConstants())) + throw new Exception('Invalid privilege name in config: ' . $privilegeName); + $minAccessRank = TextHelper::resolveConstant($minAccessRankName, 'AccessRank'); self::$privileges[$key] = $minAccessRank; @@ -46,14 +42,9 @@ class Access $minAccessRank = AccessRank::Nobody; - $key = TextCaseConverter::convert($privilege->toString(), - TextCaseConverter::CAMEL_CASE, - TextCaseConverter::SPINAL_CASE); - + $key = $privilege->toString(); $privilege->secondary = null; - $key2 = TextCaseConverter::convert($privilege->toString(), - TextCaseConverter::CAMEL_CASE, - TextCaseConverter::SPINAL_CASE); + $key2 = $privilege->toString(); if (isset(self::$privileges[$key])) $minAccessRank = self::$privileges[$key]; @@ -85,7 +76,7 @@ class Access public static function assert(Privilege $privilege, $user = null) { if (!self::check($privilege, $user)) - self::fail('Insufficient privileges (' . $privilege->toString() . ')'); + self::fail('Insufficient privileges (' . $privilege->toDisplayString() . ')'); } public static function assertEmailConfirmation($user = null) diff --git a/src/Api/Api.php b/src/Api/Api.php index 03419e5c..86fe6d63 100644 --- a/src/Api/Api.php +++ b/src/Api/Api.php @@ -51,14 +51,16 @@ final class Api if ($job->isConfirmedEmailRequired()) Access::assertEmailConfirmation(); - $privileges = $job->getRequiredPrivileges(); - if ($privileges !== false) - { - if (!is_array($privileges)) - $privileges = [$privileges]; + $mainPrivilege = $job->getRequiredMainPrivilege(); + $subPrivileges = $job->getRequiredSubPrivileges(); + if (!is_array($subPrivileges)) + $subPrivileges = [$subPrivileges]; - foreach ($privileges as $privilege) - Access::assert($privilege); + if ($mainPrivilege !== null) + { + Access::assert(new Privilege($mainPrivilege)); + foreach ($subPrivileges as $subPrivilege) + Access::assert(new Privilege($mainPrivilege, $subPrivilege)); } } diff --git a/src/Api/Jobs/AbstractJob.php b/src/Api/Jobs/AbstractJob.php index 823d4825..3e32eeca 100644 --- a/src/Api/Jobs/AbstractJob.php +++ b/src/Api/Jobs/AbstractJob.php @@ -38,21 +38,6 @@ abstract class AbstractJob implements IJob return $this->subJobs; } - public function getRequiredPrivileges() - { - return false; - } - - public function isAuthenticationRequired() - { - return false; - } - - public function isConfirmedEmailRequired() - { - return false; - } - public function getContext() { return $this->context; diff --git a/src/Api/Jobs/CommentJobs/AddCommentJob.php b/src/Api/Jobs/CommentJobs/AddCommentJob.php index dd38edb2..4356673d 100644 --- a/src/Api/Jobs/CommentJobs/AddCommentJob.php +++ b/src/Api/Jobs/CommentJobs/AddCommentJob.php @@ -35,9 +35,14 @@ class AddCommentJob extends AbstractJob JobArgs::ARG_NEW_TEXT); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege(Privilege::AddComment); + return Privilege::AddComment; + } + + public function getRequiredSubPrivileges() + { + return null; } public function isAuthenticationRequired() diff --git a/src/Api/Jobs/CommentJobs/DeleteCommentJob.php b/src/Api/Jobs/CommentJobs/DeleteCommentJob.php index f9b8a2f9..e86d90f5 100644 --- a/src/Api/Jobs/CommentJobs/DeleteCommentJob.php +++ b/src/Api/Jobs/CommentJobs/DeleteCommentJob.php @@ -25,11 +25,14 @@ class DeleteCommentJob extends AbstractJob return $this->commentRetriever->getRequiredArguments(); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - Privilege::DeleteComment, - Access::getIdentity($this->commentRetriever->retrieve()->getCommenter())); + return Privilege::DeleteComment; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->commentRetriever->retrieve()->getCommenter()); } public function isAuthenticationRequired() diff --git a/src/Api/Jobs/CommentJobs/EditCommentJob.php b/src/Api/Jobs/CommentJobs/EditCommentJob.php index c7eb0b2e..c2cf5ce6 100644 --- a/src/Api/Jobs/CommentJobs/EditCommentJob.php +++ b/src/Api/Jobs/CommentJobs/EditCommentJob.php @@ -30,11 +30,14 @@ class EditCommentJob extends AbstractJob JobArgs::ARG_NEW_TEXT); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - Privilege::EditComment, - Access::getIdentity($this->commentRetriever->retrieve()->getCommenter())); + return Privilege::EditComment; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->commentRetriever->retrieve()->getCommenter()); } public function isAuthenticationRequired() diff --git a/src/Api/Jobs/CommentJobs/ListCommentsJob.php b/src/Api/Jobs/CommentJobs/ListCommentsJob.php index f4d52d25..d334b749 100644 --- a/src/Api/Jobs/CommentJobs/ListCommentsJob.php +++ b/src/Api/Jobs/CommentJobs/ListCommentsJob.php @@ -38,8 +38,23 @@ class ListCommentsJob extends AbstractJob implements IPagedJob return $this->pager->getRequiredArguments(); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege(Privilege::ListComments); + return Privilege::ListComments; + } + + public function getRequiredSubPrivileges() + { + return null; + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/CommentJobs/PreviewCommentJob.php b/src/Api/Jobs/CommentJobs/PreviewCommentJob.php index 8718d3cd..52e47151 100644 --- a/src/Api/Jobs/CommentJobs/PreviewCommentJob.php +++ b/src/Api/Jobs/CommentJobs/PreviewCommentJob.php @@ -41,9 +41,14 @@ class PreviewCommentJob extends AbstractJob $this->postRetriever->getRequiredArguments())); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege(Privilege::AddComment); + return Privilege::AddComment; + } + + public function getRequiredSubPrivileges() + { + return null; } public function isAuthenticationRequired() diff --git a/src/Api/Jobs/GetPropertyJob.php b/src/Api/Jobs/GetPropertyJob.php index cd497972..d0eda7e4 100644 --- a/src/Api/Jobs/GetPropertyJob.php +++ b/src/Api/Jobs/GetPropertyJob.php @@ -11,8 +11,24 @@ class GetPropertyJob extends AbstractJob return JobArgs::ARG_QUERY; } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() + { + return null; + } + + public function getRequiredSubPrivileges() + { + return null; + } + + public function isAuthenticationRequired() { return false; } + + public function isConfirmedEmailRequired() + { + return false; + } + } diff --git a/src/Api/Jobs/IJob.php b/src/Api/Jobs/IJob.php index ba737a12..42b537d5 100644 --- a/src/Api/Jobs/IJob.php +++ b/src/Api/Jobs/IJob.php @@ -5,7 +5,8 @@ interface IJob public function execute(); public function getRequiredArguments(); - public function getRequiredPrivileges(); + public function getRequiredMainPrivilege(); + public function getRequiredSubPrivileges(); public function isAuthenticationRequired(); public function isConfirmedEmailRequired(); diff --git a/src/Api/Jobs/LogJobs/GetLogJob.php b/src/Api/Jobs/LogJobs/GetLogJob.php index a03e1b20..c777dfd7 100644 --- a/src/Api/Jobs/LogJobs/GetLogJob.php +++ b/src/Api/Jobs/LogJobs/GetLogJob.php @@ -58,8 +58,23 @@ class GetLogJob extends AbstractJob implements IPagedJob JobArgs::Optional(JobArgs::ARG_QUERY)); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege(Privilege::ViewLog); + return Privilege::ViewLog; + } + + public function getRequiredSubPrivileges() + { + return null; + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/LogJobs/ListLogsJob.php b/src/Api/Jobs/LogJobs/ListLogsJob.php index 19f38831..466cadb6 100644 --- a/src/Api/Jobs/LogJobs/ListLogsJob.php +++ b/src/Api/Jobs/LogJobs/ListLogsJob.php @@ -22,8 +22,23 @@ class ListLogsJob extends AbstractJob return null; } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege(Privilege::ListLogs); + return Privilege::ListLogs; + } + + public function getRequiredSubPrivileges() + { + return null; + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/PostJobs/AddPostJob.php b/src/Api/Jobs/PostJobs/AddPostJob.php index a09eed6c..27b2dc5b 100644 --- a/src/Api/Jobs/PostJobs/AddPostJob.php +++ b/src/Api/Jobs/PostJobs/AddPostJob.php @@ -66,9 +66,19 @@ class AddPostJob extends AbstractJob return JobArgs::Optional(JobArgs::ARG_ANONYMOUS); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege(Privilege::AddPost); + return Privilege::AddPost; + } + + public function getRequiredSubPrivileges() + { + return null; + } + + public function isAuthenticationRequired() + { + return false; } public function isConfirmedEmailRequired() diff --git a/src/Api/Jobs/PostJobs/DeletePostJob.php b/src/Api/Jobs/PostJobs/DeletePostJob.php index e56ea9d2..62e8c0af 100644 --- a/src/Api/Jobs/PostJobs/DeletePostJob.php +++ b/src/Api/Jobs/PostJobs/DeletePostJob.php @@ -24,11 +24,14 @@ class DeletePostJob extends AbstractJob return $this->postRetriever->getRequiredArguments(); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - Privilege::DeletePost, - Access::getIdentity($this->postRetriever->retrieve()->getUploader())); + return Privilege::DeletePost; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->postRetriever->retrieve()->getUploader()); } public function isAuthenticationRequired() diff --git a/src/Api/Jobs/PostJobs/EditPostContentJob.php b/src/Api/Jobs/PostJobs/EditPostContentJob.php index 6a5fa59f..91fd7d94 100644 --- a/src/Api/Jobs/PostJobs/EditPostContentJob.php +++ b/src/Api/Jobs/PostJobs/EditPostContentJob.php @@ -42,12 +42,25 @@ class EditPostContentJob extends AbstractJob JobArgs::ARG_NEW_POST_CONTENT_URL)); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - $this->getContext() == self::CONTEXT_BATCH_ADD - ? Privilege::AddPostContent - : Privilege::EditPostContent, - Access::getIdentity($this->postRetriever->retrieve()->getUploader())); + return $this->getContext() == self::CONTEXT_BATCH_ADD + ? Privilege::AddPostContent + : Privilege::EditPostContent; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->postRetriever->retrieve()->getUploader()); + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/PostJobs/EditPostJob.php b/src/Api/Jobs/PostJobs/EditPostJob.php index 39dd3091..283ccb90 100644 --- a/src/Api/Jobs/PostJobs/EditPostJob.php +++ b/src/Api/Jobs/PostJobs/EditPostJob.php @@ -46,10 +46,23 @@ class EditPostJob extends AbstractJob return $this->postRetriever->getRequiredArguments(); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - Privilege::EditPost, - Access::getIdentity($this->postRetriever->retrieve()->getUploader())); + return Privilege::EditPost; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->postRetriever->retrieve()->getUploader()); + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/PostJobs/EditPostRelationsJob.php b/src/Api/Jobs/PostJobs/EditPostRelationsJob.php index 7ccdbeed..4030c200 100644 --- a/src/Api/Jobs/PostJobs/EditPostRelationsJob.php +++ b/src/Api/Jobs/PostJobs/EditPostRelationsJob.php @@ -51,12 +51,25 @@ class EditPostRelationsJob extends AbstractJob JobArgs::ARG_NEW_RELATED_POST_IDS); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - $this->getContext() == self::CONTEXT_BATCH_ADD - ? Privilege::AddPostRelations - : Privilege::EditPostRelations, - Access::getIdentity($this->postRetriever->retrieve()->getUploader())); + return $this->getContext() == self::CONTEXT_BATCH_ADD + ? Privilege::AddPostRelations + : Privilege::EditPostRelations; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->postRetriever->retrieve()->getUploader()); + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/PostJobs/EditPostSafetyJob.php b/src/Api/Jobs/PostJobs/EditPostSafetyJob.php index 92b0fff9..afdf0635 100644 --- a/src/Api/Jobs/PostJobs/EditPostSafetyJob.php +++ b/src/Api/Jobs/PostJobs/EditPostSafetyJob.php @@ -37,12 +37,25 @@ class EditPostSafetyJob extends AbstractJob JobArgs::ARG_NEW_SAFETY); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - $this->getContext() == self::CONTEXT_BATCH_ADD - ? Privilege::AddPostSafety - : Privilege::EditPostSafety, - Access::getIdentity($this->postRetriever->retrieve()->getUploader())); + return $this->getContext() == self::CONTEXT_BATCH_ADD + ? Privilege::AddPostSafety + : Privilege::EditPostSafety; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->postRetriever->retrieve()->getUploader()); + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/PostJobs/EditPostSourceJob.php b/src/Api/Jobs/PostJobs/EditPostSourceJob.php index 1170ecd0..843e30d9 100644 --- a/src/Api/Jobs/PostJobs/EditPostSourceJob.php +++ b/src/Api/Jobs/PostJobs/EditPostSourceJob.php @@ -37,12 +37,25 @@ class EditPostSourceJob extends AbstractJob JobArgs::ARG_NEW_SOURCE); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - $this->getContext() == self::CONTEXT_BATCH_ADD - ? Privilege::AddPostSource - : Privilege::EditPostSource, - Access::getIdentity($this->postRetriever->retrieve()->getUploader())); + return $this->getContext() == self::CONTEXT_BATCH_ADD + ? Privilege::AddPostSource + : Privilege::EditPostSource; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->postRetriever->retrieve()->getUploader()); + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/PostJobs/EditPostTagsJob.php b/src/Api/Jobs/PostJobs/EditPostTagsJob.php index c6f6853d..187c6b5f 100644 --- a/src/Api/Jobs/PostJobs/EditPostTagsJob.php +++ b/src/Api/Jobs/PostJobs/EditPostTagsJob.php @@ -54,12 +54,25 @@ class EditPostTagsJob extends AbstractJob JobArgs::ARG_NEW_TAG_NAMES); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - $this->getContext() == self::CONTEXT_BATCH_ADD - ? Privilege::AddPostTags - : Privilege::EditPostTags, - Access::getIdentity($this->postRetriever->retrieve()->getUploader())); + return $this->getContext() == self::CONTEXT_BATCH_ADD + ? Privilege::AddPostTags + : Privilege::EditPostTags; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->postRetriever->retrieve()->getUploader()); + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/PostJobs/EditPostThumbJob.php b/src/Api/Jobs/PostJobs/EditPostThumbJob.php index 73809a90..ab57cff1 100644 --- a/src/Api/Jobs/PostJobs/EditPostThumbJob.php +++ b/src/Api/Jobs/PostJobs/EditPostThumbJob.php @@ -32,12 +32,25 @@ class EditPostThumbJob extends AbstractJob JobArgs::ARG_NEW_THUMB_CONTENT); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - $this->getContext() == self::CONTEXT_BATCH_ADD - ? Privilege::AddPostThumb - : Privilege::EditPostThumb, - Access::getIdentity($this->postRetriever->retrieve()->getUploader())); + return $this->getContext() == self::CONTEXT_BATCH_ADD + ? Privilege::AddPostThumb + : Privilege::EditPostThumb; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->postRetriever->retrieve()->getUploader()); + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/PostJobs/FeaturePostJob.php b/src/Api/Jobs/PostJobs/FeaturePostJob.php index e0d1351b..19ddd8e6 100644 --- a/src/Api/Jobs/PostJobs/FeaturePostJob.php +++ b/src/Api/Jobs/PostJobs/FeaturePostJob.php @@ -38,15 +38,23 @@ class FeaturePostJob extends AbstractJob JobArgs::Optional(JobArgs::ARG_ANONYMOUS)); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - Privilege::FeaturePost, - Access::getIdentity($this->postRetriever->retrieve()->getUploader())); + return Privilege::FeaturePost; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->postRetriever->retrieve()->getUploader()); } public function isAuthenticationRequired() { return true; } + + public function isConfirmedEmailRequired() + { + return false; + } } diff --git a/src/Api/Jobs/PostJobs/FlagPostJob.php b/src/Api/Jobs/PostJobs/FlagPostJob.php index cf45c368..bebb6fad 100644 --- a/src/Api/Jobs/PostJobs/FlagPostJob.php +++ b/src/Api/Jobs/PostJobs/FlagPostJob.php @@ -31,10 +31,23 @@ class FlagPostJob extends AbstractJob return $this->postRetriever->getRequiredArguments(); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - Privilege::FlagPost, - Access::getIdentity($this->postRetriever->retrieve()->getUploader())); + return Privilege::FlagPost; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->postRetriever->retrieve()->getUploader()); + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/PostJobs/GetPostContentJob.php b/src/Api/Jobs/PostJobs/GetPostContentJob.php index c138357e..36f52537 100644 --- a/src/Api/Jobs/PostJobs/GetPostContentJob.php +++ b/src/Api/Jobs/PostJobs/GetPostContentJob.php @@ -32,16 +32,31 @@ class GetPostContentJob extends AbstractJob return $this->postRetriever->getRequiredArguments(); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() + { + return Privilege::ViewPost; + } + + public function getRequiredSubPrivileges() { $post = $this->postRetriever->retrieve(); $privileges = []; if ($post->isHidden()) - $privileges []= new Privilege(Privilege::ViewPost, 'hidden'); + $privileges []= 'hidden'; - $privileges []= new Privilege(Privilege::ViewPost, $post->getSafety()->toString()); + $privileges []= $post->getSafety()->toString(); return $privileges; } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; + } } diff --git a/src/Api/Jobs/PostJobs/GetPostJob.php b/src/Api/Jobs/PostJobs/GetPostJob.php index 1d11b21d..7d6b6ba2 100644 --- a/src/Api/Jobs/PostJobs/GetPostJob.php +++ b/src/Api/Jobs/PostJobs/GetPostJob.php @@ -24,16 +24,31 @@ class GetPostJob extends AbstractJob null); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() + { + return Privilege::ViewPost; + } + + public function getRequiredSubPrivileges() { $post = $this->postRetriever->retrieve(); $privileges = []; if ($post->isHidden()) - $privileges []= new Privilege(Privilege::ViewPost, 'hidden'); + $privileges []= 'hidden'; - $privileges []= new Privilege(Privilege::ViewPost, $post->getSafety()->toString()); + $privileges []= $post->getSafety()->toString(); return $privileges; } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; + } } diff --git a/src/Api/Jobs/PostJobs/GetPostThumbJob.php b/src/Api/Jobs/PostJobs/GetPostThumbJob.php index 22b94ba4..1298226d 100644 --- a/src/Api/Jobs/PostJobs/GetPostThumbJob.php +++ b/src/Api/Jobs/PostJobs/GetPostThumbJob.php @@ -43,7 +43,22 @@ class GetPostThumbJob extends AbstractJob return $this->postRetriever->getRequiredArguments(); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() + { + return null; + } + + public function getRequiredSubPrivileges() + { + return null; + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() { return false; } diff --git a/src/Api/Jobs/PostJobs/ListPostsJob.php b/src/Api/Jobs/PostJobs/ListPostsJob.php index f5a21ec3..8c97c8fd 100644 --- a/src/Api/Jobs/PostJobs/ListPostsJob.php +++ b/src/Api/Jobs/PostJobs/ListPostsJob.php @@ -37,8 +37,23 @@ class ListPostsJob extends AbstractJob implements IPagedJob JobArgs::Optional(JobArgs::ARG_QUERY)); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege(Privilege::ListPosts); + return Privilege::ListPosts; + } + + public function getRequiredSubPrivileges() + { + return null; + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/PostJobs/ScorePostJob.php b/src/Api/Jobs/PostJobs/ScorePostJob.php index a1c967fb..fd29915e 100644 --- a/src/Api/Jobs/PostJobs/ScorePostJob.php +++ b/src/Api/Jobs/PostJobs/ScorePostJob.php @@ -25,15 +25,23 @@ class ScorePostJob extends AbstractJob JobArgs::ARG_NEW_POST_SCORE); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - Privilege::ScorePost, - Access::getIdentity($this->postRetriever->retrieve()->getUploader())); + return Privilege::ScorePost; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->postRetriever->retrieve()->getUploader()); } public function isAuthenticationRequired() { return true; } + + public function isConfirmedEmailRequired() + { + return false; + } } diff --git a/src/Api/Jobs/PostJobs/TogglePostFavoriteJob.php b/src/Api/Jobs/PostJobs/TogglePostFavoriteJob.php index 9590fef1..e9ca282f 100644 --- a/src/Api/Jobs/PostJobs/TogglePostFavoriteJob.php +++ b/src/Api/Jobs/PostJobs/TogglePostFavoriteJob.php @@ -33,15 +33,23 @@ class TogglePostFavoriteJob extends AbstractJob JobArgs::ARG_NEW_STATE); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - Privilege::FavoritePost, - Access::getIdentity($this->postRetriever->retrieve()->getUploader())); + return Privilege::FavoritePost; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->postRetriever->retrieve()->getUploader()); } public function isAuthenticationRequired() { return true; } + + public function isConfirmedEmailRequired() + { + return false; + } } diff --git a/src/Api/Jobs/PostJobs/TogglePostTagJob.php b/src/Api/Jobs/PostJobs/TogglePostTagJob.php index 6d448894..c4c314cc 100644 --- a/src/Api/Jobs/PostJobs/TogglePostTagJob.php +++ b/src/Api/Jobs/PostJobs/TogglePostTagJob.php @@ -66,10 +66,23 @@ class TogglePostTagJob extends AbstractJob Jobargs::ARG_NEW_STATE)); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - Privilege::EditPostTags, - Access::getIdentity($this->postRetriever->retrieve()->getUploader())); + return Privilege::EditPostTags; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->postRetriever->retrieve()->getUploader()); + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/PostJobs/TogglePostVisibilityJob.php b/src/Api/Jobs/PostJobs/TogglePostVisibilityJob.php index 0faf890c..5e0c3a95 100644 --- a/src/Api/Jobs/PostJobs/TogglePostVisibilityJob.php +++ b/src/Api/Jobs/PostJobs/TogglePostVisibilityJob.php @@ -33,10 +33,23 @@ class TogglePostVisibilityJob extends AbstractJob JobArgs::ARG_NEW_STATE); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - Privilege::HidePost, - Access::getIdentity($this->postRetriever->retrieve()->getUploader())); + return Privilege::HidePost; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->postRetriever->retrieve()->getUploader()); + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/TagJobs/ListRelatedTagsJob.php b/src/Api/Jobs/TagJobs/ListRelatedTagsJob.php index 4478d4e7..ea6e77c3 100644 --- a/src/Api/Jobs/TagJobs/ListRelatedTagsJob.php +++ b/src/Api/Jobs/TagJobs/ListRelatedTagsJob.php @@ -37,8 +37,23 @@ class ListRelatedTagsJob extends AbstractJob implements IPagedJob JobArgs::Optional(JobArgs::ARG_TAG_NAMES)); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege(Privilege::ListTags); + return Privilege::ListTags; + } + + public function getRequiredSubPrivileges() + { + return null; + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/TagJobs/ListTagsJob.php b/src/Api/Jobs/TagJobs/ListTagsJob.php index c3cead19..202892c1 100644 --- a/src/Api/Jobs/TagJobs/ListTagsJob.php +++ b/src/Api/Jobs/TagJobs/ListTagsJob.php @@ -35,8 +35,23 @@ class ListTagsJob extends AbstractJob implements IPagedJob JobArgs::Optional(JobArgs::ARG_QUERY)); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege(Privilege::ListTags); + return Privilege::ListTags; + } + + public function getRequiredSubPrivileges() + { + return null; + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/TagJobs/MergeTagsJob.php b/src/Api/Jobs/TagJobs/MergeTagsJob.php index f36f65b0..fda233d6 100644 --- a/src/Api/Jobs/TagJobs/MergeTagsJob.php +++ b/src/Api/Jobs/TagJobs/MergeTagsJob.php @@ -22,8 +22,23 @@ class MergeTagsJob extends AbstractJob JobArgs::ARG_TARGET_TAG_NAME); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege(Privilege::MergeTags); + return Privilege::MergeTags; + } + + public function getRequiredSubPrivileges() + { + return null; + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/TagJobs/RenameTagsJob.php b/src/Api/Jobs/TagJobs/RenameTagsJob.php index 3242d3bf..2b0673c8 100644 --- a/src/Api/Jobs/TagJobs/RenameTagsJob.php +++ b/src/Api/Jobs/TagJobs/RenameTagsJob.php @@ -22,8 +22,23 @@ class RenameTagsJob extends AbstractJob JobArgs::ARG_TARGET_TAG_NAME); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege(Privilege::RenameTags); + return Privilege::RenameTags; + } + + public function getRequiredSubPrivileges() + { + return null; + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/UserJobs/AcceptUserRegistrationJob.php b/src/Api/Jobs/UserJobs/AcceptUserRegistrationJob.php index 079fc247..06b702aa 100644 --- a/src/Api/Jobs/UserJobs/AcceptUserRegistrationJob.php +++ b/src/Api/Jobs/UserJobs/AcceptUserRegistrationJob.php @@ -27,8 +27,23 @@ class AcceptUserRegistrationJob extends AbstractJob return $this->userRetriever->getRequiredArguments(); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege(Privilege::AcceptUserRegistration); + return Privilege::AcceptUserRegistration; + } + + public function getRequiredSubPrivileges() + { + return null; + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/UserJobs/ActivateUserEmailJob.php b/src/Api/Jobs/UserJobs/ActivateUserEmailJob.php index 5cf7ba4f..688ddc24 100644 --- a/src/Api/Jobs/UserJobs/ActivateUserEmailJob.php +++ b/src/Api/Jobs/UserJobs/ActivateUserEmailJob.php @@ -52,6 +52,26 @@ class ActivateUserEmailJob extends AbstractJob $this->userRetriever->getRequiredArguments()); } + public function getRequiredMainPrivilege() + { + return null; + } + + public function getRequiredSubPrivileges() + { + return null; + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; + } + public static function sendEmail($user) { $regConfig = Core::getConfig()->registration; diff --git a/src/Api/Jobs/UserJobs/AddUserJob.php b/src/Api/Jobs/UserJobs/AddUserJob.php index 0797b9c5..990f6363 100644 --- a/src/Api/Jobs/UserJobs/AddUserJob.php +++ b/src/Api/Jobs/UserJobs/AddUserJob.php @@ -65,8 +65,23 @@ class AddUserJob extends AbstractJob return null; } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege(Privilege::RegisterAccount); + return Privilege::RegisterAccount; + } + + public function getRequiredSubPrivileges() + { + return null; + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/UserJobs/DeleteUserJob.php b/src/Api/Jobs/UserJobs/DeleteUserJob.php index f92759e2..7ffa7b09 100644 --- a/src/Api/Jobs/UserJobs/DeleteUserJob.php +++ b/src/Api/Jobs/UserJobs/DeleteUserJob.php @@ -25,10 +25,23 @@ class DeleteUserJob extends AbstractJob return $this->userRetriever->getRequiredArguments(); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - Privilege::DeleteUser, - Access::getIdentity($this->userRetriever->retrieve())); + return Privilege::DeleteUser; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->userRetriever->retrieve()); + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/UserJobs/EditUserAccessRankJob.php b/src/Api/Jobs/UserJobs/EditUserAccessRankJob.php index 82584b2b..c3f4d7cb 100644 --- a/src/Api/Jobs/UserJobs/EditUserAccessRankJob.php +++ b/src/Api/Jobs/UserJobs/EditUserAccessRankJob.php @@ -37,10 +37,23 @@ class EditUserAccessRankJob extends AbstractJob JobArgs::ARG_NEW_ACCESS_RANK); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - Privilege::ChangeUserAccessRank, - Access::getIdentity($this->userRetriever->retrieve())); + return Privilege::EditUserAccessRank; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->userRetriever->retrieve()); + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/UserJobs/EditUserEmailJob.php b/src/Api/Jobs/UserJobs/EditUserEmailJob.php index 65b37a1e..7957ec97 100644 --- a/src/Api/Jobs/UserJobs/EditUserEmailJob.php +++ b/src/Api/Jobs/UserJobs/EditUserEmailJob.php @@ -40,7 +40,7 @@ class EditUserEmailJob extends AbstractJob public static function observeSave($user) { - if (Access::check(new Privilege(Privilege::ChangeUserEmailNoConfirm), $user)) + if (Access::check(new Privilege(Privilege::EditUserEmailNoConfirm), $user)) { $user->confirmEmail(); } @@ -58,12 +58,25 @@ class EditUserEmailJob extends AbstractJob JobArgs::ARG_NEW_EMAIL); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - $this->getContext() == self::CONTEXT_BATCH_ADD - ? Privilege::RegisterAccount - : Privilege::ChangeUserEmail, - Access::getIdentity($this->userRetriever->retrieve())); + return $this->getContext() == self::CONTEXT_BATCH_ADD + ? Privilege::RegisterAccount + : Privilege::EditUserEmail; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->userRetriever->retrieve()); + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/UserJobs/EditUserJob.php b/src/Api/Jobs/UserJobs/EditUserJob.php index 5e9f4b93..90fd516e 100644 --- a/src/Api/Jobs/UserJobs/EditUserJob.php +++ b/src/Api/Jobs/UserJobs/EditUserJob.php @@ -66,7 +66,22 @@ class EditUserJob extends AbstractJob return $this->userRetriever->getRequiredArguments(); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() + { + return null; + } + + public function getRequiredSubPrivileges() + { + return null; + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() { return false; } diff --git a/src/Api/Jobs/UserJobs/EditUserNameJob.php b/src/Api/Jobs/UserJobs/EditUserNameJob.php index 6149e7b5..f543d35f 100644 --- a/src/Api/Jobs/UserJobs/EditUserNameJob.php +++ b/src/Api/Jobs/UserJobs/EditUserNameJob.php @@ -37,12 +37,25 @@ class EditUserNameJob extends AbstractJob JobArgs::ARG_NEW_USER_NAME); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - $this->getContext() == self::CONTEXT_BATCH_ADD - ? Privilege::RegisterAccount - : Privilege::ChangeUserName, - Access::getIdentity($this->userRetriever->retrieve())); + return $this->getContext() == self::CONTEXT_BATCH_ADD + ? Privilege::RegisterAccount + : Privilege::EditUserName; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->userRetriever->retrieve()); + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/UserJobs/EditUserPasswordJob.php b/src/Api/Jobs/UserJobs/EditUserPasswordJob.php index 06f35224..ee0a6c6b 100644 --- a/src/Api/Jobs/UserJobs/EditUserPasswordJob.php +++ b/src/Api/Jobs/UserJobs/EditUserPasswordJob.php @@ -36,12 +36,25 @@ class EditUserPasswordJob extends AbstractJob JobArgs::ARG_NEW_PASSWORD); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - $this->getContext() == self::CONTEXT_BATCH_ADD - ? Privilege::RegisterAccount - : Privilege::ChangeUserPassword, - Access::getIdentity($this->userRetriever->retrieve())); + return $this->getContext() == self::CONTEXT_BATCH_ADD + ? Privilege::RegisterAccount + : Privilege::EditUserPassword; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->userRetriever->retrieve()); + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/UserJobs/EditUserSettingsJob.php b/src/Api/Jobs/UserJobs/EditUserSettingsJob.php index f78de30d..48a49026 100644 --- a/src/Api/Jobs/UserJobs/EditUserSettingsJob.php +++ b/src/Api/Jobs/UserJobs/EditUserSettingsJob.php @@ -34,15 +34,23 @@ class EditUserSettingsJob extends AbstractJob JobArgs::ARG_NEW_SETTINGS); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - Privilege::ChangeUserSettings, - Access::getIdentity($this->userRetriever->retrieve())); + return Privilege::EditUserSettings; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->userRetriever->retrieve()); } public function isAuthenticationRequired() { return false; } + + public function isConfirmedEmailRequired() + { + return false; + } } diff --git a/src/Api/Jobs/UserJobs/FlagUserJob.php b/src/Api/Jobs/UserJobs/FlagUserJob.php index 95250ac6..31a9e462 100644 --- a/src/Api/Jobs/UserJobs/FlagUserJob.php +++ b/src/Api/Jobs/UserJobs/FlagUserJob.php @@ -31,10 +31,23 @@ class FlagUserJob extends AbstractJob return $this->userRetriever->getRequiredArguments(); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - Privilege::FlagUser, - Access::getIdentity($this->userRetriever->retrieve())); + return Privilege::FlagUser; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->userRetriever->retrieve()); + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/UserJobs/GetUserJob.php b/src/Api/Jobs/UserJobs/GetUserJob.php index b02a48e3..fb601922 100644 --- a/src/Api/Jobs/UserJobs/GetUserJob.php +++ b/src/Api/Jobs/UserJobs/GetUserJob.php @@ -18,10 +18,23 @@ class GetUserJob extends AbstractJob return $this->userRetriever->getRequiredArguments(); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - Privilege::ViewUser, - Access::getIdentity($this->userRetriever->retrieve())); + return Privilege::ViewUser; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->userRetriever->retrieve()); + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/UserJobs/GetUserSettingsJob.php b/src/Api/Jobs/UserJobs/GetUserSettingsJob.php index d548bc7e..5f78f906 100644 --- a/src/Api/Jobs/UserJobs/GetUserSettingsJob.php +++ b/src/Api/Jobs/UserJobs/GetUserSettingsJob.php @@ -19,15 +19,23 @@ class GetUserSettingsJob extends AbstractJob return $this->userRetriever->getRequiredArguments(); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - Privilege::ChangeUserSettings, - Access::getIdentity($this->userRetriever->retrieve())); + return Privilege::EditUserSettings; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->userRetriever->retrieve()); } public function isAuthenticationRequired() { return false; } + + public function isConfirmedEmailRequired() + { + return false; + } } diff --git a/src/Api/Jobs/UserJobs/ListUsersJob.php b/src/Api/Jobs/UserJobs/ListUsersJob.php index 92b3da4b..443fa97d 100644 --- a/src/Api/Jobs/UserJobs/ListUsersJob.php +++ b/src/Api/Jobs/UserJobs/ListUsersJob.php @@ -35,8 +35,23 @@ class ListUsersJob extends AbstractJob implements IPagedJob JobArgs::Optional(JobArgs::ARG_QUERY)); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege(Privilege::ListUsers); + return Privilege::ListUsers; + } + + public function getRequiredSubPrivileges() + { + return null; + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Api/Jobs/UserJobs/PasswordResetJob.php b/src/Api/Jobs/UserJobs/PasswordResetJob.php index de531887..f3f4f73d 100644 --- a/src/Api/Jobs/UserJobs/PasswordResetJob.php +++ b/src/Api/Jobs/UserJobs/PasswordResetJob.php @@ -56,6 +56,26 @@ class PasswordResetJob extends AbstractJob JobArgs::ARG_TOKEN); } + public function getRequiredMainPrivilege() + { + return null; + } + + public function getRequiredSubPrivileges() + { + return null; + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; + } + public static function sendEmail($user) { $regConfig = Core::getConfig()->registration; diff --git a/src/Api/Jobs/UserJobs/ToggleUserBanJob.php b/src/Api/Jobs/UserJobs/ToggleUserBanJob.php index 48385f6d..df493d70 100644 --- a/src/Api/Jobs/UserJobs/ToggleUserBanJob.php +++ b/src/Api/Jobs/UserJobs/ToggleUserBanJob.php @@ -36,10 +36,23 @@ class ToggleUserBanJob extends AbstractJob JobArgs::ARG_NEW_STATE); } - public function getRequiredPrivileges() + public function getRequiredMainPrivilege() { - return new Privilege( - Privilege::BanUser, - Access::getIdentity($this->userRetriever->retrieve())); + return Privilege::BanUser; + } + + public function getRequiredSubPrivileges() + { + return Access::getIdentity($this->userRetriever->retrieve()); + } + + public function isAuthenticationRequired() + { + return false; + } + + public function isConfirmedEmailRequired() + { + return false; } } diff --git a/src/Controllers/UserController.php b/src/Controllers/UserController.php index 943eb4bd..d26f3a45 100644 --- a/src/Controllers/UserController.php +++ b/src/Controllers/UserController.php @@ -332,7 +332,7 @@ class UserController extends AbstractController elseif ($tab == 'settings') { Access::assert(new Privilege( - Privilege::ChangeUserSettings, + Privilege::EditUserSettings, Access::getIdentity($user))); } elseif ($tab == 'edit' and !(new EditUserJob)->canEditAnything(Auth::getCurrentUser())) diff --git a/src/Models/Entities/UserEntity.php b/src/Models/Entities/UserEntity.php index 50eb808b..6657a95d 100644 --- a/src/Models/Entities/UserEntity.php +++ b/src/Models/Entities/UserEntity.php @@ -120,7 +120,7 @@ final class UserEntity extends AbstractEntity implements IValidatable, ISerializ $this->accessRank->validate(); if ($this->accessRank->toInteger() == AccessRank::Nobody) - throw new Exception(sprintf('Cannot set special access rank "%s"', $this->accessRank->toString())); + throw new Exception(sprintf('Cannot set special access rank "%s"', $this->accessRank->toDisplayString())); } private function validateEmails() diff --git a/src/Models/Enums/PostSafety.php b/src/Models/Enums/PostSafety.php index 008a7414..4166a2b3 100644 --- a/src/Models/Enums/PostSafety.php +++ b/src/Models/Enums/PostSafety.php @@ -24,7 +24,13 @@ class PostSafety extends Enum implements IValidatable public function toString() { - return self::_toString($this->safety); + switch ($this->safety) + { + case self::Safe: return 'safe'; + case self::Sketchy: return 'sketchy'; + case self::Unsafe: return 'unsafe'; + } + return null; } public static function makeFlags($safetyCodes) diff --git a/src/Models/Enums/Privilege.php b/src/Models/Enums/Privilege.php index 9ba5f80d..00858bcb 100644 --- a/src/Models/Enums/Privilege.php +++ b/src/Models/Enums/Privilege.php @@ -1,59 +1,59 @@ primary); + $string = $this->primary; if ($this->secondary) $string .= '.' . $this->secondary; return $string; diff --git a/src/Views/top-navigation.phtml b/src/Views/top-navigation.phtml index 1c6e5ecc..7bb40445 100644 --- a/src/Views/top-navigation.phtml +++ b/src/Views/top-navigation.phtml @@ -117,7 +117,7 @@ ?>