Skip to content

Roles and permissions ​

Simplified Chinese

This document describes how ProjectWikit decides what somebody may do: roles, the permission list, per-category overrides, the sanctions a site can put on a member, and which powers belong to the whole instance rather than to one site. The screens that hold these settings are described in Site administration.

ProjectWikit splits permissions down to single tasks, and each admin screen answers to its own permission. You can give a role only the Tickets permissions and let it enter the admin panel, which makes posts such as "ticket reviewer" or "application reviewer": people who handle their own kind of work without holding the whole admin panel.

The model ​

One ProjectWikit instance serves one or more sites.

  • An account belongs to the instance. The same account signs in on every site of the instance, and its name, display name, email address and profile are the same everywhere.
  • A role belongs to one site. Holding a role on one site grants nothing on another.
  • Permissions come from roles. An account's permissions on a site are worked out from the roles it holds there.
  • A superuser is above all of this. An active superuser has every permission on every site of the instance and cannot be sanctioned.

Every site has two built-in roles that are never assigned by hand:

RoleHeld by
everyoneEveryone, signed in or not
registeredEvery signed-in account

The roles an account is given on a site come on top of those two.

Sites created with pwikit createsite also start with two ordinary roles, admin and member, which can be changed or deleted; see Site administration.

What a role holds ​

Each role holds one decision per permission:

ValueMeaning
AllowThe role grants the permission
DenyThe role refuses the permission, and the refusal wins over any grant
InheritThe role says nothing; other roles decide. When none of the account's roles allows it, the account does not have the permission

NoteInherit and Deny both leave a permission ungranted, but they work very differently. Inherit means the role says nothing: if any other role the member holds, including everyone and registered, allows the permission, the member has it. Deny overrides every allow: if any role the member holds denies a permission, the member does not have it, whatever the other roles say.

When a role should simply not give a permission, use Inherit. Setting Deny on everyone or registered takes the permission away from everyone except superusers.

A role also carries:

  • Can enter the admin panel: whether the role opens the admin panel at all. The screens inside it still need their own permissions.
  • Rank: a number that decides who may edit whom. An account may only edit accounts whose number is larger than its own. Superusers may edit anyone.

How a decision is made ​

For one account, on one site, about one page or forum object, in this order:

  1. A deactivated account has no permissions, not even reading.
  2. An active superuser has every permission. Nothing below applies.
  3. The grants of every role held are added together. A permission granted by any role is granted.
  4. Category overrides replace what a role says for the category the page is in. See below.
  5. Every refusal is applied. If any role refuses a permission, or a category override refuses it for a role the account holds, the account does not have it — even if another role grants it.
  6. Object rules apply. Locked pages and threads, authorship and hidden forum sections adjust the result; see Locks, authors and the forum.
  7. An unverified email address removes the write permissions when the site requires verification. See Registration and accounts.
  8. The site's sanctions are applied last. See Sanctions.

Category overrides ​

Every page category can override what one role says, for pages in that category and their comment threads only. Overrides are set on the Page categories screen of the admin panel and cover only the page and forum permissions; every other permission is always decided for the whole site. Entries set to Allow or Deny replace the role's own value for those permissions; entries left on Inherit keep it.

Typical uses:

  • A sandbox category where registered is allowed Create pages and Edit pages.
  • An admin category where everyone and registered are denied View pages, so only roles that allow it there can read those pages.

An override cannot bring back a permission that another role refuses: step 5 runs after the override. To grant a permission in one category only, make sure no role the account holds refuses it.

Locks, authors and the forum ​

SituationEffect
Page is lockedWithout Lock pages, an account loses Edit pages, Edit page tags, Move pages, Manage page files, Delete pages and Manage page authors on that page
Account is an author of an unlocked pageGains Manage page authors on that page. A locked page gives authors nothing extra
Account started the threadMay edit that thread
Account wrote the postMay edit its own post while it may create forum posts on the site
Thread is lockedWithout Lock forum threads, an account cannot comment, reply, edit or delete posts, or edit, pin or move the thread
Account's forum access is off through Forum active or Forum inactive untilThe same restrictions as a locked thread, in every thread
Section is Staff onlyNeeds View hidden forum sections to be seen

The permission list ​

Permissions are grouped as Pages, Forum, Social, Tickets, Member actions and Admin panel. Two of the groups are worth reading before the rest:

  • Member actions decides what an administrator may do to a member of this site. Each sanction below has its own permission, so "may silence" and "may ban" are given separately.
  • Admin panel decides which screens open at all. Holding Manage users opens the member list and member pages; acting on a member still needs a permission from Member actions.

The matrix shows each permission's label and code.

PermissionCodeAllows
Pages
View pagesview_articlesReading pages
Rate pagesrate_articlesRating pages
Create pagescreate_articlesCreating pages
Edit pagesedit_articlesEditing source, title and parent page, reverting; opens the Pages screen
Edit page tagstag_articlesChanging a page's tags
Move pagesmove_articlesRenaming and moving pages
Lock pageslock_articlesLocking and unlocking pages, and keeping all rights on locked pages
Manage page filesmanage_article_filesUploading, renaming and deleting attachments
Delete pagesdelete_articlesDeleting pages
Reset page ratingsreset_article_votesClearing all votes of a page
Comment on pagescomment_articlesPosting page comments
View page commentsview_article_commentsReading page comments
Manage page authorsmanage_article_authorsChanging a page's authors, together with Edit pages
Forum
View forum postsview_forum_postsReading posts
Create forum postscreate_forum_postsReplying in threads
Edit forum postsedit_forum_postsEditing anyone's posts
Delete forum postsdelete_forum_postsDeleting posts
View forum threadsview_forum_threadsReading threads
Create forum threadscreate_forum_threadsStarting threads
Edit forum threadsedit_forum_threadsChanging any thread's title and description
Pin forum threadspin_forum_threadsPinning threads
Lock forum threadslock_forum_threadsLocking threads, and posting in locked threads
Move forum threadsmove_forum_threadsMoving threads to another category
View forum sectionsview_forum_sectionsSeeing sections
View hidden forum sectionsview_hidden_forum_sectionsSeeing sections marked Staff only
View forum categoriesview_forum_categoriesSeeing forum categories
Social
Send private messagessend_direct_messageSending private messages
Tickets
View user reportsview_user_reportsThe User reports screen
View user ticketsview_user_ticketsThe Support tickets screen
Review membership applicationsreview_membership_applicationsThe Membership applications screen
Member actions
Ban membersban_membersBanning a member from this site
Silence membersmute_membersSilencing a member on this site
Restrict member editingrestrict_member_editingTaking page editing away from a member on this site
Restrict member ratingrestrict_member_ratingTaking rating away from a member on this site
Reset member ratingsreset_member_votesClearing the votes a member cast on this site
Invite membersinvite_membersCreating accounts, invite links, claim links and account activation
Manage bot accountsmanage_botsCreating bot accounts
Admin panel
Manage usersmanage_usersOpening the Users and Invite links screens, and member pages
Manage rolesmanage_rolesThe Roles and Role categories screens
Manage sitemanage_siteThe Site settings and Themes screens
View admin logview_actions_logThe Admin log screen and the dashboard's recent actions
Manage categoriesmanage_categoriesThe Page categories screen
Manage tagsmanage_tagsThe Tags and Tag categories screens
Manage forummanage_forumThe three forum screens
View sensitive informationview_sensitive_infoAccount email addresses
View vote timesview_votes_timestampWhen each vote was cast, in rating details and account activity
Manage system updatesmanage_updatesNothing at present
Manage permission settingsmanage_permissionsPermission matrices, category overrides, assigning roles, the role fields of the site settings, and the role granted on membership applications

Sanctions ​

A sanction is what one site has taken away from one of its members. Sanctions are held per site: the same account can be banned on one site of the instance and untouched on another.

SanctionTakes awayNeeds
BanEverything the other three take awayBan members
SilenceCommenting, starting threads, replying, editing and deleting posts, editing, pinning and moving threadsSilence members
No editingCreating, editing, tagging, moving, locking and deleting pages, managing attachments and authors, resetting votesRestrict member editing
No ratingRating pagesRestrict member rating

Rules that hold for all of them:

  • A sanctioned member can still read. Reading pages, comments and the forum is never taken away, and signing in still works.
  • Private messages are never taken away, because they do not belong to one site.
  • A sanction can be given an end time. It stops applying by itself when that time passes; the record stays visible in the member page. Leaving the time empty makes it last until somebody lifts it.
  • A reason can be recorded with each sanction.
  • Superusers cannot be sanctioned.

A sanction is set on the member page in the admin panel, in the Sanctions on this site section. Each sanction shows only to accounts holding the matching permission.

Site powers and instance powers ​

The account itself is shared by every site of the instance, so anything written on the account is reserved for superusers. A site administrator can act inside the site, and nowhere else.

ActionWhoReaches
Ban, silence, restrict editing or ratingA role holding the matching permissionThis site
Clear the votes a member castReset member ratingsThis site
Assign rolesManage permission settingsThis site
Create accounts, invite links, claim links, botsInvite members / Manage bot accountsThis site
Change a username, display name, profile text or email addressSuperuserThe instance
Deactivate an account, so that it cannot sign in anywhereSuperuserThe instance
Turn the forum off for an account across the instanceSuperuserThe instance
Take private messaging away from an accountSuperuserThe instance
Grant or remove superuserSuperuserThe instance

On a member page, an administrator who is not a superuser sees these account settings as text and cannot change them.

Differences from Wikidot ​

WikidotProjectWikit
Who may do whatFixed classes: anyone, members, moderators, administratorsAny number of roles, each holding a decision per permission
Permission detailOne setting per action per categoryA separate permission per action, and a category may override any of them for any role
Several roles at onceA member is in one classAn account holds any number of roles; grants add up and any refusal wins
BanningBlocks a member from the siteFour separate sanctions per site, each with an optional end time; the account itself is untouched
Account-wide actionNot applicableReserved for superusers
Where the settings liveSite ManagerThe admin panel, described in Site administration

Wikidot's per-category permission table has no direct equivalent, because a category override here names roles rather than classes. To reproduce a Wikidot setup, make one role for each class the wiki used and give the categories overrides for those roles.