コード例 #1
0
        /// <summary>
        /// Decompile the FileShare table.
        /// </summary>
        /// <param name="table">The table to decompile.</param>
        private void DecompileFileShareTable(Table table)
        {
            foreach (Row row in table.Rows)
            {
                Util.FileShare fileShare = new Util.FileShare();

                fileShare.Id = (string)row[0];

                fileShare.Name = (string)row[1];

                if (null != row[3])
                {
                    fileShare.Description = (string)row[3];
                }

                // the Directory_ column is set by the parent Component

                // the User_ and Permissions columns are deprecated

                Wix.Component component = (Wix.Component) this.Core.GetIndexedElement("Component", (string)row[2]);
                if (null != component)
                {
                    component.AddChild(fileShare);
                }
                else
                {
                    this.Core.OnMessage(WixWarnings.ExpectedForeignRow(row.SourceLineNumbers, table.Name, row.GetPrimaryKey(DecompilerCore.PrimaryKeyDelimiter), "Component_", (string)row[2], "Component"));
                }
                this.Core.IndexElement(row, fileShare);
            }
        }
コード例 #2
0
ファイル: UtilDecompiler.cs プロジェクト: Jeremiahf/wix3
        /// <summary>
        /// Decompile the FileShare table.
        /// </summary>
        /// <param name="table">The table to decompile.</param>
        private void DecompileFileShareTable(Table table)
        {
            foreach (Row row in table.Rows)
            {
                Util.FileShare fileShare = new Util.FileShare();

                fileShare.Id = (string)row[0];

                fileShare.Name = (string)row[1];

                if (null != row[3])
                {
                    fileShare.Description = (string)row[3];
                }

                // the Directory_ column is set by the parent Component

                // the User_ and Permissions columns are deprecated

                Wix.Component component = (Wix.Component)this.Core.GetIndexedElement("Component", (string)row[2]);
                if (null != component)
                {
                    component.AddChild(fileShare);
                }
                else
                {
                    this.Core.OnMessage(WixWarnings.ExpectedForeignRow(row.SourceLineNumbers, table.Name, row.GetPrimaryKey(DecompilerCore.PrimaryKeyDelimiter), "Component_", (string)row[2], "Component"));
                }
                this.Core.IndexElement(row, fileShare);
            }
        }
コード例 #3
0
        /// <summary>
        /// Decompile the FileSharePermissions table.
        /// </summary>
        /// <param name="table">The table to decompile.</param>
        private void DecompileFileSharePermissionsTable(Table table)
        {
            foreach (Row row in table.Rows)
            {
                Util.FileSharePermission fileSharePermission = new Util.FileSharePermission();

                fileSharePermission.User = (string)row[1];

                string[] specialPermissions = UtilExtension.FolderPermissions;
                int      permissions        = (int)row[2];
                for (int i = 0; i < 32; i++)
                {
                    if (0 != ((permissions >> i) & 1))
                    {
                        string name = null;

                        if (16 > i && specialPermissions.Length > i)
                        {
                            name = specialPermissions[i];
                        }
                        else if (28 > i && UtilExtension.StandardPermissions.Length > (i - 16))
                        {
                            name = UtilExtension.StandardPermissions[i - 16];
                        }
                        else if (0 <= (i - 28) && UtilExtension.GenericPermissions.Length > (i - 28))
                        {
                            name = UtilExtension.GenericPermissions[i - 28];
                        }

                        if (null == name)
                        {
                            this.Core.OnMessage(WixWarnings.UnknownPermission(row.SourceLineNumbers, row.Table.Name, row.GetPrimaryKey(DecompilerCore.PrimaryKeyDelimiter), i));
                        }
                        else
                        {
                            switch (name)
                            {
                            case "ChangePermission":
                                fileSharePermission.ChangePermission = Util.YesNoType.yes;
                                break;

                            case "CreateChild":
                                fileSharePermission.CreateChild = Util.YesNoType.yes;
                                break;

                            case "CreateFile":
                                fileSharePermission.CreateFile = Util.YesNoType.yes;
                                break;

                            case "Delete":
                                fileSharePermission.Delete = Util.YesNoType.yes;
                                break;

                            case "DeleteChild":
                                fileSharePermission.DeleteChild = Util.YesNoType.yes;
                                break;

                            case "GenericAll":
                                fileSharePermission.GenericAll = Util.YesNoType.yes;
                                break;

                            case "GenericExecute":
                                fileSharePermission.GenericExecute = Util.YesNoType.yes;
                                break;

                            case "GenericRead":
                                fileSharePermission.GenericRead = Util.YesNoType.yes;
                                break;

                            case "GenericWrite":
                                fileSharePermission.GenericWrite = Util.YesNoType.yes;
                                break;

                            case "Read":
                                fileSharePermission.Read = Util.YesNoType.yes;
                                break;

                            case "ReadAttributes":
                                fileSharePermission.ReadAttributes = Util.YesNoType.yes;
                                break;

                            case "ReadExtendedAttributes":
                                fileSharePermission.ReadExtendedAttributes = Util.YesNoType.yes;
                                break;

                            case "ReadPermission":
                                fileSharePermission.ReadPermission = Util.YesNoType.yes;
                                break;

                            case "Synchronize":
                                fileSharePermission.Synchronize = Util.YesNoType.yes;
                                break;

                            case "TakeOwnership":
                                fileSharePermission.TakeOwnership = Util.YesNoType.yes;
                                break;

                            case "Traverse":
                                fileSharePermission.Traverse = Util.YesNoType.yes;
                                break;

                            case "WriteAttributes":
                                fileSharePermission.WriteAttributes = Util.YesNoType.yes;
                                break;

                            case "WriteExtendedAttributes":
                                fileSharePermission.WriteExtendedAttributes = Util.YesNoType.yes;
                                break;

                            default:
                                Debug.Fail(String.Format("Unknown permission '{0}'.", name));
                                break;
                            }
                        }
                    }
                }

                Util.FileShare fileShare = (Util.FileShare) this.Core.GetIndexedElement("FileShare", (string)row[0]);
                if (null != fileShare)
                {
                    fileShare.AddChild(fileSharePermission);
                }
                else
                {
                    this.Core.OnMessage(WixWarnings.ExpectedForeignRow(row.SourceLineNumbers, table.Name, row.GetPrimaryKey(DecompilerCore.PrimaryKeyDelimiter), "FileShare_", (string)row[0], "FileShare"));
                }
            }
        }