public static TimerItem FromWebTimerData(WebTimerData data, WebAuthUserData user) { return(new TimerItem { timerLocation = data.Location, timerType = data.Type, timerStage = data.Stage, timerOwner = data.Owner, timerET = ((int)(data.Date.Subtract(new DateTime(1970, 1, 1))).TotalSeconds).ToString(), timerNotes = data.Notes, timerChar = user.Name }); }
/// <summary> /// Iterate between connected handlers to process request /// </summary> public static async Task <WebQueryResult> ProcessWebCallbacks(string query, CallbackTypeEnum type, string ip, WebAuthUserData data) { foreach (var method in WebModuleConnectors.Values) { try { var result = await method(query, type, ip, data); if (result.Result != WebQueryResultEnum.False) { return(result); } } catch (Exception ex) { await LogHelper.LogEx($"Module method {method.Method.Name} throws ex!", ex); } } return(WebQueryResult.False); }
public async Task <WebQueryResult> ProcessRequest(string query, CallbackTypeEnum type, string ip, WebAuthUserData data) { if (!Settings.Config.ModuleContractNotifications) { return(WebQueryResult.False); } try { RunningRequestCount++; if (!query.Contains("&state=12")) { return(WebQueryResult.False); } var prms = query.TrimStart('?').Split('&'); var code = prms[0].Split('=')[1]; var result = await WebAuthModule.GetCharacterIdFromCode(code, Settings.WebServerModule.CcpAppClientId, Settings.WebServerModule.CcpAppSecret); if (result == null) { return(WebQueryResult.EsiFailure); } var characterId = result[0]; var numericCharId = Convert.ToInt64(characterId); if (string.IsNullOrEmpty(characterId)) { await LogHelper.LogWarning("Bad or outdated feed request!"); var r = WebQueryResult.BadRequestToSystemAuth; r.Message1 = LM.Get("accessDenied"); return(r); } if (!HasAuthAccess(numericCharId)) { await LogHelper.LogWarning($"Unauthorized feed request from {characterId}"); var r = WebQueryResult.BadRequestToSystemAuth; r.Message1 = LM.Get("accessDenied"); return(r); } if (WebGetAuthGroup(numericCharId, out _) == null) { await LogHelper.LogWarning("Feed auth group not found!"); var r = WebQueryResult.BadRequestToSystemAuth; r.Message1 = LM.Get("accessDenied"); return(r); } //var rChar = await APIHelper.ESIAPI.GetCharacterData(Reason, characterId, true); await SQLHelper.InsertOrUpdateTokens("", characterId, "", result[1]); await LogHelper.LogInfo($"Mail feed added for character: {characterId}", LogCat.AuthWeb); var res = WebQueryResult.ContractsAuthSuccess; res.Message1 = LM.Get("mailAuthSuccessHeader"); res.Message2 = LM.Get("mailAuthSuccessBody"); res.AddValue("url", ServerPaths.GetFeedSuccessUrl()); return(res); } catch (Exception ex) { await LogHelper.LogEx(ex.Message, ex, Category); } finally { RunningRequestCount--; } return(WebQueryResult.False); }
private async Task <WebQueryResult> ProcessAuth(string query, CallbackTypeEnum callbackType, string inputIp, WebAuthUserData webUserData) { if (!Settings.Config.ModuleTimers || webUserData.Id == 0 || string.IsNullOrEmpty(webUserData.Name)) { return(WebQueryResult.False); } return(WebQueryResult.False); try { RunningRequestCount++; var port = Settings.WebServerModule.WebExternalPort; /* if (request.Url.LocalPath == "/timers" || request.Url.LocalPath == $"{extPort}/timers" || * request.Url.LocalPath == $"{port}/timers") * { * if (string.IsNullOrWhiteSpace(request.Url.Query)) * { * //redirect to auth * await response.RedirectAsync(new Uri(WebServerModule.GetTimersAuthURL())); * return true; * } * * var prms = request.Url.Query.TrimStart('?').Split('&'); * if (prms.Length != 3) * { * await response.RedirectAsync(new Uri(WebServerModule.GetWebSiteUrl())); * return true; * } * * var data = prms[0].Split('=')[1]; * var inputId = prms[1].Split('=')[1]; * var state = prms[2].Split('=')[1]; * if (state != "11") * { * await response.RedirectAsync(new Uri(WebServerModule.GetWebSiteUrl())); * return true; * } * * var characterId = * Convert.ToInt64( * Encoding.UTF8.GetString(Convert.FromBase64String(HttpUtility.UrlDecode(inputId)))); * * var rChar = await APIHelper.ESIAPI.GetCharacterData(Reason, characterId, true); * if (rChar == null) * { * await response.RedirectAsync(new Uri(WebServerModule.GetWebSiteUrl())); * return true; * } * * //have charId - had to check it * //check in db * var timeout = Settings.TimersModule.AuthTimeoutInMinutes; * if (timeout != 0) * { * var result = await SQLHelper.GetTimersAuthTime(characterId); * if (result == null || (DateTime.Now - DateTime.Parse(result)).TotalMinutes > timeout) * { * //redirect to auth * await response.RedirectAsync(new Uri(WebServerModule.GetTimersAuthURL())); * return true; * } * } * * var checkResult = await CheckAccess(characterId, rChar); * if (!checkResult[0]) * { * await WebServerModule.WriteResponce( * WebServerModule.GetAccessDeniedPage("Timers Module", LM.Get("accessDenied"), * WebServerModule.GetWebSiteUrl()), response); * return true; * } * * if (checkResult[1] && data.StartsWith("delete")) * { * data = data.Substring(6, data.Length - 6); * await SQLHelper.DeleteTimer(Convert.ToInt64(data)); * var x = HttpUtility.ParseQueryString(request.Url.Query); * x.Set("data", "0"); * await response.RedirectAsync(new Uri($"{request.Url.ToString().Split('?')[0]}?{x}")); * return true; * } * * await WriteCorrectResponce(response, checkResult[1], characterId); * return true; * } * * var prms = request.Url.Query.TrimStart('?').Split('&'); * if (prms.Length != 3) * { * //await response.RedirectAsync(new Uri(WebServerModule.GetWebSiteUrl())); * return false; * } * * var inputId = prms[1].Split('=')[1]; * var state = prms[2].Split('=')[1]; * if (state != "11") * { * // await response.RedirectAsync(new Uri(WebServerModule.GetWebSiteUrl())); * return false; * } * * var characterId = * Convert.ToInt64( * Encoding.UTF8.GetString(Convert.FromBase64String(HttpUtility.UrlDecode(inputId)))); * * var rChar = await APIHelper.ESIAPI.GetCharacterData(Reason, characterId, true); * if (rChar == null) * { * // await response.RedirectAsync(new Uri(WebServerModule.GetWebSiteUrl())); * return false; * } * * var checkResult = await CheckAccess(characterId, rChar); * if (!checkResult[0]) * return true; * * var data = await request.ReadContentAsStringAsync(); * * if (checkResult[1] && data != null) * { * if (data.StartsWith("delete")) * { * data = data.Substring(6, data.Length - 6); * await SQLHelper.DeleteTimer(Convert.ToInt64(data)); * } * else * { * TimerItem entry = null; * try * { * entry = JsonConvert.DeserializeObject<TimerItem>(data); * } * catch * { * //ignore * } * * if (entry == null) * { * await response.WriteContentAsync(LM.Get("invalidInputData")); * return true; * } * * var iDate = entry.GetDateTime(); * if (iDate == null) * { * await response.WriteContentAsync(LM.Get("invalidTimeFormat")); * return true; * } * * if (iDate < DateTime.Now) * { * await response.WriteContentAsync(LM.Get("passedTimeValue")); * return true; * } * * //save * entry.timerChar = rChar.name; * await SQLHelper.UpdateTimer(entry); * } * * return true; * }*/ } catch (Exception ex) { await LogHelper.LogEx(ex.Message, ex, Category); } finally { RunningRequestCount--; } }
public async Task <WebQueryResult> ProcessRequest(string query, CallbackTypeEnum type, string ip, WebAuthUserData data) { if (!Settings.Config.ModuleNotificationFeed) { return(WebQueryResult.False); } try { RunningRequestCount++; if (query.Contains("&state=9")) { //var prms = QueryHelpers.ParseQuery(query); var prms = query.TrimStart('?').Split('&'); var code = prms[0].Split('=')[1]; var result = await WebAuthModule.GetCharacterIdFromCode(code, Settings.WebServerModule.CcpAppClientId, Settings.WebServerModule.CcpAppSecret); if (result == null) { return(WebQueryResult.EsiFailure); } var characterId = result[0]; var numericCharId = Convert.ToInt64(characterId); if (string.IsNullOrEmpty(characterId)) { await LogHelper.LogWarning("Bad or outdated notify feed request!"); var r = WebQueryResult.BadRequestToSystemAuth; r.Message1 = LM.Get("authTokenBodyFail"); r.Message2 = LM.Get("authTokenBadRequest"); return(r); } if (!TickManager.GetModule <NotificationModule>().IsValidCharacter(numericCharId)) { await LogHelper.LogWarning($"Unauthorized notify feed request from {characterId}"); var r = WebQueryResult.BadRequestToSystemAuth; r.Message1 = LM.Get("authTokenBodyFail"); return(r); } var rChar = await APIHelper.ESIAPI.GetCharacterData(Reason, characterId, true); await SQLHelper.InsertOrUpdateTokens(result[1] ?? "", characterId, null, ""); await LogHelper.LogInfo($"Notification feed added for character: {characterId}", LogCat.AuthWeb); var res = WebQueryResult.GeneralAuthSuccess; res.Message1 = LM.Get("authTokenRcv"); res.Message2 = LM.Get("authTokenRcv2", rChar.name); return(res); } } catch (Exception ex) { await LogHelper.LogEx(ex.Message, ex, Category); } finally { RunningRequestCount--; } return(WebQueryResult.False); }
public static async Task <WebQueryResult> ProcessCallback(string queryStringValue, CallbackTypeEnum type, string ip, WebAuthUserData data) { return(await WebServerModule.ProcessWebCallbacks(queryStringValue, type, ip, data)); }