|
It is through the permissions commands that you may specify 'who' may do 'what'. For instance, if you wanted to prevent snapper from talking to you, you could 'deny snapper tell'.
The permissions system in Key is extremely powerful, providing an implementation something known as 'Access Control Lists' in computing.
This chapter introduces you to the basics of using this permission system for yourself. When you start building rooms seriously, or want to configure a clan, you should also read the chapter on contextual permissions.
Some examples of entities include players, clans, and the pseudo-groups 'friends', and 'everyone'.
Some examples of actions include tell, find, and seePrivateInfo.
You may set a permission entry (allow, deny, or default) for any combination of these.
For instance, you can stop someone talking to you with a combination of
player and tell,
using a command such as 'deny snapper tell'.
'snapper' is the entity, 'tell' is the action, and 'deny' is the
permissions you're setting.
This is probably a little bit confusing, so here are some more examples:
If someone doesn't have a specific entry on the list then these actions
are used for them. That means that joey can tell to me but cannot find
me when I'm hiding.
To change these defaults you still use the allow and deny commands.
Let us pretend that you're deep in conversation in your room and you
don't want anybody to be able to send tells to you:
There are two ways to use this command, 'default
<name> <action>', and 'default
<name>'.
Here is a script based example of the first, to clear a specific action:
You use the second form of default to wipe an entire person from your
permission list:
Here is a list of the available actions, along with a brief explanation
of what they are for:
deny snapper tell - prevents snapper
from talking to you. Good if you think snapper is an annoying
$#)*(.
allow snapper find - allows snapper to
find you even if you are hiding.
allow snapper seePrivateInfo - allows
snapper to see your email address even when it's set to private.
allow summon - allows everyone to grab
you.
allow snapper find
This means that snapper will be able to find out where you are
(important for the 'where' command and 'join' commands) even when
you're hiding.
allow snapper seePrivateInfo
This means that snapper will be able to see your email address
even when you set it to be private with "email private".
Actions, Allow and Deny
So far, our commands have only modified the permissions for one person.
The 'actions' command shows what your current
permissions look like:
-> actions
-------------------------------------------- actions for sLiDe ---
1 entry in the list:
snapper - [Allow: find, seePrivateInfo] [Deny: tell]
--------------------------------------------------------------------
Allow: [friend, tell]
Deny: [summon, seePrivateInfo, find]
--------------------------------------------------------------------
At the top, you can see the modifications that we made for snapper. The
list at the bottom shows the default values for each of your available
actions.
-> deny tell
Everyone can no longer tell sLiDe
-> actions
-------------------------------------------- actions for sLiDe ---
1 entry in the list:
snapper - [Allow: find, seePrivateInfo] [Deny: tell]
--------------------------------------------------------------------
Allow: [friend]
Deny: [summon, seePrivateInfo, tell, find]
--------------------------------------------------------------------
Once we're done with our conversation, remember to allow people to talk
to you again!
-> allow tell
Everyone can now tell sLiDe
Default
'Default' is the command that complements allow
and deny. Default clears an entry from the permission list, meaning
that that entry will revert to the defaults listed at the bottom.
-> actions
-------------------------------------------- actions for sLiDe ---
1 entry in the list:
snapper - [Allow: find ,seePrivateInfo] [Deny: tell]
--------------------------------------------------------------------
Allow: [friend, tell]
Deny: [summon, seePrivateInfo, find]
--------------------------------------------------------------------
-> default snapper tell
snapper no longer has a specific entry for 'tell sLiDe'
-> actions
-------------------------------------------- actions for sLiDe ---
1 entry in the list:
snapper - [Allow: find ,seePrivateInfo]
--------------------------------------------------------------------
Allow: [friend, tell]
Deny: [summon, seePrivateInfo, find]
--------------------------------------------------------------------
As you can see, the "[Deny: tell]" has disappeared from the permission
list. As tell is currently defaulting to allow (see the second last
line), snapper will now be able to talk to me.
-> default snapper
snapper no longer has a specific entry on sLiDe
-> actions
-------------------------------------------- actions for sLiDe ---
No list entries
--------------------------------------------------------------------
Allow: [friend, tell]
Deny: [summon, seePrivateInfo, find]
--------------------------------------------------------------------
With those four commands (allow, deny,
default, actions) you know everything you will ever
need to know about manipulating permission lists on Key.
Available actions:
tell:
This permission permits or prevents people from talking to you
directly with commands such as 'tell',
'remote', or 'rthink'.
Useful permutations include:
allow snapper tell - allows snapper to
talk to you even if you have set 'deny tell'.
default snapper tell - clears snappers
tell entry from your list.
find:
This permission only comes into play when you hide with the
'hide' command. When you do that, you
may allow individuals to be able to see your location and join
you even though you're hiding. Useful permutations include:
default snapper find - prevents snapper
from finding you if you are hiding. (This works because you
shouldn't ever have a reason to 'allow find', as this is the
same as just not hiding in the first place.)
seePrivateInfo:
This permission allows individuals to see certain parts
of your profile even when they are set as private. At the
moment, this only consists of your email address, however it
could be extended in the future to include your private florin
count, or your hidden time. Useful permutations include:
default snapper seePrivateInfo -
prevents snapper from seeing anything on your profile that is
set to private. (As with find, there isn't any need to change
the default values for this action).
summon:
This permission allows others to 'summon' or 'grab' you.
Essentially, this entails them forcibly moving you from wherever
you are to where they are. You might want some of your friends
to be able to grab you into their rooms for a talk, for
instance.
deny summon - (The default). Prevents
people from grabbing you.
allow snapper summon - Unconditionally
allows snapper to grab you, even if you have 'deny summon'
turned on.
deny snapper summon - Unconditionally
prevents snapper from grabbing you, even if you have 'allow
summon' turned on.
default snapper summon - snapper will
be able to grab you only if you have 'allow summon' turned on.
friend:
I've saved my favourite to last. This action can be used to
prevent people from friending you. By default, everyone is
allowed to friend you. You can disable this with deny
friend. Make sure your read the 'neat
tricks' section at the end of this chapter if you think you like
the idea of stopping people from friending you.
Available entities (or 'neat tricks')
Here is a list of the available entities, along with some ideas for how
to use them.
players:
Obviously you can use any players name on your permission list.
This has been the basis for all of our examples so far (poor
snapper) since it is the closest to the old EW behaviour.
friends:
Thats right! You can put the pseudo-group 'friends' on your
permission list. How about these ideas:
allow friends summon - If you use this
with 'deny summon', only your friends will be able to grab you.
allow friends seePrivateInfo - If you
set your email address to private, only your friends will be
able to see it.
And my favourite, allow friends friend
- When used with 'deny friend', only people that you have
already friended can friend you back. (Note: if two people have
this on, someone will have to turn it off if you want to make
each other friends).
clans:
Clans can be put on your permission list, as well. Here are
some ideas:
deny wolf tell - people in clan wolf
can't talk to you.
allow wolf seePrivateInfo - people in
clan wolf can see your email address even when it's private.
groups and ranks:
The available set of system groups depends upon the
administrators of the talker. There might be, for instance, a
group for newbies, or a group for people who have volunteered to
help others out with problems. For all I know, there could be
groups for people interested in lycanthropy. The administrator
can provide you with a list of the available groups, and maybe
even create some for you, if you've got ideas.