GetUserId() 공개 메소드

public GetUserId ( ) : long
리턴 long
예제 #1
0
        public CommandOutput OnExecute(CommandInput arguments)
        {
            var output = new CommandOutput {PostAction = CommandOutput.PostCommandAction.None};

            var name = arguments["name"];

            long userId = arguments.GetUserId();

            if (string.IsNullOrEmpty(name))
            {
                output.DisplayMessage = "Suite Name missing";
                output.PostAction = CommandOutput.PostCommandAction.ShowCommandHelp;
                output.MessageType = CommandOutput.DisplayMessageType.Error;
            }
            else
            {
                var keys = EncryptionEngine.Default.CreateKeys();
                var model = new SuiteCreateModel
                {
                    SuiteName = name,
                    SuiteType = SuiteTypes.PersonalWithMultiEnvironment,
                    PrivateKey = keys.Item1,
                    UsesSysEncryption = true,
                    PublicKey = keys.Item2,
                    UserId = userId
                };

                model.Environments.Add(new EnvironmentModel
                {
                    EnvironmentName = "*",
                    EnvironmentType = EnvironmentType.PROD
                });

                model.Applications.Add(new ApplicationModel
                {
                    ApplicationName = "*",
                    Description = "All Applications in Suite " + name
                });

                model.Regions.Add(new RegionModel
                {
                    RegionName = "*",
                    Description = "All Regions in Suite " + name
                });

                model.Servers.Add(new ServerModel
                {
                    ServerName = "*",
                    Description = "All Servers in Suite " + name
                });

                var suite = CurrentHostContext.Default.Provider.ConfigurationStore.AddSuite(model);
                output.Data = suite;
                output.DisplayMessage = "Success";

                output.PostAction = CommandOutput.PostCommandAction.None;
            }

            return output;
        }
예제 #2
0
        public CommandOutput OnExecute(CommandInput arguments)
        {
            var output = new CommandOutput {PostAction = CommandOutput.PostCommandAction.None};
            long parameterId = long.Parse(arguments["pid"]);
            long suiteId = long.Parse(arguments["sid"]);
            long serverId = -1, appId = -1, regionId = -1, environmentId = -1;
            long userId = arguments.GetUserId();

            var suite = CurrentHostContext.Default.Provider.ConfigurationStore.GetSuite(userId, suiteId);
            var parameter = CurrentHostContext.Default.Provider.ConfigurationStore.GetParameter(userId, parameterId);
            if (parameter.SuiteId != suite.SuiteId)
            {
                output.DisplayMessage = "No such parameter id (pid) exists for suite id:" + suite.SuiteId;
                output.MessageType = CommandOutput.DisplayMessageType.Error;
                return output;
            }

            if (!long.TryParse(arguments["srid"], out serverId) && suite.Servers.Any(x => x.ServerName == "*"))
                serverId = suite.Servers.First(x => x.ServerName == "*").ServerId.GetValueOrDefault();

            if (!long.TryParse(arguments["aid"], out appId) && suite.Applications.Any(x => x.ApplicationName == "*"))
                appId = suite.Applications.First(x => x.ApplicationName == "*").ApplicationId.GetValueOrDefault();

            if (!long.TryParse(arguments["rid"], out regionId) && suite.Regions.Any(x => x.RegionName == "*"))
                regionId = suite.Regions.First(x => x.RegionName == "*").RegionId.GetValueOrDefault();

            if (!long.TryParse(arguments["eid"], out environmentId) &&
                suite.Environments.Any(x => x.EnvironmentName == "*" && x.EnvironmentType == EnvironmentType.PROD))
                environmentId =
                    suite.Environments.First(x => x.EnvironmentName == "*" && x.EnvironmentType == EnvironmentType.PROD)
                        .EnvironmentId.GetValueOrDefault();

            if (serverId == 0 || appId == 0 || regionId == 0 || environmentId == 0)
            {
                output.DisplayMessage = "Invalid Map Parameters. Please try providing optional fields";
                output.MessageType = CommandOutput.DisplayMessageType.Error;
                output.PostAction = CommandOutput.PostCommandAction.ShowCommandHelp;

                return output;
            }

            var model = new MappingModel
            {
                ApplicationId = appId,
                EnvironmentId = environmentId,
                ParameterId = parameterId,
                RegionId = regionId,
                ServerId = serverId,
                SuiteId = suiteId,
                UserId = userId
            };

            MappingModel mapping = CurrentHostContext.Default.Provider.ConfigurationStore.AddMapping(model);

            output.Data = mapping;
            output.DisplayMessage = "Success";

            return output;
        }
예제 #3
0
        public CommandOutput OnExecute(CommandInput arguments)
        {
            var output = new CommandOutput {PostAction = CommandOutput.PostCommandAction.None};
            long suiteId = -1;
            long userId = arguments.GetUserId();
            long.TryParse(arguments["sid"], out suiteId);
            var name = arguments["name"];

            List<ParameterModel> listOfParams = new List<ParameterModel>();

            if (suiteId != -1)
            {
                listOfParams = CurrentHostContext.Default.Provider.ConfigurationStore.GetParametersLike(userId, suiteId,
                    name);
            }
            else
            {
                output.DisplayMessage = "No such suite id exists: " + suiteId;
                output.PostAction = CommandOutput.PostCommandAction.ShowCommandHelp;
                output.MessageType = CommandOutput.DisplayMessageType.Error;
            }

            if (listOfParams.Count > 0)
            {
                var pk = arguments["pk"];
                if (pk != null)
                {
                    var suite = CurrentHostContext.Default.Provider.ConfigurationStore.GetSuite(userId, suiteId);

                    if (suite.PublicKey.Equals(pk, StringComparison.InvariantCulture))
                    {
                        listOfParams.ForEach(
                            x =>
                            {
                                x.ParameterValue = EncryptionEngine.Default.Decrypt(x.ParameterValue, suite.PrivateKey,
                                    null);
                            });
                    }
                    else
                    {
                        output.DisplayMessage = "Invalid combination of Private / Public Key to decrypt ParameterValue";
                        output.MessageType = CommandOutput.DisplayMessageType.Error;

                        return output;
                    }
                }
                output.Data = listOfParams;
                output.DisplayMessage = "Success";
            }
            else
            {
                output.DisplayMessage = DoesNotExist;
                output.MessageType = CommandOutput.DisplayMessageType.Error;
            }

            return output;
        }
예제 #4
0
        public CommandOutput OnExecute(CommandInput arguments)
        {
            var output = new CommandOutput {PostAction = CommandOutput.PostCommandAction.None};
            var listOfSuites = CurrentHostContext.Default.Provider.ConfigurationStore.GetSuites(arguments.GetUserId());

            output.Data = listOfSuites;
            output.DisplayMessage = "Success";

            return output;
        }
예제 #5
0
 public AuditRecordModel GetAuditCommand(CommandInput input)
 {
     return new AuditRecordModel
     {
         Area = AuditArea.Region,
         Reason = AuditReason.Retrieved,
         Message = input.Command,
         Key = input["sid"],
         UserId = input.GetUserId()
     };
 }
예제 #6
0
        public CommandOutput OnExecute(CommandInput arguments)
        {
            var output = new CommandOutput {PostAction = CommandOutput.PostCommandAction.None};
            var regionId = long.Parse(arguments["rid"]);
            long userId = arguments.GetUserId();
            var success = CurrentHostContext.Default.Provider.ConfigurationStore.DeleteRegion(userId, regionId);

            output.DisplayMessage = success ? "Region deleted successfully!" : "Could not delete Region";

            return output;
        }
예제 #7
0
 public AuditRecordModel GetAuditCommand(CommandInput input)
 {
     return new AuditRecordModel
     {
         Area = AuditArea.Mapping,
         Reason = AuditReason.Removed,
         Message = input.Command,
         Key = input["mid"],
         UserId = input.GetUserId()
     };
 }
예제 #8
0
        public CommandOutput OnExecute(CommandInput arguments)
        {
            var output = new CommandOutput {PostAction = CommandOutput.PostCommandAction.None};
            long suiteId = -1;
            long userId = arguments.GetUserId();
            long.TryParse(arguments["sid"], out suiteId);
            var model = CurrentHostContext.Default.Provider.ConfigurationStore.GetRegions(userId, suiteId);

            output.Data = model;
            output.DisplayMessage = "Success";
            return output;
        }
예제 #9
0
        public CommandOutput OnExecute(CommandInput arguments)
        {
            var output = new CommandOutput {PostAction = CommandOutput.PostCommandAction.None};
            long suiteId = long.Parse(arguments["sid"]);
            long userId = arguments.GetUserId();
            List<MappingModel> listOfMaps = CurrentHostContext.Default.Provider.ConfigurationStore.GetMapping(userId,
                suiteId);
            output.Data = listOfMaps;
            output.DisplayMessage = "Success";

            return output;
        }
예제 #10
0
        public CommandOutput OnExecute(CommandInput arguments)
        {
            var output = new CommandOutput {PostAction = CommandOutput.PostCommandAction.None};
            var suiteId = long.Parse(arguments["sid"]);
            long userId = arguments.GetUserId();
            var success = CurrentHostContext.Default.Provider.ConfigurationStore.DeleteSuite(new SuiteModel
            {
                UserId = userId,
                SuiteId = suiteId
            });

            output.DisplayMessage = success ? "Suite deleted successfully!" : "Could not delete suite";

            return output;
        }
예제 #11
0
        public CommandOutput OnExecute(CommandInput arguments)
        {
            var output = new CommandOutput {PostAction = CommandOutput.PostCommandAction.None};
            long suiteId = long.Parse(arguments["sid"]);
            string username = arguments["user"];
            long loggedInUserId = arguments.GetUserId();

            bool success = CurrentHostContext.Default.Provider.ConfigurationStore.RevokeRoleAccessToSuite(suiteId,
                loggedInUserId, username);
            output.Data = success;
            output.DisplayMessage = success
                ? "Grants revoked successfully"
                : "Some problem occured while revoking rights from user";

            return output;
        }
예제 #12
0
        public CommandOutput OnExecute(CommandInput arguments)
        {
            var output = new CommandOutput {PostAction = CommandOutput.PostCommandAction.None};
            long suiteId = long.Parse(arguments["sid"]);
            string username = arguments["user"];
            long loggedInUserId = arguments.GetUserId();
            RoleType role = arguments.HasArgument("role") ? arguments["role"].ToEnum<RoleType>() : RoleType.ReadOnly;
            bool success = CurrentHostContext.Default.Provider.ConfigurationStore.GrantRoleAccessToSuite(suiteId,
                loggedInUserId,
                username, role);

            output.Data = success;
            output.DisplayMessage = success
                ? "Grants added successfully"
                : "Some problem occured while granting rights to user";
            return output;
        }
예제 #13
0
        public CommandOutput OnExecute(CommandInput arguments)
        {
            var output = new CommandOutput {PostAction = CommandOutput.PostCommandAction.None};
            bool completed = false;
            long userId = arguments.GetUserId();
            ApplicationModel model = default(ApplicationModel);

            if (arguments["name"] != null)
            {
                model = CurrentHostContext.Default.Provider.ConfigurationStore.GetApplication(userId, arguments["name"]);
                completed = true;
            }
            else if (arguments["id"] != null)
            {
                long appId = -1;
                long.TryParse(arguments["id"], out appId);

                if (appId != -1)
                {
                    model = CurrentHostContext.Default.Provider.ConfigurationStore.GetApplication(userId, appId);
                    completed = true;
                }
            }

            if (!completed)
            {
                output.DisplayMessage = "Invalid data in command received";
                output.PostAction = CommandOutput.PostCommandAction.ShowCommandHelp;
                output.MessageType = CommandOutput.DisplayMessageType.Error;
            }
            else if (model != null)
            {
                output.Data = model;
                output.DisplayMessage = "Success";
            }
            else
            {
                output.DisplayMessage = DoesNotExist;
                output.MessageType = CommandOutput.DisplayMessageType.Error;
            }

            return output;
        }
예제 #14
0
        public CommandOutput OnExecute(CommandInput arguments)
        {
            var output = new CommandOutput {PostAction = CommandOutput.PostCommandAction.None};
            var name = arguments["name"];
            long suiteId = long.Parse(arguments["sid"]);
            long userId = arguments.GetUserId();
            var region = CurrentHostContext.Default.Provider.ConfigurationStore.AddRegion(new RegionModel
            {
                RegionName = name,
                IsActive = true,
                SuiteId = suiteId,
                UserId = userId
            });

            output.Data = region;
            output.DisplayMessage = "Success";

            return output;
        }
예제 #15
0
        public CommandOutput OnExecute(CommandInput arguments)
        {
            var output = new CommandOutput {PostAction = CommandOutput.PostCommandAction.None};
            var name = arguments["name"];
            long suiteId = long.Parse(arguments["sid"]);
            var value = arguments["val"];
            var isEncrypted = arguments.HasArgument("protect");
            long userId = arguments.GetUserId();
            if (isEncrypted)
            {
                var suite = CurrentHostContext.Default.Provider.ConfigurationStore.GetSuite(userId, suiteId);
                if (suite != null)
                {
                    value = EncryptionEngine.Default.Encrypt(value, suite.PublicKey, null);
                }
                else
                {
                    output.DisplayMessage = "Could not retrieve suite :" + suiteId;
                    output.MessageType = CommandOutput.DisplayMessageType.Error;
                    output.PostAction = CommandOutput.PostCommandAction.ShowCommandHelp;

                    return output;
                }
            }

            var parameter = CurrentHostContext.Default.Provider.ConfigurationStore.AddParameter(new ParameterModel
            {
                ParameterName = name,
                ParameterValue = string.IsNullOrEmpty(value) ? string.Empty : value,
                IsActive = true,
                IsEncrypted = isEncrypted,
                SuiteId = suiteId,
                UserId = userId
            });

            output.Data = parameter;
            output.DisplayMessage = "Success";

            return output;
        }
예제 #16
0
        public CommandOutput OnExecute(CommandInput arguments)
        {
            var output = new CommandOutput {PostAction = CommandOutput.PostCommandAction.None};

            var sid = long.Parse(arguments["sid"]);
            var fromId = long.Parse(arguments["from"]);
            var toId = long.Parse(arguments["to"]);
            var clone = arguments.HasArgument("clone-param") &&
                        arguments["clone-param"].Equals("y", StringComparison.InvariantCultureIgnoreCase);

            var mappingsForSuite =
                CurrentHostContext.Default.Provider.ConfigurationStore.GetMapping(arguments.GetUserId(), sid);
            var sourceEnvironmentsMapping = mappingsForSuite.Where(x => x.EnvironmentId == fromId);
            var environmentsMapping = sourceEnvironmentsMapping as MappingModel[] ?? sourceEnvironmentsMapping.ToArray();
            if (!environmentsMapping.Any())
            {
                output.MessageType = CommandOutput.DisplayMessageType.Error;
                output.DisplayMessage = "No Mappings found";
                return output;
            }

            var targetMapping = new List<MappingModel>();
            if (clone)
            {
                var suiteParameters = CurrentHostContext.Default.Provider.ConfigurationStore.GetParameters(
                    arguments.GetUserId(), sid);
                foreach (var mapping in environmentsMapping)
                {
                    var param = suiteParameters.FirstOrDefault(x => x.ParameterId == mapping.ParameterId);
                    if (param != null)
                    {
                        var newParam = CurrentHostContext.Default.Provider.ConfigurationStore.AddParameter(param);
                        if (newParam != null)
                        {
                            mapping.ParameterId = newParam.AutoIncrementId;
                            mapping.EnvironmentId = toId;
                            targetMapping.Add(mapping);
                        }
                    }
                }
            }
            else
            {
                foreach (var mapping in environmentsMapping)
                {
                    mapping.EnvironmentId = toId;
                    targetMapping.Add(mapping);
                }
            }

            bool success = true;

            targetMapping.ForEach(
                mapping => success &= CurrentHostContext.Default.Provider.ConfigurationStore.AddMapping(mapping) != null);

            output.DisplayMessage = success
                ? String.Format("Mappings{0} from environment {1} to {2}",
                    clone ? "/Parameters Cloned" : " Promoted", fromId, toId)
                : "Some error occured while promoting pamareters/mapping";

            return output;
        }
예제 #17
0
파일: Get.cs 프로젝트: punitganshani/KonfDB
        public CommandOutput OnExecute(CommandInput arguments)
        {
            var output = new CommandOutput {PostAction = CommandOutput.PostCommandAction.None};
            long appId = -1, serverId = -1, envId = -1, regionId = -1;
            long userId = arguments.GetUserId();
            string server, env, region;

            server = !arguments.HasArgument("server") ? "*" : arguments["server"];
            env = !arguments.HasArgument("env") ? "*" : arguments["env"];
            region = !arguments.HasArgument("region") ? "*" : arguments["region"];

            if (!long.TryParse(arguments["app"], out appId))
                appId =
                    CurrentHostContext.Default.Provider.ConfigurationStore.GetApplication(userId, arguments["app"])
                        .ApplicationId.GetValueOrDefault();

            if (!long.TryParse(server, out serverId))
                serverId =
                    CurrentHostContext.Default.Provider.ConfigurationStore.GetServer(userId, server)
                        .ServerId.GetValueOrDefault(-1);

            if (!long.TryParse(env, out envId))
                envId =
                    CurrentHostContext.Default.Provider.ConfigurationStore.GetEnvironment(userId, env)
                        .EnvironmentId.GetValueOrDefault(-1);

            if (!long.TryParse(region, out regionId))
                regionId =
                    CurrentHostContext.Default.Provider.ConfigurationStore.GetRegion(userId, region)
                        .RegionId.GetValueOrDefault(-1);

            List<ConfigurationModel> model =
                CurrentHostContext.Default.Provider.ConfigurationStore.GetConfigurations(userId,
                    appId,
                    serverId, envId, regionId, string.Empty);

            model.ForEach(config =>
            {
                if (config.IsEncrypted)
                {
                    var pk = arguments["unprotect"];
                    if (pk != null)
                    {
                        var suite =
                            CurrentHostContext.Default.Provider.ConfigurationStore.GetSuite(arguments.GetUserId(),
                                config.SuiteId);

                        if (suite.PublicKey.Equals(pk, StringComparison.InvariantCulture))
                        {
                            config.ParameterValue = EncryptionEngine.Default.Decrypt(config.ParameterValue,
                                suite.PrivateKey, null);
                        }
                    }
                }
            });

            output.Data = model;
            output.DisplayMessage = "Success";

            return output;
        }
예제 #18
0
        public CommandOutput OnExecute(CommandInput arguments)
        {
            model.UserId = arguments.GetUserId();
            if (model.Key == null)
                model.Key = "<Unknown>";
            CurrentHostContext.Default.Provider.ConfigurationStore.AddAuditRecord(model);

            return new CommandOutput
            {
                PostAction = CommandOutput.PostCommandAction.None
            };
        }
예제 #19
0
 public AuditRecordModel GetAuditCommand(CommandInput input)
 {
     return new AuditRecordModel
     {
         Area = AuditArea.Parameter,
         Reason = AuditReason.Added,
         Message = input.Command,
         Key = input["name"] + "-" + input["sid"],
         UserId = input.GetUserId()
     };
 }
예제 #20
0
 public AuditRecordModel GetAuditCommand(CommandInput input)
 {
     return new AuditRecordModel
     {
         Area = AuditArea.Environment,
         Reason = AuditReason.Added,
         Message = input.Command,
         Key = input["name"],
         UserId = input.GetUserId()
     };
 }
예제 #21
0
        public CommandOutput OnExecute(CommandInput arguments)
        {
            var output = new CommandOutput {PostAction = CommandOutput.PostCommandAction.None};
            bool completed = false;
            long userId = arguments.GetUserId();
            ParameterModel model = default(ParameterModel);

            if (arguments["name"] != null)
            {
                model = CurrentHostContext.Default.Provider.ConfigurationStore.GetParameter(userId, arguments["name"]);
                completed = true;
            }
            else if (arguments["id"] != null)
            {
                long paramId = -1;
                long.TryParse(arguments["id"], out paramId);

                if (paramId != -1)
                {
                    model = CurrentHostContext.Default.Provider.ConfigurationStore.GetParameter(userId, paramId);
                    completed = true;
                }
            }

            if (!completed)
            {
                output.DisplayMessage = "Invalid data in command received";
                output.PostAction = CommandOutput.PostCommandAction.ShowCommandHelp;
                output.MessageType = CommandOutput.DisplayMessageType.Error;
            }
            else if (model != null)
            {
                var pk = arguments["pk"];
                if (pk != null && model.IsEncrypted)
                {
                    var suite = CurrentHostContext.Default.Provider.ConfigurationStore.GetSuite(arguments.GetUserId(),
                        model.SuiteId);

                    if (suite.PublicKey.Equals(pk, StringComparison.InvariantCulture))
                    {
                        model.ParameterValue = EncryptionEngine.Default.Decrypt(model.ParameterValue, suite.PrivateKey,
                            null);
                    }
                    else
                    {
                        output.DisplayMessage = "Invalid combination of Private / Public Key to decrypt ParameterValue";
                        output.MessageType = CommandOutput.DisplayMessageType.Error;

                        return output;
                    }
                }

                output.Data = model;
                output.DisplayMessage = "Success";
            }
            else
            {
                output.DisplayMessage = DoesNotExist;
                output.MessageType = CommandOutput.DisplayMessageType.Error;
            }

            return output;
        }
예제 #22
0
 public AuditRecordModel GetAuditCommand(CommandInput input)
 {
     return new AuditRecordModel
     {
         Area = AuditArea.Server,
         Reason = AuditReason.Retrieved,
         Message = input.Command,
         Key = input.HasArgument("name") ? input["name"] : input["id"],
         UserId = input.GetUserId()
     };
 }
예제 #23
0
 public AuditRecordModel GetAuditCommand(CommandInput input)
 {
     return new AuditRecordModel
     {
         Area = AuditArea.User,
         Reason = AuditReason.Changed,
         Message = input.Command,
         Key = input["user"],
         UserId = input.GetUserId()
     };
 }