public CswNbtNode makeRoleNodeFromRoleName(string RoleName) { CswNbtNode RoleNode = null; CswNbtMetaDataObjectClass Role_ObjectClass = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.RoleClass); CswNbtMetaDataObjectClassProp RoleName_ObjectClassProp = Role_ObjectClass.getObjectClassProp(CswNbtObjClassRole.PropertyName.Name); // generate the view CswNbtView View = new CswNbtView(_CswNbtResources); View.ViewName = "CswNbtNodes.makeRoleNodeFromRoleName(" + RoleName + ")"; CswNbtViewRelationship RoleRelationship = View.AddViewRelationship(Role_ObjectClass, false); CswNbtViewProperty Prop = View.AddViewProperty(RoleRelationship, RoleName_ObjectClassProp); CswNbtViewPropertyFilter Filter = View.AddViewPropertyFilter(Prop, CswNbtFieldTypeRuleText.SubFieldName.Text, CswEnumNbtFilterMode.Equals, RoleName, false); // generate the tree ICswNbtTree UserTree = _CswNbtResources.Trees.getTreeFromView(View, false, true, IncludeHiddenNodes: true); // get user node UserTree.goToRoot(); if (UserTree.getChildNodeCount() > 0) { UserTree.goToNthChild(0); RoleNode = UserTree.getNodeForCurrentPosition(); } return(RoleNode); }
public static CswNbtViewNode makeViewNode( CswNbtResources CswNbtResources, CswNbtView View, CswDelimitedString ViewNodeString ) { CswNbtViewNode newNode = null; CswEnumNbtViewNodeType type = (CswEnumNbtViewNodeType) ViewNodeString[0]; if( type == CswEnumNbtViewNodeType.CswNbtViewRelationship ) { newNode = new CswNbtViewRelationship( CswNbtResources, View, ViewNodeString ); } else if( type == CswEnumNbtViewNodeType.CswNbtViewProperty ) { newNode = new CswNbtViewProperty( CswNbtResources, View, ViewNodeString ); } else if( type == CswEnumNbtViewNodeType.CswNbtViewPropertyFilter ) { newNode = new CswNbtViewPropertyFilter( CswNbtResources, View, ViewNodeString ); } else if( type == CswEnumNbtViewNodeType.CswNbtViewRoot ) { newNode = new CswNbtViewRoot( CswNbtResources, View, ViewNodeString ); } else { throw new CswDniException( CswEnumErrorType.Error, "Invalid ViewNode", "CswNbtViewNode.makeViewNode() got an invalid ViewNodeString: " + ViewNodeString.ToString() ); } return newNode; } // makeViewNode()
public static void setReceiptLotPermissions(CswNbtResources CswNbtResources, bool ModuleIsActive) { // CIS-52258 - grant Receipt Lot permissions to cispro_ roles CswNbtMetaDataObjectClass ReceiptLotOC = CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ReceiptLotClass); CswNbtMetaDataObjectClass RoleOC = CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.RoleClass); CswNbtMetaDataObjectClassProp RoleNameOCP = RoleOC.getObjectClassProp(CswNbtObjClassRole.PropertyName.Name); CswNbtView View = new CswNbtView(CswNbtResources); View.ViewName = "MLM Enable - Find CISPro roles"; CswNbtViewRelationship roleRelationship = View.AddViewRelationship(RoleOC, false); CswNbtViewProperty roleNameProp = View.AddViewProperty(roleRelationship, RoleNameOCP); View.AddViewPropertyFilter(roleNameProp, SubFieldName: CswNbtFieldTypeRuleText.SubFieldName.Text, FilterMode: CswEnumNbtFilterMode.Begins, Value: "cispro_", CaseSensitive: false); ICswNbtTree RoleTree = CswNbtResources.Trees.getTreeFromView(View, false, true, IncludeHiddenNodes: true); for (Int32 r = 0; r < RoleTree.getChildNodeCount(); r++) { RoleTree.goToNthChild(r); CswNbtObjClassRole RoleNode = RoleTree.getCurrentNode(); foreach (CswNbtMetaDataNodeType ReceiptLotNT in ReceiptLotOC.getNodeTypes()) { //if MLM is on, everyone needs View and admins/receivers need Edit if (CswNbtResources.Modules.IsModuleEnabled(CswEnumNbtModuleName.MLM)) { CswNbtResources.Permit.set(CswEnumNbtNodeTypePermission.View, ReceiptLotNT, RoleNode, true); if ("cispro_receiver" == RoleNode.Name.Text.ToLower() || "cispro_admin" == RoleNode.Name.Text.ToLower()) { CswNbtResources.Permit.set(CswEnumNbtNodeTypePermission.Edit, ReceiptLotNT, RoleNode, true); } } //otherwise, if only Lot Info is on, no one needs Edit, but everyone needs View else if (CswNbtResources.Modules.IsModuleEnabled(CswEnumNbtModuleName.ManufacturerLotInfo)) { CswNbtResources.Permit.set(CswEnumNbtNodeTypePermission.View, ReceiptLotNT, RoleNode, true); CswNbtResources.Permit.set(CswEnumNbtNodeTypePermission.Edit, ReceiptLotNT, RoleNode, false); } //if both MLM and Lot Info are off, no one needs to View or Edit else { CswNbtResources.Permit.set(CswEnumNbtNodeTypePermission.View, ReceiptLotNT, RoleNode, false); CswNbtResources.Permit.set(CswEnumNbtNodeTypePermission.Edit, ReceiptLotNT, RoleNode, false); } } //RoleNode.postChanges( false ); CswNbtPermit does this. RoleTree.goToParentNode(); } } // setReceiptLotPermissions()
}//makeNodeFromNodeTypeId() /// <summary> /// Fetches a User Node from the Username, using a View and a TreeLoader. /// </summary> /// <remarks> /// not sure if this belongs here in CswNbtNodeCollection /// </remarks> /// <param name="Username">Username of User</param> /// <param name="RequireViewPermissions"></param> public CswNbtNode makeUserNodeFromUsername(string Username, bool RequireViewPermissions = true) { CswTimer Timer = new CswTimer(); CswNbtNode UserNode = null; CswNbtMetaDataObjectClass User_ObjectClass = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.UserClass); CswNbtMetaDataObjectClassProp UserName_ObjectClassProp = User_ObjectClass.getObjectClassProp(CswNbtObjClassUser.PropertyName.Username); _CswNbtResources.logTimerResult("makeUserNodeFromUsername 1", Timer); // generate the view CswNbtView View = new CswNbtView(_CswNbtResources); View.ViewName = "CswNbtNodes.makeUserNodeFromUsername(" + Username + ")"; CswNbtViewRelationship UserRelationship = View.AddViewRelationship(User_ObjectClass, false); CswNbtViewProperty Prop = View.AddViewProperty(UserRelationship, UserName_ObjectClassProp); CswNbtViewPropertyFilter Filter = View.AddViewPropertyFilter(Prop, CswNbtFieldTypeRuleText.SubFieldName.Text, CswEnumNbtFilterMode.Equals, Username, false); _CswNbtResources.logTimerResult("makeUserNodeFromUsername 2", Timer); // generate the tree ICswNbtTree UserTree = _CswNbtResources.Trees.getTreeFromView(View, RequireViewPermissions, true, IncludeHiddenNodes: true); _CswNbtResources.logTimerResult("makeUserNodeFromUsername 3", Timer); // get user node UserTree.goToRoot(); if (UserTree.getChildNodeCount() > 0) { UserTree.goToNthChild(0); _CswNbtResources.logTimerResult("makeUserNodeFromUsername 4", Timer); UserNode = UserTree.getNodeForCurrentPosition(); } //else //{ // foreach( CswNbtMetaDataNodeType UserNodeTypes in User_ObjectClass.NodeTypes ) // { // foreach( CswNbtNode user in UserNodeTypes.getNodes( true, false ) ) // { // if( user.Properties[UserName_ObjectClassProp.PropName].AsText.Text == Username ) // { // UserNode = user; // break; // } // } // } _CswNbtResources.logTimerResult("makeUserNodeFromUsername 5", Timer); return(UserNode); }