In Tiki19, permissions were further improved with better handling of the parent-child concept. Tiki21 introduces Templated Groups and Roles. This is not necessarily reflected in the documentation below.
Permissions Settings
Understanding Tiki Permissions
Along with setting the features, setting permissions is one of the basic aspects of Tiki administration. This page describes the basic concepts in Tiki's permission system and how the various aspects interact. A complete list of permissions can be found on the Permissions List page.
How Permissions Work
Main points of the permission system in Tiki
- When Tiki is installed, there are three pre-defined Groups of users:
- Anonymous: Users that are not logged in are in the Anonymous group.
- Registered: Users that are logged in are in the Registered group.
- Admin: The person who installs Tiki is the initial member of the Admin group.
- Administrators (Admin group members) can create and edit Groups of users.
- Each group can have fully customized access to all site features.
- Users can be assigned to one or several groups.
- Groups can have subgroups.
- Permissions are assigned to groups of users, not to individual users.
- Individual objects such as wiki pages can have permissions applied to them directly, for particular user groups.
- If no permissions are specified for a group for an object or content category, then global permisions apply.
- Administrators can create and edit a content Category.
- Objects can be added to content categories.
- A content category can then be assigned to a group.
- Category-based permissions, when used (it's an "advanced" feature), give members of the groups the permissions assigned to them.
In what order are permissions settings applied?
It is important to understand that Tiki uses several types of permissions:
- Global permissions: Each site visitor belongs to a Group (such as Anonymous or Registered). The permissions you assign to the group define the global site-wide permissions for that user.
- Category permissions: These permissions define the actions that users can take for objects in a specific content category.
- Object permissions: These permissions define the actions that user can take for an individual object.
- See also: Permission Enforcement Order
Tip: The setup of permissions is much easier when you are still learning how to master them if you avoid the level of Category permissions, and you only use Global and Object permissions.
Permissions are inherited from from the top-down, but override from the bottom-up.
This image illustrates the relationship among Group, Category, and Object permissions.
Tiki's permissions model may look like complex... but is also very customizable.
Permissions Example
Consider the following example for a company using Tiki:
You have the groups:
- Anonymous
- Employees
- Board of Directors
The Groups for ABC Company
Notice that some groups include other groups. For example, members of the Board of Directors group will include, in addition to their own permissions, the permissions from the Employees, Registered, and Anonymous groups.
You have the categories:
- Financial Information
- Press Releases
You want to give:
- Everyone permission to read most pages
- Employees permission to edit most wiki pages
- Board Members only, access to the company's financial information.
Global (Group) Permissions
First, you need to define the global permissions for each group.
Defining the Global permissions for each group.
Anonymous
- To let the general public (that is, anonymous visitors) view wiki pages, assign tiki_p_view to Anonymous.
Employees
- The Employee group includes the Anonymous group (that is, everyone) and Registered group (that is, users who are logged in). Therefore, the Employee group inherits the tiki_p_view permission from these groups.
- To let employees edit pages, assign tiki_p_edit to Employees.
Board of Directors
- The Board of Directors group includes the Anonymous, Registered, and Employees groups. Therefore, the Board of Directors group inherits the tiki_p_view and tiki_p_edit permission from these groups.
This group does not require any additional permissions.
Category Permissions
Now that the Global permissions are set, you can adjust the permissions for each category. These settings will override the Global permissions. The Category permissions can be set for each category from the Settings > Categories (tiki-admin_categories.php) page.
Note:
Remember that Category permissions are an advanced feature only recommended for experienced users of Tiki, mastering already how Global and Object permissions work.
Press Releases
Currently, Anonymous can view press releases, and Employees can edit them (as defined by the Global permissions). To allow only the Board of Directors to edit press releases, you must assign permissions to the category. This will override the default group (global) permissions:
- For the Press Releases category, remove tiki_p_edit from Employee. Now only the Board of Directors group can edit wiki pages in the category.
- Anonymous visitors (and all groups that inherit the Anonymous group's permissions) can still view the pages.
Defining the Category permissions for the Press Releases category.
Financial Information
Currently, Anonymous can view Financial Information, and Employees can edit them. But we want only the Board of Directors to have access (both view and edit) to these pages. You'll need to make the same adjustments to the Financial Information category's permissions:
- Remove tiki_p_edit from Employee. Now only the Board of Directors group can edit wiki pages in the category.
- Remove tiki_p_view from Employee, Registered, and Anonymous. Now only the Board of Directors can see the pages.
Object Permissions
But what if you want one item in the Financial Information category, to be visible to the public? You can override all other permissions, by assigning specific permissions to the object itself. For example, the ABC Company may have a public disclosure form, issued by the government, that it needs to make public (but that only the government can change or update):
- For the individual item, remove tiki_p_edit from the Employee and Board of Directors group. Since this form is issued by the government, no one should be able to change it.
- Anonymous visitors (and all groups that inherit the Anonymous group's permissions) can still view the pages.
Assigning object-specific permissions to the PublicDisclosure page.
Object Permissions can be tricky.
For example using version 10, if you wanted to hide one wiki page made by admin from the Anonymous group you would select the page's permissions (from the admin menu : Wiki/List Pages/then click the Key icon for your page in the list).
Using the object permission page of the wiki page, you turn off the "Can view page/pages (tiki_p_view)" attribute and save.
However, after loging off, and connecting as Anonymous you can still see the page.
It turns out that you have to turn off the "Can view page/pages (tiki_p_view)" AND "Can admin the wiki (tiki_p_admin_wiki)" attributes to hide the wiki page from the Anonymous group.
Managing permissions
While entering a filter, JQuery will rebuild the list. Do not press enter or you'll start all over.
The interface has three tabs. The first tab is for assigning permissions.
The second tab is to select which groups should be included in the table for assigning permissions, because, when the list of groups is large, assigning permissions could be slow.
The third tab is to filter the number of features that should be shown in the interface. This is specially needed when managing category permissions, to avoid having a list bigger than needed for our purposes in specific cases.
In addition, this new interface to manage permissions includes several features:
- You can assign or remove all object permissions on all child categories if this box is checked.
- You can filter the whole list of permissions dynamically to list only those containing some text
- You can expand or collapse at will any of the sections of permissions
- You can select one by one the permissions to be assigned or checking the box at the column title (group name) level, and that selection will propagate to all the checkbox shown in that column.
Permissions by section
Name | Description | Permissions | Can override global permissions? |
---|
File Gallery | Storage and sharing via download or display in pages, of images, videos, and other file types . Supports check-in and check-out (lock), versions, etc. | tiki_p_admin_file_galleries
tiki_p_create_file_galleries
tiki_p_upload_files
tiki_p_download_files
NOTE: If you store images in the file gallery, you must include tiki_p_download_files in order for groups to view the images.
tiki_p_view_file_gallery
tiki_p_batch_upload_files | yes | Calendar | Events calendar with public, private and group channels | tiki_p_view_calendar
tiki_p_change_events
tiki_p_add_events
tiki_p_admin_calendar
tiki_p_view_tiki_calendar | yes | File Gallery | File Galleries enable secure and efficient uploading, storage, downloading and other serving of all types of files including images, videos, podcasts, text and PDF documents and more. | tiki_p_admin_galleries
tiki_p_create_galleries
tiki_p_upload_images
tiki_p_view_image_gallery
tiki_p_batch_upload_images
tiki_p_batch_upload_image_dir | yes | Trackers | Facts and figures storage and retrieval. A forms and database generator, with reporting. Can be used for a bug tracker, item database, issue tracker, etc | tiki_p_modify_tracker_items
tiki_p_comment_tracker_items
tiki_p_create_tracker_items
tiki_p_admin_trackers
tiki_p_view_trackers
tiki_p_attach_trackers
tiki_p_view_trackers_pending
tiki_p_view_trackers_closed
tiki_p_tracker_view_ratings
tiki_p_tracker_vote_ratings | yes | Wiki | Collaboratively authored documents with history of changes. Tiki's wiki has all the features you could want from a first-rate wiki. Ex.: attach files, comments, history, images, warn on edit, page locking, powerful wiki syntax, alternative WYSIWYG editor, etc. | tiki_p_edit
tiki_p_view
tiki_p_remove
tiki_p_rollback
tiki_p_admin_wiki
tiki_p_wiki_attach_files
tiki_p_wiki_admin_attachments
tiki_p_wiki_view_attachments
tiki_p_upload_picture
tiki_p_minor
tiki_p_rename
tiki_p_lock
tiki_p_edit_structures
tiki_p_edit_copyrights
tiki_p_wiki_view_comments
tiki_p_wiki_view_ratings
tiki_p_wiki_vote_ratings
tiki_p_wiki_admin_ratings
tiki_p_wiki_view_history
tiki_p_use_HTML | yes | Maps | Maps can be created and displayed using OpenLayers and OpenStreetMap. | tiki_p_map_edit
tiki_p_map_create
tiki_p_map_delete
tiki_p_map_view
tiki_p_map_view_mapfiles | | Kaltura Video | Video management | | | My Account | Provide content organization and communication tools for registered users
Bookmark, User Preferences, Watch, User Menu, Task, Inter-User Messages, User Files, Notepad and Mini Calendar
| tiki_p_configure_modules
tiki_p_minical
| N/A | Articles | Articles can be used for date-specific news and announcements. You can configure articles to automatically publish and expire at specific times or to require that submissions be approved before becoming "live." In addition to categories and tags, articles include their own unique classification system of Topics and Types. | tiki_p_edit_article
tiki_p_remove_article
tiki_p_read_article
tiki_p_submit_article
tiki_p_edit_submission
tiki_p_remove_submission
tiki_p_approve_submission
tiki_p_admin_cms
tiki_p_autoapprove_submission
tiki_p_topic_read | via topic_read | FAQ | Create pages of frequently asked questions and answers. | tiki_p_admin_faqs
tiki_p_view_faqs
tiki_p_suggest_faq | no | Survey | Create questionnaires with multiple-choice or open-ended questions. | tiki_p_admin_surveys
tiki_p_take_survey
tiki_p_view_survey_stats | yes | Quiz | Create timed quizzes with recorded scores. | tiki_p_admin_quizzes
tiki_p_take_quiz
tiki_p_view_quiz_stats
tiki_p_view_user_results | yes | Blog | Multiple blogs can be created with various author and display configurations, etc. | tiki_p_create_blogs
tiki_p_blog_post
tiki_p_blog_admin
tiki_p_read_blog | yes | Featured links | Simple menu system which can optionally add an external web page in an iframe | | | Task | A site user's to-do list. Tasks can be sent to other users. Also, there can be shared group tasks. | tiki_p_tasks
tiki_p_tasks_send
tiki_p_tasks_receive
tiki_p_tasks_admin | N/A | Slideshow | Turn a wiki page into slideshow (each slide is the wiki content only, without "chrome") by using more than one title bar in the page, or make a multi-page slideshow from a structure. | | | BigBlueButton Audio/Video/Chat/Screensharing | Open source instruction-focused real-time collaboration tool. (Audio/Video/Screensharing/Chat) | | | Screencast | This permits capturing the device screen and uploading to Tiki. An image is produced (that you can then draw on), or short video with sound. The jCapture applet is used. | | | Messages | Internal (within the site) messages from one site user to another. | | | Webmail | Provides a webmail interface for site users' own IMAP or SMTP accounts. The Webmail tool has been massively improved since in Tiki20. Please see Email as a first-class citizen | | | Chat | Real-time group text chatting | tiki_p_admin_chat
tiki_p_chat | | My Account Inter-User Messages | Enable users to send internal messages to each other (like email but internal to the Tiki site). A message can be broadcast to multiple users in a Tiki group or to all site users if the appropriate permissions are granted. | tiki_p_messages
tiki_p_broadcast
tiki_p_broadcast_all | N/A | Spreadsheets | Spreadsheets supporting calculations and charts, import/export, etc. | tiki_p_admin_sheet
tiki_p_edit_sheet
tiki_p_view_sheet
tiki_p_view_sheet_history | no | Directory (links) | User-submitted Web links | tiki_p_admin_directory
tiki_p_view_directory
tiki_p_admin_directory_cats
tiki_p_admin_directory_sites
tiki_p_submit_link
tiki_p_autosubmit_link
tiki_p_validate_links | yes | Newsletters | Create and send email newsletters (plain text and HTML) to subscribed site users and other individuals. | tiki_p_admin_newsletters
tiki_p_subscribe_newsletters
tiki_p_subscribe_email
tiki_p_send_newsletters | yes | Forum | Forums are online discussions organized by topic (or thread). Tiki forums feature threaded or flat views, file attachments, moderation and queuing, monitoring (subscription) of particular forums or topics, and full usage of wiki syntax. | tiki_p_admin_forum
tiki_p_forum_post
tiki_p_forum_post_topic
tiki_p_forum_read
tiki_p_forum_vote
tiki_p_forums_report
tiki_p_forum_attach
tiki_p_forum_autoapp | yes | Live support | One-on-one chat with customer or other individual | tiki_p_live_support_admin
tiki_p_live_support | | HTML page | Static and dynamic HTML content. Note: HTML can be used in wiki pages. This is a separate feature. | tiki_p_view_html_pages
tiki_p_edit_html_pages | | User Files | Users upload files and store them in their Tiki personal space; they can then download the files. | tiki_p_userfiles | | User notepad | Users can write, upload, download and read notes. Notes can be read as raw text files or as wiki pages interpreting the wiki markup syntax. The user-quota that admin can control is used to set the maximum size that user notes can take. | tiki_p_notepad | N/A | User Page | This provides each user with a personal wiki page that only he/she can edit. All User Pages have a similar, configurable name that includes the user name. | | | Shoutbox | Quick comment (graffiti) box. Like a group chat, but not in real time. | tiki_p_view_shoutbox
tiki_p_admin_shoutbox
tiki_p_post_shoutbox | no | Contact | Basic form for site visitors to send a message to the site admin. | | N/A | Friendship network | Users can designate other users as "friends" using either the "follow" or "like" method. | | | Shopping Cart | A simple shopping cart feature - Information on products or services can be maintained in wiki pages or trackers with display via Pretty Tracker ) and purchases added to Module Cart through the PluginAddToCart and sent to the payment page. | | |
Demo site for testing
Category permissions
Permissions can be restricted via the category feature. Basically, you can already assign all the permissions you need as described above. The full granularity of permissions can be assigned to categories (and thus inherited when objects belong to a given category).
If an object has no specific (object) permissions, then:
- If the object is not part of any category with specific permissions, global permissions apply.
- If the object is part of at least one category with specific permissions, the permissions on that object are the sum of the permissions granted to all of the object's categories which have specific permissions.
For example, if...
- wiki page Foo has no specific permissions
- the set of categories Foo is in is category #3 and category #5
- and category #3 has no specific (category) permissions
... then:
- If category #5 has no with specific permissions, global permissions apply.
- If category #5 has specific permissions, the permissions on Foo are the permissions on category #5.
Because adding a category to an object can provide additional rights, it is important to protect who can assign categories to prevent undesired escalation. For example, if the site contains public and private information, someone with access to edit private information should not be able to make it available publicly by changing the categories. To resolve this issue, multiple permissions can be assigned to the categories.
To begin with, tiki_p_modify_object_categories allows to determine if the user is allowed to modify the categories of the object at all. Without this permission, it will be impossible to modify the categories. Typically, it is safe to grant this permission widely.
Then, there is higher granularity available for each category. tiki_p_add_object and tiki_p_remove_object determine if the user can add or remove elements from the category. Categories on which permissions are specified should also specify who can assign to or remove from those categories. When a user has the tiki_p_modify_object_categories permission on an object and modifies that object, but lacks the tiki_p_add_object permission on a certain category, the user will see a checkbox for that category, but the checkbox will be disabled.
Additionally, some category changes may be allowed in certain contexts by defining Category Transitions, which would allow to change a category only from a certain state. A group of transitions create a workflow.
Workspaces
Workspaces further facilitate management of large and complex Tiki sites.
Admin permissions and special permissions
When a group has an admin permission on a feature such as tiki_p_admin_sheet, the group will lost his admin permission for an object with local perms or categories permissions.
Customising the permissions list (re-ordering it) for power users.
Since Tiki19 it is possible to customise and re-order the list of the permissions displayed under Setting => Permissions (tiki-objectpermissions.php). Super user can edit a yaml file located at : tiki-objectpermissions_order.yml.
Note
Some information on this page is from Tiki for Dummies Smarties, copyright (C) by Rick Sapir, published by KeyContent.org, and available under a Creative Commons Attribution-Share Alike License.
Alias
|