Loading...
 
Skip to main content

History: Workspace_Profile

Source of version: 5 (current)

Copy to clipboard
            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 [mailto:mlpilling@gmail.com|mlpilling@gmail.com]

{maketoc}

!!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.

{CODE(caption=>YAML,wrap=>1)}
objects:
 -
  type: users
  data: 
   -
    name: $profilerequest:FirstName$FirstName$ $profilerequest:LastName$LastName$
    pass: qwerty
    groups: [$profilerequest:LastName$LastName$ Dev,$profilerequest:LastName$LastName$]

{CODE}



!!2. Create Categories

__to categorize a wiki page in the profile__, add an extra line where all the other~np~   - [ wiki_page, ....stuff ] ~/np~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. 

~np~   - [ wiki_page, $stuff ] ~/np~

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


{CODE(caption=>YAML,wrap=>1)}
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]
{CODE}

!!3. Create Groups
{CODE(caption=>YAML,wrap=>1)}
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
{CODE}


!4. Assign Categories & permissions

!!Owner Category
{CODE(caption=>YAML,wrap=>1)}
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
{CODE}

!!Owner Dev Category
{CODE(caption=>YAML,wrap=>1)}
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

{CODE}


!Creating New Objects
!!5. Create File Galleries
{CODE(caption=>YAML,wrap=>1)}
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]
{CODE}


!!6. Create a Calendar (DISABLED)
{CODE(caption=>YAML,wrap=>1)}
{CODE}
__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
{CODE(caption=>YAML,wrap=>1)}
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?
{CODE}


!!8. Twitter RSS Feed (DISABLED)
This will create an RSS Feed that will display your Tweets on the right side
{CODE(caption=>YAML,wrap=>1)}
{CODE}
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))

{CODE(caption=>YAML,wrap=>1)}

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 
{CODE}

!!10. Menupage Modules

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

{CODE(caption=>YAML,wrap=>1)}
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

{CODE}