Docs: Difference between revisions
Appearance
→Our World Of Text: permissions.js |
|||
| Line 3,241: | Line 3,241: | ||
=== Variables === | === Variables === | ||
== permissions.js == | |||
=== Variables === | |||
{| class="wikitable" | |||
|+ | |||
!Name | |||
!Description | |||
!Related code | |||
|- | |||
|PERM | |||
|Defines permission numbers for easier use instead of writing "Admin" | |||
|<syntaxhighlight lang="js" line="1" start="1"> | |||
var PERM = { | |||
ADMIN: 2, | |||
MEMBERS: 1, | |||
PUBLIC: 0 | |||
}; | |||
</syntaxhighlight> | |||
|} | |||
==== Permissions ==== | |||
Since <code>Permissions</code> is a very long dictionary variable, this table is divided into specific definitions in it. | |||
{| class="wikitable" | |||
|+ | |||
!Name | |||
!Description | |||
!Related definition | |||
|- | |||
|can_admin | |||
|Checks if user is an admin. | |||
|<syntaxhighlight lang="js" line="1" start="7"> | |||
can_admin: function(user) { | |||
return user.is_owner; | |||
}, | |||
</syntaxhighlight> | |||
|- | |||
|can_coordlink | |||
|Checks if user can create coordinate links in the world they're in. | |||
|<syntaxhighlight lang="js" line="1" start="10"> | |||
can_coordlink: function(user, world) { | |||
return Permissions.user_matches_perm(user, world, world.feature_coord_link); | |||
}, | |||
</syntaxhighlight> | |||
|- | |||
|can_edit_tile | |||
|Checks if user can write in a tile / character (protections). | |||
|<syntaxhighlight lang="js" line="1" start="13"> | |||
can_edit_tile: function(user, world, tile, charX, charY) { | |||
if(!tile) { | |||
throw new Error("Can't check perms on un-initted tile"); | |||
} | |||
if(!Permissions.can_read(user, world)) { | |||
return false; | |||
} | |||
var targetWritability; | |||
if(tile.char) { | |||
targetWritability = tile.char[charY * tileC + charX]; | |||
if(targetWritability == null) targetWritability = tile.writability; // inherit from tile | |||
if(targetWritability == null) targetWritability = world.writability; // inherit from world | |||
} else { | |||
targetWritability = tile.writability; | |||
if(targetWritability == null) targetWritability = world.writability; | |||
} | |||
return Permissions.user_matches_perm(user, world, targetWritability); | |||
}, | |||
</syntaxhighlight> | |||
|- | |||
|can_go_to_coord | |||
|Checks if user can teleport. | |||
|<syntaxhighlight lang="js" line="1" start="31"> | |||
can_go_to_coord: function(user, world) { | |||
return Permissions.user_matches_perm(user, world, world.feature_go_to_coord); | |||
}, | |||
</syntaxhighlight> | |||
|} | |||