Prohibited WebView in LoginViewController from visiting a domain other than the school's login page, updated link for fetching substitutions

This commit is contained in:
Deniz Duezgoeren
2019-09-22 12:20:04 +02:00
parent a515184140
commit d133a056ac
2 changed files with 16 additions and 3 deletions
+1 -1
View File
@@ -37,7 +37,7 @@ class DataFetcher {
func doAsync(do task: String, completionHandler: @escaping (_ substitutions: [Any]) -> ()) {
DispatchQueue(label: "work-queue").async {
let foodUrl = "https://djd4rkn355.github.io/food.html"
let url = "https://djd4rkn355.github.io/subst.html"
let url = "https://djd4rkn355.github.io/avh_substitutions.html"
Alamofire.request(url).responseString { response in
if let html = response.result.value {
Alamofire.request(foodUrl).responseString { response in
+15 -2
View File
@@ -13,15 +13,24 @@ class LoginViewController: UIViewController, WKNavigationDelegate {
@IBOutlet weak var webView: WKWebView!
let prefs = UserDefaults.standard
let request = URLRequest(url: URL(string: "https://307.joomla.schule.bremen.de/index.php/component/users/#top")!)
override func viewDidLoad() {
super.viewDidLoad()
let request = URLRequest(url: URL(string: "https://307.joomla.schule.bremen.de/index.php/component/users/#top")!)
self.webView.load(request)
self.reloadLoginPage(in: webView)
self.webView.navigationDelegate = self
}
func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
let page = webView.url?.absoluteString
if (page != "https://307.joomla.schule.bremen.de/index.php/component/users/profile?Itemid=171"
&& page != "https://307.joomla.schule.bremen.de/index.php/component/users/#top"
&& page != "https://307.joomla.schule.bremen.de/index.php/component/users/?task=user.login&Itemid=171") {
self.reloadLoginPage(in: webView)
}
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
self.webView.configuration.websiteDataStore.httpCookieStore.getAllCookies { cookies in
for cookie in cookies {
@@ -32,6 +41,10 @@ class LoginViewController: UIViewController, WKNavigationDelegate {
}
}
private func reloadLoginPage(in webView: WKWebView) {
self.webView.load(request)
}
private func success() {
self.prefs.set(true, forKey: "logged_in")
if let s = storyboard?.instantiateViewController(withIdentifier: "FirstTime") as? UINavigationController {