public PrinterModuleController() { _printerModuleServices = new ServicePrinterModule(); _auditLogService = new ServiceAuditLog(); _userId = Convert.ToInt32(((ClaimsIdentity)User.Identity).Claims.Where(c => c.Type == "user_id") .Select(c => c.Value).SingleOrDefault()); }
private void PrinterModule(EntityPolicyModules policyModule) { var clientPrinterModule = new DtoClientPrinterModule(); var printerModule = new ServicePrinterModule().GetModule(policyModule.ModuleId); clientPrinterModule.Guid = printerModule.Guid; clientPrinterModule.DisplayName = printerModule.Name; clientPrinterModule.PrinterPath = printerModule.NetworkPath; clientPrinterModule.Order = policyModule.Order; clientPrinterModule.IsDefault = printerModule.IsDefault; clientPrinterModule.RestartSpooler = printerModule.RestartSpooler; clientPrinterModule.PrinterAction = printerModule.Action; clientPrinterModule.WaitForEnumeration = printerModule.WaitForEnumeration; if (policyModule.ConditionId != -1) { var conditionScript = new ServiceScriptModule().GetModule(policyModule.ConditionId); if (conditionScript != null) { clientPrinterModule.ConditionFailedAction = policyModule.ConditionFailedAction; clientPrinterModule.ConditionNextOrder = policyModule.ConditionNextModule; clientPrinterModule.Condition = new DtoClientModuleCondition(); clientPrinterModule.Condition.Arguments = conditionScript.Arguments; clientPrinterModule.Condition.DisplayName = conditionScript.Name; clientPrinterModule.Condition.Guid = conditionScript.Guid; clientPrinterModule.Condition.RedirectError = conditionScript.RedirectStdError; clientPrinterModule.Condition.RedirectOutput = conditionScript.RedirectStdOut; if (conditionScript.ImpersonationId != -1) { var scriptImpersonationGuid = new ServiceImpersonationAccount().GetGuid(conditionScript.ImpersonationId); if (!string.IsNullOrEmpty(scriptImpersonationGuid)) { clientPrinterModule.Condition.RunAs = scriptImpersonationGuid; } } clientPrinterModule.Condition.ScriptType = conditionScript.ScriptType; foreach (var successCode in conditionScript.SuccessCodes.Split(',')) { clientPrinterModule.Condition.SuccessCodes.Add(successCode); } clientPrinterModule.Condition.Timeout = conditionScript.Timeout; clientPrinterModule.Condition.WorkingDirectory = conditionScript.WorkingDirectory; } } _clientPolicy.PrinterModules.Add(clientPrinterModule); }
private string VerifyPrinter(EntityPolicyModules policyModule) { var printerModule = new ServicePrinterModule().GetModule(policyModule.ModuleId); if (printerModule == null) { return("An Assigned Printer Module No Longer Exists"); } if (string.IsNullOrEmpty(printerModule.Name)) { return("A Printer Module Has An Invalid Name"); } if (printerModule.Archived) { return("Printer Module: " + printerModule.Name + " Is Archived"); } if (string.IsNullOrEmpty(printerModule.NetworkPath)) { return("Printer Module: " + printerModule.Name + " Has An Invalid Network Path"); } if (string.IsNullOrEmpty(printerModule.Guid)) { return("Printer Module: " + printerModule.Name + " Has An Invalid GUID"); } if (printerModule.Action != EnumPrinterModule.ActionType.Delete && printerModule.Action != EnumPrinterModule.ActionType.Install && printerModule.Action != EnumPrinterModule.ActionType.InstallPowershell && printerModule.Action != EnumPrinterModule.ActionType.None) { return("Printer Module: " + printerModule.Name + " Has An Invalid Action"); } int value; if (!int.TryParse(policyModule.Order.ToString(), out value)) { return("Printer Module: " + printerModule.Name + " Has An Invalid Order"); } return(null); }
private void CopyPrinterModule(EntityPolicyModules policyModule) { var printerModuleExport = new DtoPrinterModuleExport(); var printerModule = new ServicePrinterModule().GetModule(policyModule.ModuleId); printerModuleExport.DisplayName = printerModule.Name; printerModuleExport.PrinterPath = printerModule.NetworkPath; printerModuleExport.Description = printerModule.Description; printerModuleExport.Order = policyModule.Order; printerModuleExport.IsDefault = printerModule.IsDefault; printerModuleExport.RestartSpooler = printerModule.RestartSpooler; printerModuleExport.PrinterAction = printerModule.Action; printerModuleExport.WaitForEnumeration = printerModule.WaitForEnumeration; printerModuleExport.Guid = printerModule.Guid; printerModuleExport.ConditionFailedAction = policyModule.ConditionFailedAction; printerModuleExport.ConditionNextOrder = policyModule.ConditionNextModule; if (policyModule.ConditionId != -1) { printerModuleExport.Condition = GetCondition(policyModule.ConditionId); } _policyExport.PrinterModules.Add(printerModuleExport); }
public DtoActionResult Restore(int moduleId, EnumModule.ModuleType moduleType) { var result = _moduleServices.RestoreModule(moduleId, moduleType); if (result == null) { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound)); } if (result.Success) { var auditLog = new EntityAuditLog(); switch (moduleType) { case EnumModule.ModuleType.Command: var cModule = new ServiceCommandModule().GetModule(moduleId); auditLog.ObjectName = cModule.Name; auditLog.ObjectJson = JsonConvert.SerializeObject(cModule); break; case EnumModule.ModuleType.FileCopy: var fModule = new ServiceFileCopyModule().GetModule(moduleId); auditLog.ObjectName = fModule.Name; auditLog.ObjectJson = JsonConvert.SerializeObject(fModule); break; case EnumModule.ModuleType.Printer: var pModule = new ServicePrinterModule().GetModule(moduleId); auditLog.ObjectName = pModule.Name; auditLog.ObjectJson = JsonConvert.SerializeObject(pModule); break; case EnumModule.ModuleType.Script: var scModule = new ServiceScriptModule().GetModule(moduleId); auditLog.ObjectName = scModule.Name; auditLog.ObjectJson = JsonConvert.SerializeObject(scModule); break; case EnumModule.ModuleType.Software: var sModule = new ServiceSoftwareModule().GetModule(moduleId); auditLog.ObjectName = sModule.Name; auditLog.ObjectJson = JsonConvert.SerializeObject(sModule); break; case EnumModule.ModuleType.Wupdate: var uModule = new ServiceWuModule().GetModule(moduleId); auditLog.ObjectName = uModule.Name; auditLog.ObjectJson = JsonConvert.SerializeObject(uModule); break; case EnumModule.ModuleType.Message: var messageModule = new ServiceMessageModule().GetModule(moduleId); auditLog.ObjectName = messageModule.Name; auditLog.ObjectJson = JsonConvert.SerializeObject(messageModule); break; } auditLog.ObjectType = moduleType.ToString(); auditLog.ObjectId = result.Id; auditLog.UserId = _userId; auditLog.AuditType = EnumAuditEntry.AuditType.Restore; _auditLogService.AddAuditLog(auditLog); } return(result); }
private DtoActionResult CreatePrinters() { foreach (var printerModule in _export.PrinterModules) { if (_export.Instructions.Contains("[generate-module-guid]")) { printerModule.Guid = Guid.NewGuid().ToString(); } if (_uow.PrinterModuleRepository.Exists(h => h.Guid.Equals(printerModule.Guid))) { return(new DtoActionResult() { ErrorMessage = "A Printer Module With This Guid Already Exists. " + printerModule.Guid }); } var printer = new EntityPrinterModule(); printer.Name = printerModule.DisplayName; printer.Description = "Added Via Policy Template " + _export.Name + " On " + DateTime.Now + "\r\n" + printerModule.Description; printer.Guid = printerModule.Guid; printer.Action = printerModule.PrinterAction; printer.IsDefault = printerModule.IsDefault; printer.NetworkPath = printerModule.PrinterPath; printer.RestartSpooler = printerModule.RestartSpooler; printer.WaitForEnumeration = printerModule.WaitForEnumeration; if (_uow.PrinterModuleRepository.Exists(h => h.Name.Equals(printer.Name))) { for (var c = 1; c <= 100; c++) { if (c == 100) { return new DtoActionResult() { ErrorMessage = "Could Not Determine A Printer Name" } } ; var newName = printer.Name + "_" + c; if (!_uow.PrinterModuleRepository.Exists(h => h.Name == newName)) { printer.Name = newName; break; } } } var addResult = new ServicePrinterModule().AddModule(printer); if (!addResult.Success) { return(addResult); } var policyModule = new EntityPolicyModules(); policyModule.Guid = printer.Guid; policyModule.ModuleId = addResult.Id; policyModule.ModuleType = EnumModule.ModuleType.Printer; policyModule.Name = printer.Name; policyModule.Order = printerModule.Order; policyModule.PolicyId = _policy.Id; policyModule.ConditionFailedAction = printerModule.ConditionFailedAction; policyModule.ConditionNextModule = printerModule.ConditionNextOrder; var conditionId = CreateCondition(printerModule.Condition); if (conditionId != 0) { policyModule.ConditionId = conditionId; } else { policyModule.ConditionId = -1; } _uow.PolicyModulesRepository.Insert(policyModule); } return(new DtoActionResult() { Success = true }); }