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 user groups. For example, the action "add a label in Spanish for the Boolean object 'true'" both fulfills the rule "any user can edit labels", as well as "only a sysop user can edit a boolean". Rules are configured as to not be cumulative; they are terminal. This means that the rules are checked in a particular order, and as soon as there is a match, the process exits with the required right. Going back to our example: the rule "any user can edit labels" comes first, so when this is matched the process terminates and concludes that the action "add a label in Spanish for the Boolean object 'true'" can be performed by any logged in user.

Notes: