Help:Wikifunctions/User rights

To balance the needs of the Wikifunctions community for ease of use and stability, there are a number of different actions that are only available to some users. These are set out below.

Detailed user rights
Access is subject to rate limiting, like all Wikimedia sites.


 * Everyone can …
 * … run functions.
 * Why: We want everyone to be able to use our library of functions.
 * … make normal wiki edits to talk pages, project discussions, etc.
 * Why: Like other Wikimedia wikis, we want editing to be as open as possible.
 * Everyone with an account can …
 * … add, adjust, and remove labels and aliases for any object, even pre-defined system ones and their arguments.
 * Why: We want everyone to be able to participate to build and improve our library of functions, in every language.
 * … propose new functions, implementations and testers.
 * Why: We welcome proposed new functions and their uses from anyone.
 * Only community-approved users, 'functioneers ', can …
 * … connect and disconnect implementations and testers from a user-written function.
 * Why: Connecting or disconnecting implementations and testers from functions can have widespread effects, and could temporarily break the wiki for lots of people.
 * … adjust implementations and testers which are 'live' and connected to a function.
 * Why: Adjusting a connected implementation or tester might break the associated function for anyone calling it.
 * … create new types.
 * Why: Types are very powerful, and should be created following a community discussion.
 * Only community-approved expert users, 'function maintainers ', can …
 * … connect and disconnect implementations and testers from a pre-defined system function.
 * Why: Connecting or disconnecting implementations and testers from system functions will be a major step, and could temporarily break the wiki for everyone.
 * … adjust the definition of an approved function.
 * Why: Adjusting a function will immediately break it for anyone calling it.
 * … adjust the definition of a type.
 * Why: Adjusting a type once it has been created will almost certainly break any function that uses it.
 * … add or adjust the definition of a special system type, such as a programming language or a natural language.
 * Why: Special system types will occasionally need to be extended, but could break the wiki for everyone if a mistake is made.
 * Only community-approved administrator users, 'sysops ', can …
 * … change the type of a object.
 * Why: Adjusting the nature of an object once it has been created is a very unusual step and will break any reference to it across the wiki.
 * … add new values for ultra-special system types like boolean and unit.
 * Why: Special system types will occasionally need to be extended, but could break the wiki for everyone if a mistake is made.
 * … add and remove users from the 'functioneers ' group.
 * Why: We want our community to self-manage as much as possible, rather than relying on the Wikimedia-wide stewards.
 * … use all the normal kinds of sysop tool familiar from other wikis – blocking users, rolling back vandalism, managing abuse filters, etc.
 * Why: Like other Wikimedia wikis, the sysops of Wikifunctions are the core of the community's curation and management processes.
 * Only community-approved super-administrator users, 'bureaucrats', can …
 * … add and remove users from the 'function maintainers ' group.
 * Why: We want our community to self-manage as much as possible, rather than relying on the Wikimedia-wide stewards.
 * … use the normal bureaucrat user rights tool familiar from other wikis – promoting users to +sysop, adding +bot rights, etc.
 * Why: Like other Wikimedia wikis, the sysops of Wikifunctions are the core of the community's curation and management process.

Detailed table
While reading the following table, you must consider the following:


 * The row order is important: one change might match with two different rows, which describe rights that are given to different levels. For example "add a label in Spanish for the Boolean object 'true'" both fulfills the rule "any user can edit labels", as well as "only sysop users can edit a boolean". Rules are configured as to not be cumulative: when there is a match, the process exits with the found right. In the case of the example, because the rule "any user can edit labels" comes first, this will determine that the operation to "add a label in Spanish for the Boolean object 'true'" can be performed by any logged in user.

Notes: