Roo.get('loading-mask').show();
}
-
-
-
- /*
- Roo.MessageBox.show({
- title: "Please wait...",
- msg: "Building Interface...",
- width:340,
- progress:true,
- closable:false
-
- });
- */
- //Pman.onLoadBuild();
- //Roo.get(document.body).mask("Building Interface");
- //Pman.onLoadBuild.defer(100, Pman);
- //Pman.onLoadBuild();
-
- // },
- //onLoadBuild : function() {
-
+
var _this = this;
this.stime = new Date();
this.layout = new Roo.BorderLayout(document.body, {
/**
- * eg. has Pman.hasPerm('Admin.Admin_Tab', 'S') == showlist..
+ * hasPerm:
+ * Does the authenticated user have permission to see this.
*
+ * @param {String} name the [Module].[permission] to check for
+ * @param {Char} lvl - which type of permission to use (eg. S=show...)
+ * @returns {Boolean} tue indicates permission allowed
*/
hasPerm: function(name, lvl) {
if (
return Pman.Login.authUser.perms[name].indexOf(lvl) > -1;
},
-
-
+ /**
+ * hasPermExists:
+ * Is there a permission defined for this (used by module registration.)
+ *
+ * @param {String} name the [Module].[permission] to check for
+ * @returns {Boolean} tue indicates permission exists.
+ */
+ hasPermExists: function(name) {
+ if (
+ (typeof(Pman.Login.authUser) != 'object')
+ ||
+ (typeof(Pman.Login.authUser.perms) != 'object')
+ ||
+ (typeof(Pman.Login.authUser.perms[name]) != 'string')
+ ) {
+ return false;
+ }
+ return true;
+ },
},
+ /**
+ * @property {Array} appModules - array based on AppModules global
+ */
+ appModules : false,
modules : false,
/**
*
* Pman.register({
modKey : '00-admin-xxxx',
- module : Pman.Tab.projectMgr,
- moduleName : 'Pman.Tab.projectMgr',
+ module : Pman.Tab.projectMgr, << really a components..
+ part : [ 'Admin', 'ProjectManager' ]
+ moduleOwner :
region : 'center',
parent : Pman.layout
})
register : function(obj)
{
+
+ // work out owner..
+ if (!this.appModules === false) {
+ this.appModules = typeof(AppModules ) == 'undefined'? [] :
+ AppModules.split(',');
+ }
+
+
+
// ignore registration of objects which are disabled.
+ // global supplied by master.html
appDisabled = typeof(appDisabled) == 'undefined' ? [] : appDisabled;
- if ((typeof(obj.moduleName) != 'undefined')
- && appDisabled.indexOf(obj.moduleName) > -1)
- {
- return;
+
+ /// design flaw
+ // previously we did not a good naming policy for module and parts
+ // most things that are called module here, really are 'parts'
+ // new versions should have 'part' as [ module : part ]
+
+
+ if (typeof(obj.part) != 'undefined') {
+
+ var permname = obj.part.join('.');
+ // we now have permission...
+ // obj.moduleOwner '.' lname
+
+ if (this.hasPermExists(permname) && !this.hasPerm(permname,'S')) {
+ // it's a turned off permission...
+ Roo.log(permname + " is Disabled for this user");
+ return;
+ }
+ if (appDisabled.indexOf(permname) > -1) {
+ Roo.log(permname + " is Disabled for this site");
+ return;
+ }
+
+
}
+
+
if (!obj.parent) {
if (obj.parent === false) {
//console.log('skip module (no parent)' + obj.modkey);
}
// this is an error condition - the parent does not exist..
// technically it should not happen..
+ console.log("Parent is missing");
console.log(obj);
+ return;
}
if (!obj.parent.modules) {
obj.parent.modules = new Roo.util.MixedCollection(false, function(o) { return o.modKey });
if (typeof(mod) == 'function') {
mod();
+ } else if (typeof(mod.region) == 'undefined') {
+ Roo.log("Module does not have region defined, skipping");
+ Roo.log(mod);
+
} else if (mod.parent.layout && !mod.module.disabled) {
// honour permname setings..
if (mod.permname && mod.permname.length) {
}
} else {
mod.module.add(mod.parent.layout, mod.region);
- }
-
-
+ }
}