Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://wiki.cs.msu.ru/System/AccessControl?cover=print;rev=1
Дата изменения: Unknown Дата индексирования: Sun Apr 10 22:34:00 2016 Кодировка: |
Your local Foswiki may have an alternate user mapping manager installed which doesn't support user registration. Check with your Wiki administrator if you are in doubt.
The following describes the standard Foswiki support for groups. Your local Foswiki may have an alternate group mapping manager installed. Check with your Wiki administrator if you are in doubt.
Groups are defined by group topics located in theMain
web. To create a new group, visit WikiGroups. You will find a "Create a new group" link at the top which reveals a form to create a new group. Enter the name of the new group ending in Group
into the "Group Name" form field and the initial members in the "Members" field. This creates a new group topic.
By default any member of a group has access rights to both adding and removing users from the group through the nice user interface. If you need to limit this access further, change the ALLOWTOPICCHANGE setting through "More Topic Action" -> "Edit topic preference settings".
TheALLOWTOPICCHANGE
setting defines who is allowed to change the group topic; it is a comma delimited list of users and groups. You typically want to restrict that to the members of the group itself, so it should contain the name of the topic. This prevents users not in the group from editing the topic to give themselves or others access. For example, for the KasabianGroup topic write: Set ALLOWTOPICCHANGE = Main.KasabianGroup
Foswiki has strict formatting rules. Make sure you have three spaces, an asterisk, and an extra space in front of any access control rule. See below for more information about ALLOWTOPICCHANGE.
Background: A group topic is an empty topic with 3 hidden preference settings.
Foswiki 1.1 introduced the smart user interface for adding and removing members of a group. Group topics from prior versions of Foswiki will still work. These have the GROUP setting visible in the topic text itself and you edit it by editing the topic. Foswiki 1.1 WikiGroups will show these old group topics with an "Upgrade Group Topic button". The administrator can upgrade an old group topic to the nice new user interface with one easy click.
- GROUP: Comma separated list of users and/or groups
- ALLOWTOPICCHANGE: Comma separated list of users and groups that are allowed to add and remove users from the group
- VIEW_TEMPLATE: Always set to the value
GroupView
. This alters the way the topic is presented to include a nice user interface for adding and removing users.
AdminGroup
. The system administrator may have chosen a different name for this group if your local Foswiki uses an alternate group mapping manager, but for simplicity we will use the default name AdminGroup in the rest of this topic.
You can create new administrators simply by adding them to the AdminGroup topic. For example, Set GROUP = Main.ElizabethWindsor, Main.TonyBlair
ALLOW
or DENY
, _context is TOPIC
, WEB
, or ROOT
, and mode is VIEW
, CHANGE
, or RENAME
. For example, the preference ALLOWWEBCHANGE
lists who is allowed to change
topics in the current web.
There is an important distinction between CHANGE access and RENAME access. A user can CHANGE a topic, but thanks to version control their changes cannot be lost (the history of the topic before the change is recorded). However if a topic or web is renamed, that history may be lost. Typically a site will only give RENAME access to administrators and content owners.
Note that ALLOWWEBxxx and DENYWEBxxx preferences can only be set in WebPreferences topics. You cannot define a site level access. Each web must be protected on their own. Subwebs inherit access settings from the parent web. See next section.
Note that ALLOWTOPICxxx and DENYTOPICxxx preferences apply only to the topic itself.
Be warned that some plugins may not respect access permissions.
FINALPREFERENCES affects access controls, allowing you to prevent changes to access control settings while still allowing edit access to topics.
You can define restrictions on who is allowed to view a Foswiki web. You can restrict access to certain webs to selected users and groups, by:
Set DENYWEBVIEW = < comma-delimited list of users and groups >
Set ALLOWWEBVIEW = < comma-delimited list of users and groups >
Set DENYWEBCHANGE = < comma-delimited list of users and groups >
Set ALLOWWEBCHANGE = < comma-delimited list of users and groups >
Set DENYWEBRENAME = < comma-delimited list of users and groups >
Set ALLOWWEBRENAME = < comma-delimited list of users and groups >
ALLOWWEBVIEW
set, this will also apply to the subweb. Also note that you will need to ensure that the parent web's FINALPREFERENCES
does not include the access control settings listed above. Otherwise you will not be able override the parent web's access control settings in sub-webs.
Creation and renaming of sub-webs is controlled by the WEBCHANGE setting on the parent web (or ROOTCHANGE for root webs). Renaming is additionally restricted by the setting of WEBRENAME in the web itself.
Set DENYTOPICVIEW = < comma-delimited list of users and groups >
Set ALLOWTOPICVIEW = < comma-delimited list of users and groups >
Set DENYTOPICCHANGE = < comma-delimited list of users and groups >
Set ALLOWTOPICCHANGE = < comma-delimited list of users and groups >
Set DENYTOPICRENAME = < comma-delimited list of users and groups >
Set ALLOWTOPICRENAME = < comma-delimited list of users and groups >
Caution! Settings are always taken from the latest (current) revision of a topic. If older revisions of a topic had more restrictive access controls, they will not be used when accessing the older revision.
Remember when opening up access to specific topics within a restricted web that other topics in the web - for example, the WebLeftBar - may also be accessed when viewing the topics. The message you get when you are denied access should tell you what topic you were not permitted to access.
Be careful with empty values for any of these.Set ALLOWTOPICVIEW =
Set DENYTOPICVIEW =
The same rules apply to ALLOWTOPICCHANGE/DENYTOPICCHANGE and APPLYTOPICRENAME/DENYTOPICRENAME. Setting ALLOWTOPICCHANGE or ALLOWTOPICRENAME to en empty value means the same as not defining it. Setting DENYTOPICCHANGE or DENYTOPICRENAME to an empty value means that anyone can edit or rename the topic.
If the same setting is defined multiple times the last one overrides the previous. They are not OR'ed together.
Setting to an empty value has caused confusion and great debate and it has been decided that the empty setting syntax will be replaced by something which is easier to understand in a later version of Foswiki. A method to upgrade will be provided. Please read the release notes carefully when you upgrade.
See "How Foswiki evaluates ALLOW/DENY settings" below for more on how ALLOW and DENY interacts.
mod_rewrite
module, and configure your webserver to redirect accesses to attachments to the Foswiki viewfile
script. For example,
ScriptAlias /foswiki/bin/ /filesystem/path/to/bin/ Alias /foswiki/pub/ /filesystem/path/to/pub/ RewriteEngine on RewriteCond %{REQUEST_URI} !^/+foswiki/+pub/+System/+.+ RewriteRule ^/+foswiki/+pub/+([^/]+)((/+([^/]+))+)/+(.+) /foswiki/bin/viewfile/$1/$2?filename=$5 [L,PT]
That way all the controls that apply to the topic also apply to attachments to the topic. Other types of webserver have similar support.
Images embedded in topics will load much slower since each image will be delivered by the
viewfile
script.
Set DENYROOTCHANGE = < comma-delimited list of users and groups >
Set ALLOWROOTCHANGE = < comma-delimited list of users and groups >
ROOTCHANGE
access to rename an existing top-level web. You just need WEBCHANGE
in the web itself.
Settings are only read from the most current (latest) revision of a topic. Settings from older revisions are never used, even when viewing an older revision with the
rdiff
script
Attention: Use this with caution. This is deprecated and will likely change in the next release.
ALLOWTOPICVIEW and ALLOWTOPICCHANGE only applies to the topic in which the settings are defined. If a topic A includes another topic B, topic A does not inherit the access rights of the included topic B.
Examples: Topic A includes topic B
NOSEARCHALL
setting in WebPreferences. It does the following: all webs
search option from accessing the web
* Set NOSEARCHALL = on
This setup can be useful to hide a new web until content its ready for deployment, or reduce clutter in the WebLeftBar and default search results when restricted access is not desired.
Setting
NOSEARCHALL
to any value other than the empty string will hide a web. SettingNOSEARCHALL = off
will have the same effect as setting it toon
Obfuscating a web without setting view access control is very insecure, as anyone who knows the URL can access the web, and explicit searches naming that web will also work. For security purposes it is better to use the ALLOW or DENY VIEW settings in the WebPreferences topic.
%SEARCH%
and%WEBLIST%
will not show any results for webs that the current user does not have permission to view.
With this configuration, someone with access to the site needs to register new users. ResetPassword will also have to be done by administrators.
bin
and pub
directories to all but valid users. In the Apache .htaccess
file or the appropriate .conf
file, replace the <FilesMatch "(attach|edit|...
section with this:
<FilesMatch ".*"> require valid-user </FilesMatch>
If needed, you can further restrict access to selected webs with ALLOWWEBVIEW and other access control settings.
foswiki/bin
directory (except for login
, logon
and configure
) to the list of {AuthScripts}
in configure. For a default Foswiki installation:
{AuthScripts} = 'attach,compareauth,edit,manage,previewauth,rdiffauth,rename,rest,restauth,save,statistics,upload,viewauth,viewfileauth';
{AuthScripts} = 'attach,changes,compare,compareauth,edit,manage,oops,preview,previewauth,rdiff,rdiffauth,register,rename,resetpasswd,rest,restauth,save,search,statistics,upload,view,viewauth,viewfile,viewfileauth
If you install extensions that add scripts, you must also remember to add the new scripts to this list or the new scripts will not be protected.
WebPreferences
in all webs. Set DENYWEBVIEW = WikiGuest
Set ALLOWWEBVIEW = < list of users and groups >
DENYWEBVIEW
is evaluated before ALLOWWEBVIEW
. Access is denied if the authenticated person is in the DENYWEBVIEW
list, or not in the ALLOWWEBVIEW
list. Access is granted if DENYWEBVIEW
and ALLOWWEBVIEW
are not defined.
In rare cases it may be required to authenticate the view script. This can in some cases have a dramatic performance hit because the webserver must re-authenticate for every page view.
require valid-user
on your view
script in .htaccess or the appropriate Apache .conf file. This looks like: FilesMatch "(attach|edit|manage|rename|save|view|upload|mail|logon|.*auth).*"
(normally view
is not in that list).
Set DENYWEBVIEW = < list of users and groups >
Set ALLOWWEBVIEW = < list of users and groups >
DENYWEBVIEW
is evaluated before ALLOWWEBVIEW
. Access is denied if the authenticated person is in the DENYWEBVIEW
list, or not in the ALLOWWEBVIEW
list. Access is granted if DENYWEBVIEW
and ALLOWWEBVIEW
are not defined.
%SHOWPREFERENCE{"DENYWEBVIEW,ALLOWWEBVIEW,DENYWEBCHANGE,ALLOWWEBCHANGE,DENYWEBRENAME,ALLOWWEBRENAME"}%For this topic, this displays:
Edit topic preference settings
under More topic actions
menu. Preferences set in this manner are not visible in the topic text, but take effect nevertheless. Access control settings added as topic preference settings are stored in the topic meta data and they override settings defined in the topic text.
Alternatively, place them in HTML comment markers, but this exposes the access setting during ordinary editing.
<!--
* Set DENYTOPICCHANGE = Main.SomeGroup
-->