private void ChangeUserCommand(List <string> args, Common.CmdIO.TTY io, UUID limitedToScene) { UserAccount account; if (args[0] == "help" || args.Count < 4 || args.Count % 2 != 0) { io.Write("change user <firstname> <lastname> (<token> <parameter>)*\n" + "Token parameters:\n" + "userlevel <level>\n" + "email <email>\n" + "usertitle <usertitle>\n"); } else if (limitedToScene != UUID.Zero) { io.Write("change user not allowed on limited console"); } else if (m_UserAccountService.TryGetValue(args[2], args[3], out account)) { for (int argi = 4; argi < args.Count; argi += 2) { switch (args[argi]) { case "userlevel": account.UserLevel = int.Parse(args[argi + 1]); if (account.UserLevel < -1 || account.UserLevel > 255) { io.WriteFormatted("User level parameter {0} is not valid", account.UserLevel); return; } m_UserAccountService.SetUserLevel(account.Principal.ID, account.UserLevel); break; case "email": account.Email = args[argi + 1]; m_UserAccountService.SetEmail(account.Principal.ID, account.Email); break; case "usertitle": account.UserTitle = args[argi + 1]; m_UserAccountService.SetUserTitle(account.Principal.ID, account.UserTitle); break; default: io.WriteFormatted("Unsupported token parameter {0}", args[argi]); return; } } } else { io.WriteFormatted("User \"{0}\" \"{1}\" not found", args[2], args[3]); } }
private void HandleUserAccountChange(HttpRequest req, Map jsondata) { UserAccount account; UUID userid; if (!jsondata.TryGetValue("id", out userid)) { m_WebIF.ErrorResponse(req, AdminWebIfErrorResult.InvalidRequest); return; } if (!m_UserAccountService.TryGetValue(userid, out account)) { m_WebIF.ErrorResponse(req, AdminWebIfErrorResult.NotFound); return; } int ival; string sval; uint uval; if (jsondata.TryGetValue("userlevel", out ival)) { account.UserLevel = ival; if (account.UserLevel > 255) { m_WebIF.ErrorResponse(req, AdminWebIfErrorResult.InvalidParameter); return; } } try { if (jsondata.TryGetValue("usertitle", out sval)) { m_UserAccountService.SetUserTitle(account.Principal.ID, sval); } if (jsondata.TryGetValue("userflags", out uval)) { m_UserAccountService.SetUserFlags(account.Principal.ID, (UserFlags)uval); } if (jsondata.TryGetValue("email", out sval)) { m_UserAccountService.SetEmail(account.Principal.ID, sval); } } catch { m_WebIF.ErrorResponse(req, AdminWebIfErrorResult.AlreadyExists); return; } m_WebIF.SuccessResponse(req, new Map()); }