コード例 #1
0
        /// <summary>
        /// Creates a new user for testing with. It is the consumers responsibility to provide valid values for properties. Supplying a non-existant Role name will throw an error
        /// </summary>
        private CswNbtObjClassUser _createTestUser(string Username, string RoleName, int PageSize, string Language)
        {
            CswNbtMetaDataNodeType UserNT = TestData.CswNbtResources.MetaData.getNodeType("User");

            if (null == UserNT)
            {
                throw new CswDniException(CswEnumErrorType.Error, "Unable to create a test User for REST API unit tests - no User NT was found", "Could not find a user NT by name 'User'");
            }
            CswNbtObjClassRole RoleNode = TestData.CswNbtResources.Nodes.makeRoleNodeFromRoleName(RoleName);

            if (null == RoleNode)
            {
                throw new CswDniException(CswEnumErrorType.Error, "Unable to create a test User for REST API unit tests - no Role with name '" + RoleName + "'", "Could not find a role by name '" + RoleName + "'");
            }

            CswNbtObjClassUser TestUser = TestData.CswNbtResources.Nodes.makeNodeFromNodeTypeId(UserNT.NodeTypeId, OnAfterMakeNode : delegate(CswNbtNode NewNode)
            {
                CswNbtObjClassUser AsUser     = NewNode;
                AsUser.UsernameProperty.Text  = Username;
                AsUser.Role.RelatedNodeId     = RoleNode.NodeId;
                AsUser.PageSizeProperty.Value = PageSize;
                AsUser.LanguageProperty.Value = Language;
            });

            return(TestUser);
        }
コード例 #2
0
        public override void update()
        {
            // Remove the "Define Sizes for this Material" landing page item for the Create Material wizard
            // Originally added in CswUpdateSchema_01T_Case27881

            CswNbtLandingPageTable LandingPageObj = _CswNbtSchemaModTrnsctn.getLandingPageTable();
            string CreateMaterialActionId = _CswNbtSchemaModTrnsctn.Actions[CswEnumNbtActionName.Create_Material].ActionId.ToString();
            string RoleId = "nodes_1";
            CswNbtObjClassRole AdminRole = _CswNbtSchemaModTrnsctn.Nodes.makeRoleNodeFromRoleName( "Administrator" );
            if( null != AdminRole )
            {
                RoleId = AdminRole.NodeId.ToString();
            }

            LandingPageData Items = LandingPageObj.getLandingPageItems( new LandingPageData.Request()
                {
                    RoleId = RoleId,
                    ActionId = CreateMaterialActionId
                } );
            foreach( LandingPageData.LandingPageItem Item in Items.LandingPageItems )
            {
                if( Item.Text == "Define Sizes for this Material" )
                {
                    LandingPageObj.deleteLandingPageItem( new LandingPageData.Request()
                        {
                            LandingPageId = CswConvert.ToInt32( Item.LandingPageId )
                        } );
                }
            } // foreach
        } // update()
コード例 #3
0
 public override void update()
 {
     //New Document NT
     CswNbtMetaDataObjectClass ReceiptLotOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ReceiptLotClass );
     CswNbtMetaDataObjectClass CofADocOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.CofADocumentClass );
     CswNbtMetaDataNodeType CofANT = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "C of A Document" ) ??
          _CswNbtSchemaModTrnsctn.MetaData.makeNewNodeTypeDeprecated( CofADocOC.ObjectClassId, "C of A Document", "Materials" );
     _CswNbtSchemaModTrnsctn.createModuleNodeTypeJunction( CswEnumNbtModuleName.CofA, CofANT.NodeTypeId );
     //Default Title
     CswNbtMetaDataNodeTypeProp TitleNTP = CofANT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.Title );
     TitleNTP.DefaultValue.AsText.Text = "Certificate of Analysis";
     TitleNTP.removeFromLayout( CswEnumNbtLayoutType.Add );
     //Set Owner FK to ReceiptLot OC (This needs to be done explicitly for the NTP - see Case 26605)
     CswNbtMetaDataNodeTypeProp OwnerNTP = CofANT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.Owner );
     OwnerNTP.PropName = "Receipt Lot";
     OwnerNTP.SetFK( CswEnumNbtViewRelatedIdType.ObjectClassId.ToString(), ReceiptLotOC.ObjectClassId );
     //Set Prop Filters (This needs to be done explicitly for the NTP - see Case 26605)
     CswNbtMetaDataNodeTypeProp FileTypeNTP = CofANT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.FileType );
     CswNbtMetaDataNodeTypeProp FileNTP = CofANT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.File );
     FileNTP.setFilter( FileTypeNTP, FileTypeNTP.getFieldTypeRule().SubFields.Default, CswEnumNbtFilterMode.Equals, CswNbtPropertySetDocument.CswEnumDocumentFileTypes.File );
     CswNbtMetaDataNodeTypeProp LinkNTP = CofANT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.Link );
     LinkNTP.setFilter( FileTypeNTP, FileTypeNTP.getFieldTypeRule().SubFields.Default, CswEnumNbtFilterMode.Equals, CswNbtPropertySetDocument.CswEnumDocumentFileTypes.Link );
     //NT Permission
     CswNbtObjClassRole RoleNode = _CswNbtSchemaModTrnsctn.Nodes.makeRoleNodeFromRoleName( "CISPro_Admin" );
     if( null != RoleNode )
     {
         _CswNbtSchemaModTrnsctn.Permit.set( NTPermissions, CofANT, RoleNode, true );
     }
 } // update()
        private void _createNewSDSDocNT()
        {
            CswEnumNbtNodeTypePermission[] NTPermissions = 
            { 
                CswEnumNbtNodeTypePermission.View, 
                CswEnumNbtNodeTypePermission.Create, 
                CswEnumNbtNodeTypePermission.Edit, 
                CswEnumNbtNodeTypePermission.Delete 
            };

            //New Document NT
            CswNbtMetaDataObjectClass ChemicalOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ChemicalClass );
            CswNbtMetaDataObjectClass DocumentOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.SDSDocumentClass );
            CswNbtMetaDataNodeType SDSNT = _CswNbtSchemaModTrnsctn.MetaData.makeNewNodeType( DocumentOC.ObjectClassId, "SDS Document", "Materials" );
            _CswNbtSchemaModTrnsctn.createModuleNodeTypeJunction( CswEnumNbtModuleName.SDS, SDSNT.NodeTypeId );
            //Default Title
            CswNbtMetaDataNodeTypeProp TitleNTP = SDSNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.Title );
            TitleNTP.DefaultValue.AsText.Text = "Safety Data Sheet";
            TitleNTP.removeFromLayout( CswEnumNbtLayoutType.Add );
            //Set Owner FK to Material OC (This needs to be done explicitly for the NTP - see Case 26605)
            CswNbtMetaDataNodeTypeProp OwnerNTP = SDSNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.Owner );
            OwnerNTP.PropName = "Material";
            OwnerNTP.SetFK( CswEnumNbtViewRelatedIdType.ObjectClassId.ToString(), ChemicalOC.ObjectClassId );
            //NT Permission
            CswNbtObjClassRole RoleNode = _CswNbtSchemaModTrnsctn.Nodes.makeRoleNodeFromRoleName( "CISPro_Admin" );
            if( null != RoleNode )
            {
                _CswNbtSchemaModTrnsctn.Permit.set( NTPermissions, SDSNT, RoleNode, true );
            }
        }
コード例 #5
0
ファイル: CswNbtPermit.cs プロジェクト: crfroehlich/legacy
        }//canAnyTab()

        /// <summary>
        /// Private logic behind canAnyTab
        /// </summary>
        private bool _canAnyTabImpl()
        {
            bool ret = _CanNodeTypeImpl();

            if (false == ret)
            {
                if (_CswNbtPermitInfo.shouldPermissionCheckProceed())
                {
                    foreach (CswNbtMetaDataNodeTypeTab CurrentTab in _CswNbtPermitInfo.NodeType.getNodeTypeTabs())
                    {
                        string Permission = CswNbtObjClassRole.MakeNodeTypeTabPermissionValue(
                            _CswNbtPermitInfo.NodeType.FirstVersionNodeTypeId, CurrentTab.FirstTabVersionId,
                            _CswNbtPermitInfo.NodeTypeTabPermission);
                        ret = ret ||
                              _CswNbtPermitInfo.Role.NodeTypePermissions.CheckValue(Permission);

                        if (_CswNbtPermitInfo.NodeTypeTabPermission == CswEnumNbtNodeTypeTabPermission.View)
                        {
                            // Having 'Edit' grants 'View' automatically
                            string EditPermission = CswNbtObjClassRole.MakeNodeTypeTabPermissionValue(
                                _CswNbtPermitInfo.NodeType.FirstVersionNodeTypeId, CurrentTab.FirstTabVersionId,
                                CswEnumNbtNodeTypeTabPermission.Edit);
                            ret = ret ||
                                  _CswNbtPermitInfo.Role.NodeTypePermissions.CheckValue(EditPermission);
                        }
                    } //iterate tabs
                }     // if( _CswNbtPermitInfo.shouldPermissionCheckProceed() )
            }
            return(ret);
        } //_canAnyTab()
コード例 #6
0
        } // update()

        private void _addMaterialComponentPermissions()
        {
            CswNbtMetaDataObjectClass MaterialComponentOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.MaterialComponentClass );
            if( null != MaterialComponentOC )
            {
                CswNbtMetaDataNodeType MaterialComponentNT = MaterialComponentOC.getNodeTypes().FirstOrDefault();
                if( null != MaterialComponentNT )
                {
                    string[] FullPermissionRoles = { "CISPro_Admin", "CISPro_General", "CISPro_Receiver", "CISPro_Request_Fulfiller", "Administrator" };

                    CswEnumNbtNodeTypePermission[] AllPermissions =
                        {
                            CswEnumNbtNodeTypePermission.View,
                            CswEnumNbtNodeTypePermission.Create,
                            CswEnumNbtNodeTypePermission.Edit,
                            CswEnumNbtNodeTypePermission.Delete
                        };

                    foreach( string RoleName in FullPermissionRoles )
                    {
                        CswNbtObjClassRole Role = _CswNbtSchemaModTrnsctn.Nodes.makeRoleNodeFromRoleName( RoleName );
                        _CswNbtSchemaModTrnsctn.Permit.set( AllPermissions, MaterialComponentNT, Role, true );
                    }

                    _CswNbtSchemaModTrnsctn.Permit.set( CswEnumNbtNodeTypePermission.View, MaterialComponentNT, true );

                }//if( null != MaterialComponentNT )
            }//if( null != MaterialComponentOC )
        }//_addMaterialComponentPermissions()
コード例 #7
0
        public override void update()
        {
            //Remove the Modules action permission from every role except ChemSW_Admin
            string ModuleActionValue = CswNbtObjClassRole.MakeActionPermissionValue( _CswNbtSchemaModTrnsctn.Actions[CswEnumNbtActionName.Modules] );
            CswNbtMetaDataObjectClass RoleOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.RoleClass );
            foreach( CswNbtObjClassRole RoleNode in RoleOC.getNodes( false, true, false, true ) )
            {
                if( RoleNode.Name.Text != CswNbtObjClassRole.ChemSWAdminRoleName )
                {
                    if( RoleNode.ActionPermissions.CheckValue( ModuleActionValue ) )
                    {
                        RoleNode.ActionPermissions.RemoveValue( ModuleActionValue );
                        RoleNode.postChanges( false );
                    }
                }
                else
                {
                    if( false == RoleNode.ActionPermissions.CheckValue( ModuleActionValue ) )
                    {
                        RoleNode.ActionPermissions.AddValue( ModuleActionValue );
                        RoleNode.postChanges( false );
                    }
                }
            }

        } // update()
コード例 #8
0
ファイル: CswNbtPermit.cs プロジェクト: crfroehlich/legacy
        } //canNodeType()

        /// <summary>
        /// Private logic behind canNodeType
        /// </summary>
        private bool _CanNodeTypeImpl()
        {
            bool ret = _CswNbtPermitInfo.IsUberUser;

            if (false == ret)
            {
                if (_CswNbtPermitInfo.shouldPermissionCheckProceed())
                {
                    ret = _CswNbtPermitInfo.NoExceptionCases;
                    if (ret)
                    {
                        // Base case: does the Role have this nodetype permission
                        string PermissionValueToCheck = CswNbtObjClassRole.MakeNodeTypePermissionValue(_CswNbtPermitInfo.NodeType.FirstVersionNodeTypeId,
                                                                                                       _CswNbtPermitInfo.NodeTypePermission);
                        ret = ret && _CswNbtPermitInfo.Role.NodeTypePermissions.CheckValue(PermissionValueToCheck);

                        if ((false == ret) && (_CswNbtPermitInfo.NodeTypePermission == CswEnumNbtNodeTypePermission.View))
                        {
                            // Having 'Edit' grants 'View' automatically
                            ret = _CswNbtPermitInfo.Role.NodeTypePermissions.CheckValue(CswNbtObjClassRole.MakeNodeTypePermissionValue(_CswNbtPermitInfo.NodeType.FirstVersionNodeTypeId, CswEnumNbtNodeTypePermission.Edit));
                        } //if we denied view permission
                    }
                }         //if pre-reqs are satisifed
            }
            return(ret);
        } // _CanNodeTypeImpl()
コード例 #9
0
        public override void update()
        {
            _CswNbtSchemaModTrnsctn.deleteModuleActionJunction(CswNbtModuleName.NBTManager, CswNbtActionName.View_Scheduled_Rules );
            CswNbtObjClassRole CswAdmin = _CswNbtSchemaModTrnsctn.Nodes.makeRoleNodeFromRoleName( CswNbtObjClassRole.ChemSWAdminRoleName );
            if( null != CswAdmin )
            {
                _CswNbtSchemaModTrnsctn.Permit.set( CswNbtActionName.View_Scheduled_Rules, CswAdmin, value: true );
            }

            CswNbtMetaDataObjectClass RoleOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.RoleClass );
            Int32 ActionId = _CswNbtSchemaModTrnsctn.getActionId( CswNbtActionName.View_Scheduled_Rules );

            foreach( CswNbtObjClassRole RoleNode in RoleOc.getNodes(includeSystemNodes: false, forceReInit: true) )
            {
                if( _CswNbtSchemaModTrnsctn.Permit.can( CswNbtActionName.View_Scheduled_Rules, RoleNode ) )
                {
                    CswNbtLandingPageTable Lp = _CswNbtSchemaModTrnsctn.getLandingPageTable();
                    Lp.addLandingPageItem(new LandingPageData.Request
                        {
                            //LandingPageId = 
                            RoleId = RoleNode.NodeId.ToString(),
                            Text = "View Scheduled Rules",
                            Type = CswNbtLandingPageItemType.Link,
                            ViewType = "Action",
                            PkValue = ActionId.ToString(),
                            NewRow = 1,
                            NewColumn = 2
                        });
                }
            }

        }
コード例 #10
0
 public override void update()
 {
     if( _CswNbtSchemaModTrnsctn.isMaster() )
     {
         CswNbtObjClassRole CISProReceiverRole = null;
         CswNbtMetaDataObjectClass RoleOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.RoleClass );
         foreach( CswNbtObjClassRole RoleNode in RoleOC.getNodes( false, false, false, true ) )
         {
             if( RoleNode.Name.Text == "CISPro_Receiver" )
             {
                 CISProReceiverRole = RoleNode;
                 break;
             }
         }
         if( null != CISProReceiverRole )
         {
             _CswNbtSchemaModTrnsctn.Permit.set( CswEnumNbtActionName.Create_Material, CISProReceiverRole, true );
             CswNbtMetaDataPropertySet MaterialPS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.MaterialSet );
             foreach( CswNbtMetaDataObjectClass MaterialOC in MaterialPS.getObjectClasses() )
             {
                 foreach( CswNbtMetaDataNodeType MaterialNT in MaterialOC.getNodeTypes() )
                 {
                     _CswNbtSchemaModTrnsctn.Permit.set( CswEnumNbtNodeTypePermission.View, MaterialNT, CISProReceiverRole, true );
                     _CswNbtSchemaModTrnsctn.Permit.set( CswEnumNbtNodeTypePermission.Edit, MaterialNT, CISProReceiverRole, true );
                     _CswNbtSchemaModTrnsctn.Permit.set( CswEnumNbtNodeTypePermission.Create, MaterialNT, CISProReceiverRole, true );
                     _CswNbtSchemaModTrnsctn.Permit.set( CswEnumNbtNodeTypePermission.Delete, MaterialNT, CISProReceiverRole, true );
                 }
             }
         }
     }
 } // update()
コード例 #11
0
        public override void update()
        {
            // Add nodetypes for new object classes
            CswNbtMetaDataObjectClass RegListMemberOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.RegulatoryListMemberClass );
            CswNbtMetaDataObjectClassProp RegListMemberChemicalOCP = RegListMemberOC.getObjectClassProp( CswNbtObjClassRegulatoryListMember.PropertyName.Chemical );
            CswNbtMetaDataNodeType RegListMemberNT = _CswNbtSchemaModTrnsctn.MetaData.makeNewNodeTypeDeprecated( new CswNbtWcfMetaDataModel.NodeType( RegListMemberOC )
                {
                    NodeTypeName = "Regulatory List Member",
                    Category = "Materials",
                    SearchDeferObjectClassPropId = RegListMemberChemicalOCP.ObjectClassPropId
                } );
            RegListMemberNT.setNameTemplateText( CswNbtMetaData.MakeTemplateEntry( CswNbtObjClassRegulatoryListMember.PropertyName.Chemical ) + "-" + CswNbtMetaData.MakeTemplateEntry( CswNbtObjClassRegulatoryListMember.PropertyName.RegulatoryList ) );
            
            RegListMemberNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRegulatoryListMember.PropertyName.ByUser ).removeFromLayout( CswEnumNbtLayoutType.Add );

            CswNbtMetaDataObjectClass RegListCasNoOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.RegulatoryListCasNoClass );
            CswNbtMetaDataObjectClassProp RegListCasNoRegListOCP = RegListCasNoOC.getObjectClassProp( CswNbtObjClassRegulatoryListCasNo.PropertyName.RegulatoryList );
            CswNbtMetaDataNodeType RegListCasNoNT = _CswNbtSchemaModTrnsctn.MetaData.makeNewNodeTypeDeprecated( new CswNbtWcfMetaDataModel.NodeType( RegListCasNoOC )
                {
                    NodeTypeName = "Regulatory List CAS",
                    Category = "Materials",
                    SearchDeferObjectClassPropId = RegListCasNoRegListOCP.ObjectClassPropId
                } );
            RegListCasNoNT.setNameTemplateText( CswNbtMetaData.MakeTemplateEntry( CswNbtObjClassRegulatoryListCasNo.PropertyName.RegulatoryList ) + "-" + CswNbtMetaData.MakeTemplateEntry( CswNbtObjClassRegulatoryListCasNo.PropertyName.CASNo ) );

            // Grant permissions to cispro_admin
            CswNbtObjClassRole CISProAdminRole = _CswNbtSchemaModTrnsctn.Nodes.makeRoleNodeFromRoleName( "CISPro_Admin" );
            CswEnumNbtNodeTypePermission[] AllPerms = new CswEnumNbtNodeTypePermission[]
                {
                    CswEnumNbtNodeTypePermission.Create, CswEnumNbtNodeTypePermission.Delete, CswEnumNbtNodeTypePermission.Edit, CswEnumNbtNodeTypePermission.View
                };
            _CswNbtSchemaModTrnsctn.Permit.set( AllPerms, RegListMemberNT, CISProAdminRole, true );
            _CswNbtSchemaModTrnsctn.Permit.set( AllPerms, RegListCasNoNT, CISProAdminRole, true );

        } // update()
コード例 #12
0
 private CswNbtObjClassRole _createRole( CswNbtMetaDataNodeType RoleNodeType, string RoleName )
 {
     CswNbtNode RoleNode = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId( RoleNodeType.NodeTypeId, CswNbtNodeCollection.MakeNodeOperation.WriteNode );
     CswNbtObjClassRole NodeAsRole = RoleNode;
     NodeAsRole.Name.Text = RoleName;
     NodeAsRole.Timeout.Value = 30;
     return NodeAsRole;
 }
コード例 #13
0
 private void _setNodeTypePermissions( CswNbtObjClassRole Role, CswNbtMetaDataObjectClass.NbtObjectClass ObjClassName, CswNbtPermit.NodeTypePermission[] Permissions )
 {
     CswNbtMetaDataObjectClass ObjectClass = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( ObjClassName );
     foreach( CswNbtMetaDataNodeType NodeType in ObjectClass.getNodeTypes() )
     {
         _CswNbtSchemaModTrnsctn.Permit.set( Permissions, NodeType, Role, true );
     }
 }
コード例 #14
0
        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()
コード例 #15
0
 public override void update()
 {
     // Delete all 'Roles and Users' views except 1
     CswNbtObjClassRole ChemSWAdmin = _CswNbtSchemaModTrnsctn.Nodes.makeRoleNodeFromRoleName( CswNbtObjClassRole.ChemSWAdminRoleName );
     foreach( CswNbtView CurrentView in _CswNbtSchemaModTrnsctn.ViewSelect.restoreViews( "Roles and Users" ).Where( CurrentView => CurrentView.VisibilityRoleId != ChemSWAdmin.NodeId ) )
     {
         CurrentView.Delete();
     }
 }// update()
コード例 #16
0
        //Update()

        private void _markRoleAsDemoData( string RoleName )
        {
            CswNbtObjClassRole RoleNode = _CswNbtSchemaModTrnsctn.Nodes.makeRoleNodeFromRoleName( RoleName );
            if( null != RoleNode )
            {
                RoleNode.IsDemo = true;
                RoleNode.postChanges( false );
            }
        }
コード例 #17
0
        public override void update()
        {
            CswNbtObjClassRole NodeAsRole = _CswNbtSchemaModTrnsctn.Nodes.makeRoleNodeFromRoleName( "Dispenser" );
            if( null != NodeAsRole )
            {
                NodeAsRole.Name.Text = "CISPro_Dispenser";
                NodeAsRole.postChanges( true );
            }

        }//Update()
コード例 #18
0
ファイル: CswNbtPermit.cs プロジェクト: crfroehlich/legacy
        /// <summary>
        /// Returns true if the role has the appropriate permissions for the Action
        /// </summary>
        public bool can(CswNbtAction Action, CswNbtObjClassRole Role)
        {
            bool ret = false;

            if (null != Role && null != Action)
            {
                ret = Role.ActionPermissions.CheckValue(CswNbtObjClassRole.MakeActionPermissionValue(Action));
            }
            return(ret);
        } // can( CswNbtAction Action, CswNbtObjClassRole Role )
コード例 #19
0
ファイル: CswNbtPermit.cs プロジェクト: crfroehlich/legacy
 public CswNbtPermitInfo(CswNbtResources CswNbtResources, ICswNbtUser CswNbtUser, CswNbtObjClassRole CswNbtObjClassRole, CswNbtMetaDataNodeType NodeTypeIn, CswEnumNbtNodeTypePermission nodeTypePermissionIn, CswPrimaryKey CswPrimaryKey, CswNbtMetaDataNodeTypeProp PropTypeIn)
 {
     PropType            = PropTypeIn;
     _NodePrimeKey       = CswPrimaryKey;
     NodeType            = NodeTypeIn;
     _CswNbtResources    = CswNbtResources;
     _CswNbtUser         = CswNbtUser;
     _CswNbtObjClassRole = CswNbtObjClassRole;
     NodeTypePermission  = nodeTypePermissionIn;
 }//ctor
コード例 #20
0
        private void _createViewOnlyRole( CswNbtMetaDataNodeType RoleNodeType )
        {
            CswNbtObjClassRole ViewOnlyNode = _createRole( RoleNodeType, "CISPro_View_Only" );

            _setGenericPermissions( ViewOnlyNode, ViewPermissions );
            _setCISProPermissions( ViewOnlyNode, ViewPermissions );

            ViewOnlyNode.postChanges( false );
            _createInventoryGroupPermission( ViewOnlyNode, Tristate.False, Tristate.False );
        }
コード例 #21
0
ファイル: CswNbtPermit.cs プロジェクト: crfroehlich/legacy
        private void _initPermissionInfo(CswNbtObjClassRole CswNbtObjClassRole, ICswNbtUser CswNbtUser, CswNbtMetaDataNodeType NodeType, CswEnumNbtNodeTypePermission Permission, CswPrimaryKey CswPrimaryKey = null, CswNbtMetaDataNodeTypeProp PropType = null)
        {
            if (null == CswNbtObjClassRole)
            {
                CswPrimaryKey RoleId = null;
                if (null != CswNbtUser)
                {
                    RoleId = CswNbtUser.RoleId;
                }
                else
                {
                    if (null != _CswNbtResources.CurrentNbtUser)
                    {
                        CswNbtUser = _CswNbtResources.CurrentNbtUser;
                        RoleId     = CswNbtUser.RoleId;
                    }
                }//if the user we got is null

                if (null != RoleId)
                {
                    CswNbtObjClassRole = _getRole(RoleId);
                } //if we were able to get a roleid
            }     //if the role we got is null

            if (null != CswNbtObjClassRole)
            {
                CswNbtPermitInfoKey CswNbtPermitInfoKey = new CswNbtPermitInfoKey(CswNbtObjClassRole, NodeType);
                if (_PermitInfoItems.ContainsKey(CswNbtPermitInfoKey))
                {
                    _CswNbtPermitInfo = _PermitInfoItems[CswNbtPermitInfoKey];

                    //must reset these per-request because they change per request for the same role and nodetype (e.g., see allowAny() )
                    if (null != CswPrimaryKey)
                    {
                        _CswNbtPermitInfo.NodePrimeKey = CswPrimaryKey;
                    }

                    if (null != PropType)
                    {
                        _CswNbtPermitInfo.PropType = PropType;
                    }

                    _CswNbtPermitInfo.NodeTypePermission = Permission;
                }
                else
                {
                    _CswNbtPermitInfo = new CswNbtPermitInfo(_CswNbtResources, CswNbtUser, CswNbtObjClassRole, NodeType, Permission, CswPrimaryKey, PropType);
                    _PermitInfoItems.Add(CswNbtPermitInfoKey, _CswNbtPermitInfo);
                }
            }
            else //the permit info in this case is not catalogued, and permit info won't allow any ops to proceed
            {
                _CswNbtPermitInfo = new CswNbtPermitInfo(_CswNbtResources, CswNbtUser, CswNbtObjClassRole, NodeType, Permission, CswPrimaryKey, PropType);
            } //if we were able to retrieve a role
        }     //_initPermissionInfo()
コード例 #22
0
 private void _createUser( CswNbtMetaDataNodeType UserNodeType, CswNbtObjClassRole RoleNode, string UserName )
 {
     CswNbtObjClassUser UserNode = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId( UserNodeType.NodeTypeId, CswEnumNbtMakeNodeOperation.WriteNode );
     UserNode.UsernameProperty.Text = UserName;
     UserNode.PasswordProperty.Password = UserName+"123!";
     UserNode.Role.RelatedNodeId = RoleNode.NodeId;
     UserNode.LanguageProperty.Value = "en";
     UserNode.AccountLocked.Checked = CswEnumTristate.True;
     
     UserNode.postChanges( false );
 }
コード例 #23
0
 private void _setNTPermissionsForOC( CswEnumNbtObjectClass OCName, CswNbtObjClassRole Role, bool AllowEdit )
 {
     CswNbtMetaDataObjectClass OC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( OCName );
     foreach( CswNbtMetaDataNodeType NT in OC.getNodeTypes() )
     {
         _CswNbtSchemaModTrnsctn.Permit.set( CswEnumNbtNodeTypePermission.View, NT, Role, true );
         _CswNbtSchemaModTrnsctn.Permit.set( CswEnumNbtNodeTypePermission.Edit, NT, Role, AllowEdit );
         _CswNbtSchemaModTrnsctn.Permit.set( CswEnumNbtNodeTypePermission.Create, NT, Role, AllowEdit );
         _CswNbtSchemaModTrnsctn.Permit.set( CswEnumNbtNodeTypePermission.Delete, NT, Role, AllowEdit );
     }
 }
コード例 #24
0
        public CswNbtResources makeNewUserResources(string UserName, CswPrimaryKey RoleId)
        {
            //CswNbtResources Ret = CswNbtResourcesFactory.makeCswNbtResources( _CswNbtResources );
            CswNbtResources Ret = CswNbtResourcesFactory.makeCswNbtResources(CswEnumAppType.Nbt, CswEnumSetupMode.TestProject, true);

            Ret.AccessId = _CswNbtResources.AccessId;
            CswNbtObjClassRole Role = Ret.Nodes[RoleId];

            Ret.InitCurrentUser = Resources => _InitNewUser(Resources, Ret, UserName, Role);
            return(Ret);
        }
コード例 #25
0
        public override void update()
        {
            CswNbtObjClassRole AdminRole = _CswNbtSchemaModTrnsctn.Nodes.makeRoleNodeFromRoleName( "Administrator" );

            CswNbtViewId MyBatchOperationsViewId = null;
            CswNbtView MyBatchOperationsView = null;
            DataTable Views = _CswNbtSchemaModTrnsctn.ViewSelect.getView( "My Batch Operations", CswEnumNbtViewVisibility.Global, null, null );
            if( Views.Rows.Count > 0 )
            {
                MyBatchOperationsViewId = new CswNbtViewId( CswConvert.ToInt32( Views.Rows[0]["nodeviewid"] ) );
                MyBatchOperationsView = _CswNbtSchemaModTrnsctn.ViewSelect.restoreView( MyBatchOperationsViewId );
            }

            if( null == MyBatchOperationsView )
            {
                throw new CswDniException( CswEnumErrorType.Error, "My Batch Operations View does not exist", "The My Batch Operations View is needed to configure a landing page for the Receiving Wizard" );
            }
            if( null == AdminRole )
            {
                throw new CswDniException( CswEnumErrorType.Error, "Administrator Role does not exist", "The Administrator Role is needed to configure a landing page for the Receiving Wizard" );
            }

            /*
             * Case 31560 -- this button is now a link on the left hand side so that it only appears conditionally
             * 
            _CswNbtSchemaModTrnsctn.LandingPage.addLandingPageItem( CswEnumNbtLandingPageItemType.Link, new LandingPageData.Request()
                {
                    ActionId = _CswNbtSchemaModTrnsctn.Actions[CswEnumNbtActionName.Receiving].ActionId.ToString(),
                    NodeViewId = MyBatchOperationsViewId.ToString(),   //I think we have to set PkValue and not NodeViewId...but idk why
                    PkValue = MyBatchOperationsViewId.ToString(),
                    ViewType = CswEnumNbtViewType.View.ToString(),
                    RoleId = AdminRole.NodeId.ToString(),
                    Text = "My Batch Operations",
                    NewColumn = 1,
                    NewRow = 1
                } );
            */


            CswNbtMetaDataObjectClass ChemicalClass = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ChemicalClass );
            CswNbtMetaDataObjectClassProp ReceiveOCP = ChemicalClass.getObjectClassProp( CswNbtObjClassChemical.PropertyName.Receive );
            _CswNbtSchemaModTrnsctn.LandingPage.addLandingPageItem( CswEnumNbtLandingPageItemType.Button, new LandingPageData.Request()
                {
                    ActionId = _CswNbtSchemaModTrnsctn.Actions[CswEnumNbtActionName.Receiving].ActionId.ToString(),
                    PkValue = ReceiveOCP.PropId.ToString(),
                    RoleId = AdminRole.NodeId.ToString(),
                    Text = "Receive more of this Material",
                    NewColumn = 2,
                    NewRow = 1
                } );


        } // update()
コード例 #26
0
ファイル: CswNbtPermit.cs プロジェクト: crfroehlich/legacy
 public CswNbtPermitInfoKey(CswNbtObjClassRole CswNbtObjClassRole, CswNbtMetaDataNodeType NodeTypeIn)
 {
     Role     = CswNbtObjClassRole;
     NodeType = NodeTypeIn;
     if (null != Role)
     {
         HashMultiplier += Role.GetHashCode();
     }
     if (null != NodeType)
     {
         HashMultiplier += NodeType.GetHashCode();
     }
 }
コード例 #27
0
 private void _setCISProPermissions( CswNbtObjClassRole Role, CswNbtPermit.NodeTypePermission[] Permissions )
 {
     _setNodeTypePermissions( Role, CswNbtMetaDataObjectClass.NbtObjectClass.ContainerClass, Permissions );
     _setNodeTypePermissions( Role, CswNbtMetaDataObjectClass.NbtObjectClass.ContainerDispenseTransactionClass, Permissions );
     _setNodeTypePermissions( Role, CswNbtMetaDataObjectClass.NbtObjectClass.InventoryGroupClass, Permissions );
     _setNodeTypePermissions( Role, CswNbtMetaDataObjectClass.NbtObjectClass.InventoryGroupPermissionClass, Permissions );
     _setNodeTypePermissions( Role, CswNbtMetaDataObjectClass.NbtObjectClass.InventoryLevelClass, Permissions );
     _setNodeTypePermissions( Role, CswNbtMetaDataObjectClass.NbtObjectClass.MaterialClass, Permissions );
     _setNodeTypePermissions( Role, CswNbtMetaDataObjectClass.NbtObjectClass.MaterialComponentClass, Permissions );
     _setNodeTypePermissions( Role, CswNbtMetaDataObjectClass.NbtObjectClass.MaterialSynonymClass, Permissions );
     _setNodeTypePermissions( Role, CswNbtMetaDataObjectClass.NbtObjectClass.RequestClass, Permissions );
     _setNodeTypePermissions( Role, CswNbtMetaDataObjectClass.NbtObjectClass.RequestItemClass, Permissions );
     _setNodeTypePermissions( Role, CswNbtMetaDataObjectClass.NbtObjectClass.SizeClass, Permissions );
 }
コード例 #28
0
 private CswNbtObjClassRole _createRole( CswNbtMetaDataNodeType RoleNodeType, string RoleName )
 {
     CswNbtObjClassRole RoleNode = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId( RoleNodeType.NodeTypeId, CswEnumNbtMakeNodeOperation.WriteNode );
     RoleNode.Name.Text = RoleName;
     RoleNode.Timeout.Value = 30;
     CswEnumNbtNodeTypePermission[] ViewPermissions = { CswEnumNbtNodeTypePermission.View };
     foreach( CswNbtMetaDataNodeType NodeType in _CswNbtSchemaModTrnsctn.MetaData.getNodeTypes() )
     {
         bool canView = false == ( NodeType.NodeTypeName == "Role" || NodeType.NodeTypeName == "User" );
         _CswNbtSchemaModTrnsctn.Permit.set( ViewPermissions, NodeType, RoleNode, canView );
     }
     RoleNode.postChanges( false );
     return RoleNode;
 }
コード例 #29
0
        private void _createGeneralRole( CswNbtMetaDataNodeType RoleNodeType )
        {
            CswNbtObjClassRole GeneralNode = _createRole( RoleNodeType, "CISPro_General" );

            _setGenericPermissions( GeneralNode, ViewPermissions );
            _setCISProPermissions( GeneralNode, ViewPermissions );
            _setNodeTypePermissions( GeneralNode, CswNbtMetaDataObjectClass.NbtObjectClass.ContainerClass, FullPermissions );

            _CswNbtSchemaModTrnsctn.Permit.set( CswNbtActionName.DispenseContainer, GeneralNode, true );
            _CswNbtSchemaModTrnsctn.Permit.set( CswNbtActionName.DisposeContainer, GeneralNode, true );
            _CswNbtSchemaModTrnsctn.Permit.set( CswNbtActionName.Submit_Request, GeneralNode, true );

            GeneralNode.postChanges( false );
            _createInventoryGroupPermission( GeneralNode, Tristate.True, Tristate.False );
        }
コード例 #30
0
        public override void update()
        {

            CswNbtObjClassRole CISPro_Request_Fulfiller = _CswNbtSchemaModTrnsctn.Nodes.makeRoleNodeFromRoleName( "cispro_request_fulfiller" );
            CswNbtMetaDataObjectClass requestContainerUpdateOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.RequestContainerUpdateClass );
            if( null != CISPro_Request_Fulfiller )
            {
                foreach( CswNbtMetaDataNodeType requestContainerUpdateNT in requestContainerUpdateOC.getNodeTypes() )
                {
                    _CswNbtSchemaModTrnsctn.Permit.set( CswNbtPermit.NodeTypePermission.View, requestContainerUpdateNT, CISPro_Request_Fulfiller, true );
                }
            }


        } //Update()