コード例 #1
0
ファイル: UtilDecompiler.cs プロジェクト: Jeremiahf/wix3
        /// <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"));
                }
            }
        }
コード例 #2
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"));
                }
            }
        }