コード例 #1
0
        private void editAction_Click(object sender, EventArgs e, ACLSetting action)
        {
            this.latestACL = latestACLGroup.Settings.IndexOf(action);

            if (action is ACLSetting)
            {
                this.aclForm.initialize(action as ACLSetting, latestACLGroup.Settings != null ? latestACLGroup.Settings.Count : 0, latestACL);
                this.aclForm.Show();
                this.Hide();
            }
        }
コード例 #2
0
        private string mixing(Folder createFolder, string basePath, Package package)
        {
            string returnObj = "";

            // create folder if not existent
            returnObj = newFolderBase.Replace("@basePath", basePath).Replace("@folderPath", createFolder.Name);

            returnObj += "\n\n";

            string fullPath = basePath + createFolder.Name + @"\";

            // create intructions
            if (string.IsNullOrEmpty(createFolder.FolderInstructions) == false && package.FolderInstructionsDefaultFileNameValidated() != ".txt")
            {
                string   manual      = createFolder.FolderInstructions;
                string[] escapeChars = new string[] { "@", "!", "(", ")", "|", "&", "\"", "," };

                ////PS
                foreach (var character in escapeChars)
                {
                    manual = manual.Replace(character, "`" + character);
                }

                returnObj += createManualFile.Replace("@filePath", basePath + createFolder.Name + "\\" + package.FolderInstructionsDefaultFileNameValidated()).Replace("@fileContent", manual);
            }

            // create actions
            if (createFolder.Actions != null)
            {
                foreach (var item in createFolder.Actions)
                {
                    if (item is ACLSetting)
                    {
                        ACLSetting itemAsAcl = item as ACLSetting;
                        // check if ACL action has a inner parameter as it's target
                        returnObj += mixing(item as ACLSetting, fullPath, package);
                    }
                }
            }

            // add inner folders
            if (createFolder.Folders != null)
            {
                foreach (var item in createFolder.Folders)
                {
                    returnObj += mixing(item, fullPath, package);
                }
            }

            return(returnObj);
        }
コード例 #3
0
        private string mixing(ACLSetting acl, string aclPath, Package package)
        {
            string returnObj = "";

            //generate ACL
            string aclTXT = aclSettingBase;
            ACLPropagationAndInheritanceSettings propagationVariable = acl.PropagationAndInheritanceSettings();

            aclTXT = aclTXT.Replace("@actionPath", aclPath);

            aclTXT = aclTXT.Replace("@rights", acl.AccessRights());
            aclTXT = aclTXT.Replace("@allowDeny", acl.AllowOrDeny());
            aclTXT = aclTXT.Replace("@inherit", propagationVariable.Inheritance);
            aclTXT = aclTXT.Replace("@propagation", propagationVariable.Propagation);

            if (package.Parameters.Where(x => x.Name == acl.ForWho).Any())
            {
                Parameter par = package.Parameters.Where(x => x.Name == acl.ForWho).First();

                string[] values = par.Value.Replace("\r", "").Split(new char[] { '\n' });

                foreach (var item in values)
                {
                    string innerAclTXT = aclTXT;
                    innerAclTXT = innerAclTXT.Replace("@who", item);
                    returnObj  += innerAclTXT;
                    returnObj  += "\n\n";
                }
            }
            else
            {
                aclTXT     = aclTXT.Replace("@who", acl.ForWho);
                returnObj += aclTXT;
                returnObj += "\n\n";
            }

            return(returnObj);
        }