예제 #1
0
        public override void update()
        {
            CswTableUpdate TableUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "nodetype_tabset_servermanaged", "nodetype_tabset" );
            DataTable Table = TableUpdate.getTable();
            foreach( DataRow Row in Table.Rows )
            {
                Row["servermanaged"] = CswConvert.ToDbVal( false );
            }
            TableUpdate.update( Table );

            CswNbtMetaDataObjectClass UserOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.UserClass );
            Collection<CswNbtNode> Users = UserOc.getNodes( true, false );
            foreach( CswNbtMetaDataNodeType NodeType in _CswNbtSchemaModTrnsctn.MetaData.getNodeTypesLatestVersion() )
            {
                Int32 TabCount = NodeType.getNodeTypeTabIds().Count;
                CswNbtMetaDataNodeTypeTab IdentityTab = NodeType.getIdentityTab();
                if( null == IdentityTab )
                {
                    IdentityTab = _CswNbtSchemaModTrnsctn.MetaData.makeNewTab( NodeType, CswNbtMetaData.IdentityTabName, 0 );
                }
                if( null == IdentityTab )
                {
                    throw new CswDniException( ErrorType.Error, "Could not find or create an Identity tab for " + NodeType.NodeTypeName + ".", "Identity tab creation failed." );
                }
                IdentityTab.ServerManaged = true;
                if( TabCount > 1 )
                {
                    foreach( CswNbtMetaDataNodeTypeProp IdentityProp in CswNbtMetaData.TemplateValueToPropCollection( NodeType.getNodeTypeProps(), NodeType.NameTemplateValue ) )
                    {
                        if( null != IdentityProp )
                        {
                            IdentityProp.updateLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Edit, false, IdentityTab.TabId );
                        }
                    }
                }
                foreach( CswNbtObjClassUser User in Users )
                {
                    if( null != User )
                    {
                        if( null != User.RoleNode )
                        {
                            CswNbtObjClassRole Role = User.RoleNode;
                            if( false == _CswNbtSchemaModTrnsctn.Permit.canNodeType( CswNbtPermit.NodeTypePermission.Edit, NodeType, User ) )
                            {
                                if( _CswNbtSchemaModTrnsctn.Permit.canAnyTab( CswNbtPermit.NodeTypePermission.Edit, NodeType, User ) )
                                {
                                    _CswNbtSchemaModTrnsctn.Permit.set( CswNbtPermit.NodeTypeTabPermission.Edit, IdentityTab, Role, true );
                                }
                            }
                            else if( false == _CswNbtSchemaModTrnsctn.Permit.canNodeType( CswNbtPermit.NodeTypePermission.View, NodeType, User ) )
                            {
                                if( _CswNbtSchemaModTrnsctn.Permit.canAnyTab( CswNbtPermit.NodeTypePermission.View, NodeType, User ) )
                                {
                                    _CswNbtSchemaModTrnsctn.Permit.set( CswNbtPermit.NodeTypeTabPermission.View, IdentityTab, Role, true );
                                }
                            }
                        }
                    }
                }
            }
        }