- SecurityElement pset = e.SearchForChildByTag ("PermissionSet");
- if (pset != null) {
- Type classType = Type.GetType (pset.Attribute ("class"));
- ps = (PermissionSet) Activator.CreateInstance (classType, true);
- ps.FromXml (pset);
+ string psetname = e.Attribute ("PermissionSetName");
+ if ((psetname != null) && (level != null)) {
+ ps = level.GetNamedPermissionSet (psetname);
+ }
+ else {
+ SecurityElement pset = e.SearchForChildByTag ("PermissionSet");
+ if (pset != null) {
+ Type classType = Type.GetType (pset.Attribute ("class"));
+ ps = (PermissionSet) Activator.CreateInstance (classType, true);
+ ps.FromXml (pset);
+ }
+ else {
+ ps = new PermissionSet (new PermissionSet (PermissionState.None));
+ }