Friday, May 27, 2011

Easier BB2.0 Permission Assignment

Setting permissions in BB2.0 can be quite hard work. The system works on the principle of denying all access to all system functions unless told otherwise. At BlueBox we believe permissions systems should work this way, but that does make setting up a system time consuming.

Overview
As a quick recap of how the BB2.0 permissions structure works: permissions are issued per user group, and a user inherits the aggregation of all the permissions for all the groups they are in when he or she logs into the system. This is the cached into their session-state and, if changes are made to their profile/permissions, they would normally need to log out and back in again to get the new permissions.

In-line permissions setting
To ease the pain we have just released a new 'inline' permission setting functionality. Basically, when a user is presented with a 'you do not have permissions' dialogue, there is a SET button which appears. This allows another user, with the correct permissions, to assign the missing permissions to that user 'on the fly'. The new permission is automatically set (without the need to log out) and the user can proceed as required.

Quick refresh
Another innovation is the session-refresh functionality which was recently added next to the 'edit user' link in the top left of the screen. This nifty link simply refreshes all the system cache'd items for that user, including the menu. This will save users having to log off for updates in future.

Sunday, May 8, 2011

Access to and understanding BlueBox2.0 bbsetting_'s

Underlying the BB2.0 framework is a powerful set of settings, known as the bbsettings.

These are configurations which allow the system administrator to change the behaviour of BB2.0 modules without needing to apply any code.

An example of a bbsetting is bbsetting_module_name. This determines how the module is 'seen' and 'named' across the system. This way, for a specific installation, Sales Orders can become known as Internal Sales, for example, without impacting the formal class structure or the data structure.

An example of a more impactful bbsetting is bbsetting_email_on_add which takes an array in the form of

to=myemail@mydomain.com,

and optionally:

to=myemail@mydomain.com,
subject=This is a sample subject for this auto-generated email,
body=This is a sample message for this autogenerated email. The dosument just added has an id of (#_id#)

This hugely powerful bbsetting allows the system adim to drop in email triggers into any module which will email a specified or dynamic list of recipients with data pertaining to that specific new data entry.

This weekly blogging process is supposed to contribute to our internal 'sharpening of the axe' process, which is a weekly discipline to put 2-3 hours into 'fixing stuff' rather than continuing week after week with a blunter and blunter axe.

So, in this post, I am identifying a few imporvements for bbsettings which I plan to work on over the next few weeks:
  • If system admin is logged in (or a user with pseudo-admin rights), they should be able to see all settings for a specific module when they are in the module, without having to go to the Module Settings module.
  • This list of settings should allow them to edit the settings and view the options for each setting.
So, having decided on my next sharpening excercise... watch this space!

Sunday, May 1, 2011

Adobe BrowserLab

As a cross-browser developer I need an easy single source for testing my work on all the latest browsers. I searched around a bit and found Adobe BrowserLab to fit the bill.

I managed to get a free account, though I see from Adobe Forms that there will eventually be a charge of around $10-$20 per month for the service... still, having looked at a few of the competitors in this market, that is not a bad price.

Features include engines for all the latest browsers, a handy side-by-side viewer so that you can compare your development version next to the various other versions, and even cleverer was the onion-skin viewer which overlays the 2 verions to make spotting differences even easier.