RSS Feed Available AddThis - Bookmarking and Sharing Button Printer Friendly
  •  
  •  
  •  
  •  
  •  

Introducing Forum Categories and Features by Entity

by Will M on 04 Oct 2009 09:00 PM

My next few blog posts are going to cover some of the changes coming in the next release of Active Forums.  While some of these changes will sound fairly substantial, I assure you that every development decision for this release has taken upgrade procedures into consideration.  We have made sure that the upgrade process will be as simple uploading the new package and verifying your settings in the control panel.  Let's start with the biggest change and the one I expect to have the most questions.

Since the first release of Active Forums we have followed the typical forum design of a Forum Group/Forum/Sub Forum structure.  We have found that many customers want greater flexibility, more options and easier administration.  Even with the current capability of being able to inherit settings from the group level, management can still be time consuming.  We have also found that larger forum implementations have the need for deeper levels of organization.  The best way for us to address these issues was to move to a category/sub-category structure.

Forum Categories are equivalent to what you currently know as forums.  Managing forum categories will be nearly the same as you manage forums today.  I say nearly the same because we have added new options and the concept of "Inherit Group Settings" no longer applies.  I know some people just said, "WHAT??? Remove Inherit Group Settings?"  Now that we have Permission and Configuration Sets, inherit group settings is no longer necessary. 

For our existing customers this concept probably sounds more intimidating than exciting.  Once you see Forum Categories in action the concept will be a little easier to grasp.  Your configuration options will be quite extensive.  However, for those upgrading and are resistant to change, you can relax knowing the default forum behavior will be exactly as you know it today. 

My first concern when we were considering offering multiple levels of forum categories was maintenance.  Even with Configuration and Permission Sets, maintenance could become very time consuming.  After talking with customers and reviewing several implementation scenarios we came up with the idea to offer Permission and Configuration Sets by Entity.  An entity can be any kind of persistent identifier.  I'm going to use our forum categories and Security Roles as an example. 

Forum Structure for Active Social
  •  Active Social
    • General Discussion
    • Support
    • Feature Requests
    • Customizations
    • Customer Only
    • Knowledge Base
In order for us to properly secure our current forum structure, we can't inherit group settings and have to define features and security for each forum.   In most cases, we have different permission and feature levels based upon registered users, customers, Active Social Customers, Staff and Administrators.  With Features By Role, we can define permissions and features at a global level for our entire portal for a specific role, user or an entity such as an Active Social Group.  Instead of a couple dozen clicks to setup a new forum, it can now be as simple as entering a forum name and clicking save. 

For those customers that like to take a look under the hood, I'm sure you are wondering how the data model has changed.  I have outlined the changes below.  Please keep in mind that this is not final and subject to change prior to release.
  1. Added two new tables: activeforums_Permissions and activeforums_Configs.  These are very simple tables that are designed to uniquely store an xml document containing the various security and configuration options. 

  2. Foreign keys added to activeforums_Forums table for PermissionSetId and ConfigId.

  3. All forums and groups are immediately associated with the default permission and config set we have defined.  This is to ensure a successful upgrade process if an error should occur during the remaining steps.

  4. The upgrade script starts by checking to see if any forums inherit settings from a group.  If necessary, a permission and config set will be created and associated with the group.

  5. The upgrade script will then create permission and config sets for each forum that doesn't inherit from a group.  The forum entry is then updated to reflect the new permission and config set.

  6. Data from the activeforums_Groups table is then moved to the activeforums_Forums table and the ParentForumId is set to 0.

  7. The ParentForumId for existing forums that were previously related to a group, is updated to the ForumId for the new entry for the group.

  8. The final step is to rebuild the sort order for all entries. 

  9. The upgrade script will not remove any data or delete any tables.  We will provide a clean-up script for those that wish to remove tables that are no longer necessary.
As I have mentioned, our goal is to make this upgrade as easy as possible.  We have been testing this upgrade process on various installations in multiple environments since May.  It was crucial that we knew the upgrade process worked before we moved forward these changes.

My next blog post will either be the new controls and layout options or the custom attributes feature with pick-list search.


    10 Comments for Introducing Forum Categories and Features by Entity

    MHuijbregts
    MHuijbregts
    05 Oct 2009 01:01 AM
    www.biservices.eu
    Hi Will,

    Thanks for the extensive update on Active Forums 5. I'm looking forward for to the upcoming blogs that you have in store for us.
    Terry Sadler
    Terry Sadler
    05 Oct 2009 06:55 AM
    www.compassnorthgroup.com
    Will,

    Sounds like a great way of managing permissions. Something along the lines of RBAC (role based access control).
    Raymond
    Raymond
    05 Oct 2009 04:55 PM

    This seems to make a lot of sense.

    Will you be able to add to these? Meaning, if I create a standard Permission set, but I need to add another set of permissions on the same forum for just one or two roles, will I be able to do that?

    For instance, I may may a standard set that includes permissions for my admins, moderators and unregistered users. But for a specific forum, I may want to let members or admins of a specific Active Social Group have different permissions.
    Jason Peterson
    Jason Peterson
    05 Oct 2009 09:26 PM

    will the current template code change and if so how much?
    Will Morgenweck
    Will Morgenweck
    06 Oct 2009 01:03 PM
    www.activemodules.com
    Current templates will still work, but will not support any of the new features. The template system is now similar to Active Social with a few more improvements.
    Cliff Hammock
    Cliff Hammock
    06 Oct 2009 09:38 PM

    @Raymond, are you asking if multiple config files can be applied to a Category or Sub-Category? If so, that is an interesting concept? Would config settings be propagated like CSS maybe? Just curious how this might work?

    StomperNet uses the new Community Server from Telligent for its member portal. It seems to be setup kind of like what you are suggesting. Will, are you familiar with Community Server? I am just trying to relate how StomperNet has implemented CS and how I use it as a member to what the possibilities might be with this new AF architecture.

    Can't wait for the AF 5 release.

    Cliff
    Raymond
    Raymond
    07 Oct 2009 11:23 AM

    Not Config files. From what Will has described the Configuration and Permission Sets are data sets that tie to a forum. That is great for general purposes and I can see for each forum it would cover 80-90% of the permissions that I would need to assign. But if I have to create a new Permission set if there is one additional role that need to have permissions for a forum, that may mean that I have to create a Permission set for 80-90% of my forums. That defeats the purpose behind what they are doing.

    So I may have one Permission set that covers 80% of the roles in my application. I could probably just add that set to each forum and that would save me a lot of time. But then each Active Social forum (for instance) would need another role or two granted unique permissions just for that forum.
    Jashan Chittesh
    Jashan Chittesh
    21 Oct 2009 10:40 AM

    I very much agree with Raymond that being able to "tweak" the configuration/permission sets per forum would be kind of a must. So, "most stuff" would be handled by a few permission sets but individual settings would then be "overridden" per forum.

    For example: I have a set of forums (now "categories") which are all almost identical - except that for each of them, another user group has posting permissions (or read/posting permissions). As each of these "per group permissions" only exist for a single forum, I'd rather keep those settings "directly in the forum" (or category) instead of creating a new set for each (which is only used by a single category and thus would terribly clutter the list of sets).

    I think the full flexibility of CSS is not really needed here - just a two level approach: Level 1: The "set", Level 2: The specific category which can overwrite any number of settings from Level 1. Implementation should be easy, given that this is done in XML. Just read in the Level 1 first, keep Level 2 sparse (just what is changed is stored) and overwrite Level 1 with Level 2 on load.

    The user interface might be a little more challenging here. In general, I think the best approach for these kinds of things are checkboxes with each setting or settings group, which says "override" or "inherit from set".
    G.O.
    G.O.
    29 Oct 2009 07:43 AM

    Will,
    If we set up forums under AF 4.2 and the current format and structure, will we be able to change the existing forums to the new layout options?

    And, I had to ask, any idea of when AF 5 may be ready?
    Thanks
    Stephen
    Alan Froggatt
    Alan Froggatt
    16 Jan 2010 03:30 AM
    www.Genratec.com
    AF 5? ... time line?
    Just checking.
    test
    Copyright 2012 by DotNetNuke Corporation / Terms of Use / Privacy