Loading...
 

Workspace_Profile

Developer notes for this profile are on Workspace_Profile_Dev

Readme


Private Spaces The WorkspaceProfile creates, in one step, a new user with content only they (and invited guests) can access. The starter set of content includes wiki pages, two file galleries (one private and one for sharing), and a blog.

Run once for each new private space. Each time you run the profile you can enter an owners name, and it will create a user and a private space for that user.

New objects named after the Users Name: Using the ProfileRequest variables that are submitted, the group, the category and the content all shares variations of the same FirstnameLastName. You can change these object names after the profile is run if desired.

Assigned to private "categroups": The profile creates two matched and auto-permissioned category-group pairs. Two categroups are created. One named after the user, which is their "private workspace" that they invite others into - with read only permissions for guests. The second is the "private" categroup for that user which is intended to contain content they alone can see and edit. Also, only members of the "dev" group can edit the "private area" content. This content will (hopefully) not be visible or listable to other (uninvited) users.

Can include boilerplate content: Wiki pages and blog posts can include boilerplate content based on the current content of the pages being called by the profile. See the wiki pages section below for a list of pages. No boilerplate content is currently provided, but it will look for existing pages in this DB.

Not using perspectives: This setup does not use or require the perspectives feature, only the configuration of categories and groups.

Other features currently disabled: Calendar, Twitter feed, User Menupage Modules are all included in this profile in various stages of (non)functionality. Modules are created but need to be assigned to groups manually.

Alpha version use with caution! This profile creates new objects, so it is unlikely to change existing objects groups or categories, it does not change global permissions.

Tested on 4.x, 5.x, 6.x. Originally made for 4.x.

warning: one little typo in an object reference will rubbish the whole profile. be precise. :)



please forward any questions/suggestions to mlpilling@gmail.com



1. Create Users


Currently you will have to create your user (or use existing ones) and assign them to the groups after the fact.

The default password is 'qwerty' - users will be prompted to change at first login.

YAML
objects:
 -
  type: users
  data: 
   -
    name: $profilerequest:FirstName$FirstName$ $profilerequest:LastName$LastName$
    pass: qwerty
    groups: [$profilerequest:LastName$LastName$ Dev,$profilerequest:LastName$LastName$]




2. Create Categories


to categorize a wiki page in the profile, add an extra line where all the other - [ wiki_page, ....stuff ] is. include the name if the page (if it is also being created by the profile, you must use a reference. (each wiki page should have a "ref:" you just put a dollar sign in front here.

- [ wiki_page, $stuff ]

make sure you are placing it in the right category by deciphering the "name:" or the "ref:" for the category.


YAML
objects:
 -
  type: category
  ref: owner_category
  data:
   name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$
   description: For the guests and associates of $profilerequest:FirstName$FirstName$ $profilerequest:LastName$LastName$
   items:
    - [ wiki_page, $owner_name ]
    - [ wiki_page, $owner_photos ]
    - [ wiki_page, $owner_hello ]
    - [ wiki_page, $owner_content_list ]
    - [ wiki_page, $owner_guest_menu ]
    - [ wiki_page, $owner_menu ]
    - [ file gallery, $owner_gallery]
    - [ blog, $owner_blog]
 -
  type: category
  ref: private_category
  data:
   name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Private
   description: For $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Only
   items:
    - [ wiki_page, $owner_content_list ]
    - [ wiki_page, $owner_photos ]
    - [ wiki_page, $owner_hello ]
    - [ wiki_page, $owner_menu ]
    - [ wiki_page, $owner_guest_menu ]
    - [ file gallery, $private_gallery]
    - [ file gallery, $owner_gallery]
    - [ blog, $owner_blog]


3. Create Groups

YAML
mappings:
 Owner: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$
 private: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Private

permissions:
 Owner:
  include: [ Registered ]
  home: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$
  objects:
   -
    type: category
    id: $owner_category
 private:
  include: [ Member, Registered ]
  home: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$
  default_category: $private_category
  objects:
   -
    type: category
    id: $private_category



4. Assign Categories & permissions


Owner Category

YAML
permissions:
 Owner:
  objects:
   -
    type: category
    id: $owner_category
    allow:
     - read_blog
     - view_events
     - view_calendar
     - view_tiki_calendar
     - search_categorized
     - view_categorized
     - vote_comments
     - post_comments
     - read_comments
     - suggest_faq
     - view_faqs
     - view_fgal_path
     - view_file_gallery
     - view_fgal_explorer
     - download_files
     - list_file_galleries
     - forum_read
     - group_view
     - group_view_members
     - view_html_pages
     - list_newsletters
     - subscribe_newsletters
     - vote_poll
     - view_poll_voters
     - view_poll_results
     - view_quiz_stats
     - take_quiz
     - take_survey
     - view_survey_stats
     - site_report
     - search
     - view_trackers
     - list_trackers
     - tracker_view_ratings
     - tracker_view_comments
     - comment_tracker_items
     - wiki_view_attachments
     - view
   
 private:
   -
    type: category
    id: $owner_category
    allow:
     - wiki_attach_files
     - read_blog
     - post_blog


Owner Dev Category

YAML
permissions:
 private:
  objects:
   -
    type: category
    id: $private_category
    allow:
     - read_blog
     - blog_post
     - view_events
     - view_calendar
     - add_object
     - view_tiki_calendar
     - search_categorized
     - view_categorized
     - vote_comments
     - post_comments
     - read_comments
     - suggest_faq
     - view_faqs
     - view_fgal_path
     - view_file_gallery
     - view_fgal_explorer
     - download_files
     - upload_files
     - list_file_galleries
     - forum_read
     - group_view
     - group_view_members
     - view_html_pages
     - list_newsletters
     - subscribe_newsletters
     - vote_poll
     - view_poll_voters
     - view_poll_results
     - view_quiz_stats
     - take_quiz
     - take_survey
     - view_survey_stats
     - site_report
     - search
     - view_trackers
     - list_trackers
     - tracker_view_ratings
     - tracker_view_comments
     - comment_tracker_items
     - wiki_view_attachments
     - view
     - edit
     - wiki_attach_files



Creating New Objects

5. Create File Galleries

YAML
objects:
 -
  type: file_gallery
  ref: private_gallery
  data:
   name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Private Files
   description: Private Gallery for $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$
   archives: 0
   parent: 6
   flags: [ public, visible, lockable ]
   column: [ icon, id, name, description, size, created, creator, files ]
 -
  type: file_gallery
  ref: owner_gallery
  data:
   name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Shared Files
   description: Public Gallery for $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$
   archives: 0
   parent: 6
   flags: [ public, visible, lockable ]
   column: [ icon, id, name, description, size, created, creator, files ]
   popup: [explorer, comment]



6. Create a Calendar (DISABLED)

YAML

Turned off because it is buggy
objects:
-
type: calendar
ref: owner_calendar
data:
name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$
mode: create_or_update
options:
show_name: y type: calendar


7. Blog and Readme Post

YAML
objects:
 -
  type: blog
  ref: owner_blog
  data:
   title: $profilerequest:Blog_Title$My Blog$
   description: $profilerequest:FirstName$FirstName$'s Blog
   user: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$
   use_title: y
   allow_comments: N
   heading : $profilerequest:Blog_Slogan$My blog is awesome$
 -
  type: blog_post
  ref: owner_blog_first_post
  data:
   blog: $owner_blog
   title: READ ME
   content: just look for the button with the pencil, eh?



8. Twitter RSS Feed (DISABLED)

This will create an RSS Feed that will display your Tweets on the right side
YAML

objects:
-
type: rss
ref: owner_twitter
data:
name: $profilerequest:LastName$LastName$ Tweets
url: http://twitter.com/statuses/user_timeline/$profilerequest:Twitter_Number$12345678$.rss




9. Wiki Pages


This will contain a list of all the pages to be recreated for each user's instance.

Owner Home (Home page)
Owner Hello (Hello message to guests)
Owner Photos
Owner Content List
Owner Menu
Owner Guest Menu

YAML
objects:
 -
  type: wiki_page
  ref: owner_content_list
  data:
   name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Content List
   content: wikicontent:Owner Content List
 -
  type: wiki_page
  ref: owner_photos
  data:
   name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Photos
   content: wikicontent:Owner Photos
 -
  type: wiki_page
  ref: owner_hello
  data:
   name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Welcome Message
   content: wikicontent:Owner Hello
 -
  type: wiki_page
  ref: owner_name
  data:
   name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$
   content: wikicontent:Owner Home 
 -
  type: wiki_page
  ref: owner_menu
  data:
   name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Menu
   content: wikicontent:Owner Menu 
 -
  type: wiki_page
  ref: owner_guest_menu
  data:
   name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Menu
   content: wikicontent:Owner Guest Menu



Note: if you are using these menupage modules you may have to assign them to the right groups yourself.

YAML
objects:
 -
  type: module
  ref: private_module
  data:
   name: menupage
   position: left
   groups: [ $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Dev ]
   order: 1
   params: 
    pagemenu: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Menu
    title: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Private Content
    nobox: n
    decorations: n 
    notitle: y
 -
  type: module
  ref: private_guest_module
  data:
   name: menupage
   position: left
   groups: [ $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Dev ]
   order: 1
   params: 
    pagemenu: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Guest Menu
    title: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Content
    nobox: n
    decorations: n 
    notitle: y