Thingy 1.107 -- An enhanced UseMod Wiki spin-off (C) 2003-2011 Julian Mehnle Michael Buschbeck ============================================================================== Thingy is an enhanced UseMod Wiki spin-off. License ------- Thingy is free software. You may use, modify, and distribute it under the GNU GPL (version 2 or later). The HTML Template ----------------- Every Thingy instance requires an HTML template, which is used as a frame for all the pages that are generated and delivered to users. The name of the template file can be configured using the "$TemplateFile" config option. For relative file names, the instance's config dir is assumed as the base. The following template placeholders are supported: %title% Page title, suitable for the tag. %stylesheet% URL of the stylesheet to use; either the instance's default stylesheet defined in the config file, or a custom stylesheet configured by the user. %scripturl% The URL of the Thingy CGI application for self references, e.g. for the creation of HTML forms. %titlebacklink% An HTML link to a reverse search for pages that link back to the current page. %redirectionsource% An HTML link pointing back to the origin of a page redirection. %toolbar% HTML code of the toolbar, usually as a horizontal bar at the top. %menubar% HTML code of the menubar, usually as a vertical sidebar. %content% The page body generated by Thingy. Access Control Lists -------------------- Starting with 1.020, Thingy has basic ACL support. In restricted thingies (SetEnv THINGY_RESTRICTED 1), page-related actions may now be permitted on a page-by-page basis through ACL files. (However, there is no user interface for creating and editing such ACLs yet; for now they have to be maintained by hand.) An ACL file, similar to a page lock file, must be placed in the page database directory with the same name as the page file, but with the extension ".acl". ACLs for sub-pages must be stored in the main page's ACL file. An ACL consists of rules of the following form (similar to CSS syntax): <page-selector> '{' <user>':' <permissions> [ ';' ... ] '}' <page-selector> is a shell glob pattern describing the names of the pages the rule applies to. The substring '.' means the name of the main page to which the ACL belongs. '/' can be used to denote sub-pages. The '*' wildcard matches arbitrary character sequences (except '/'). <user> is the user name to which the following permissions apply. Currently, only the user "anonymous" is supported as a handle for all unauthenticated users, but in the future you will be able to specify registered (authenticated) usernames, too. <permissions> is a set of permission symbols. The following permissions are supported: r - Read pages, even if they are marked #PRIVATE. w - Write existing pages. c - Create new pages. d - Delete pages. For example, permissions for the page "Foo" and its sub-pages could be granted by creating the file "page/F/Foo.acl" in the database dir, with the following content: . { anonymous: r } ./Test { anonymous: rwcd } ./* { anonymous: rwc } This means: - The page "Foo" may be read by everyone (even if it is marked private). - The page "Foo/Test" may be read, written, created, and deleted by everyone. - All other sub-pages may be read, written, and created -- but not deleted -- by everyone. # $Id$ # vim:tw=79