Advertisement
Guest User

Register

a guest
Apr 22nd, 2019
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 6.31 KB | None | 0 0
  1. //
  2. //  FirebaseRegister.swift
  3. //  Olygon
  4. //
  5. //  Created by Thibau on 18/03/19.
  6. //  Copyright © 2019 Olygon. All rights reserved.
  7. //
  8.  
  9. import Foundation
  10. import UIKit
  11. import FirebaseAuth
  12. import FirebaseDatabase
  13.  
  14. internal class FirebaseRegister: UIViewController {
  15.     //Section for functions
  16.     func ErrorMessage(titleMessage:String,userMessage:String) -> Void {
  17.         DispatchQueue.main.async {
  18.             let Meldingcontroller = UIAlertController(title: titleMessage , message:userMessage , preferredStyle: .alert)
  19.             let isok = UIAlertAction(title: "ok", style: .default)
  20.             {
  21.                 (action:UIAlertAction!) in
  22.                 DispatchQueue.main.async {
  23.                 }
  24.             }
  25.             Meldingcontroller.addAction(isok)
  26.             self.present(Meldingcontroller, animated: true,completion: nil)
  27.         }
  28.     }
  29.    
  30.     func ConfirmMessage(titleMessage:String,userMessage:String) -> Void {
  31.         DispatchQueue.main.async {
  32.             let Meldingcontroller = UIAlertController(title: titleMessage , message:userMessage , preferredStyle: .alert)
  33.             let isok = UIAlertAction(title: "Continue", style: .default)
  34.             {
  35.                 (action:UIAlertAction!) in
  36.                 DispatchQueue.main.async {
  37.                     self.performSegue(withIdentifier: "ConfirmSegue", sender: self)
  38.                 }
  39.             }
  40.             Meldingcontroller.addAction(isok)
  41.             self.present(Meldingcontroller, animated: true,completion: nil)
  42.         }
  43.     }
  44.    
  45.     func isValidEmail(email:String?) -> Bool {
  46.        
  47.         guard email != nil else { return false }
  48.        
  49.         let regEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}"
  50.        
  51.         let pred = NSPredicate(format:"SELF MATCHES %@", regEx)
  52.         return pred.evaluate(with: email)
  53.     }
  54.    
  55.     func isValidPassword(testStr:String?) -> Bool {
  56.         guard testStr != nil else { return false }
  57.         let regExPass = "(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8,}"
  58.        
  59.         let passwordTest = NSPredicate(format: "SELF MATCHES %@", regExPass)
  60.         return passwordTest.evaluate(with: testStr)
  61.     }
  62.     //Section for onscreen links
  63.     @IBOutlet weak var txtName: UITextField!
  64.     @IBOutlet weak var txtSurname: UITextField!
  65.     @IBOutlet weak var txtUsername: UITextField!
  66.     @IBOutlet weak var txtEmail: UITextField!
  67.     @IBOutlet weak var txtPassword: UITextField!
  68.     @IBOutlet weak var txtPasswordConfirm: UITextField!
  69.     @IBOutlet weak var imgVinkje: UIImageView!
  70.    
  71.     var ref: DatabaseReference!
  72.     var tVinkje = 1
  73.     var username = ""
  74.    
  75.    
  76.     //section for code
  77.     @IBAction func btnRegister(_ sender: Any) {
  78.         username = ""
  79.        ref = Database.database().reference()
  80.                 if txtName.text == "" || txtSurname.text == "" || txtUsername.text == "" || txtPasswordConfirm.text  == "" || txtEmail.text == "" || txtPassword.text == "" {
  81.                     print("You have to fill in all credentials (Iets vergeten invullen) except Email and password(1)")
  82.                     ErrorMessage(titleMessage: "ERROR", userMessage: "You have to fill in all credentials")
  83.                 }else{
  84.                     if isValidPassword(testStr: txtPassword.text) == false  /*Password controle met regEx*/{
  85.                         print("Passwords do not match the following needs such as at least one uppercase, at least one digit, at least one lowercase or 8 characters total")
  86.                         ErrorMessage(titleMessage: "ERROR", userMessage: "Password does not meet complexity requirements")
  87.                     }else{
  88.                         if isValidEmail(email: txtEmail.text) == false{
  89.                             print("Please fill in a correct email. Make sure to include '@'")
  90.                             ErrorMessage(titleMessage: "ERROR", userMessage: "Please fill in a correct email. Make sure to include '@'")
  91.                         }else{
  92.                             if txtPassword.text != txtPasswordConfirm.text{
  93.                             print("Passwords do not match! (Pass (1) & Pass (2))")
  94.                             ErrorMessage(titleMessage: "ERROR", userMessage: "Passwords do not match")
  95.                             }else{
  96.                                 if imgVinkje.isHidden != false{
  97.                                     print("GDPR has not been confirmed")
  98.                                     ErrorMessage(titleMessage: "ERROR", userMessage: "Please confirm our privacy rules")
  99.                                 }else{
  100.                                     Auth.auth().createUser(withEmail: txtEmail.text!, password: txtPassword.text!) { (user, error) in
  101.                                         if error == nil {
  102.                                             self.username = self.txtUsername.text!
  103.                                          
  104.                                            // self.ref?.child("Users").setValue(["Email":self.txtEmail.text,"Name":self.txtName.text, "Surname":self.txtSurname.text])
  105.                                             self.ref?.child("users").child(self.username).setValue(["Email":self.txtEmail.text,"Name":self.txtName.text, "Surname":self.txtSurname.text])
  106.                                            
  107.                                             print("You have registered")
  108.                                             self.ConfirmMessage(titleMessage: "Registration Succesfull", userMessage: "Press 'Ok' to continue")
  109.                                         }else{
  110.                                             print(error)//vang overblijvende errors op in console
  111.                                             self.ErrorMessage(titleMessage: "ERROR", userMessage: "Unexpected error")
  112.                                            
  113.                             }
  114.                         }
  115.                     }
  116.                 }
  117.             }
  118.         }
  119.     }
  120.  
  121.     }
  122.     @IBAction func btnGdpr(_ sender: Any) {
  123.         tVinkje = tVinkje + 1
  124.        
  125.         if tVinkje % 2 == 0{
  126.             imgVinkje.isHidden = false
  127.         }else{
  128.             imgVinkje.isHidden = true
  129.         }
  130.     }
  131.     override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
  132.         var usernamesend = segue.destination as! Mainpage
  133.         usernamesend.Username = txtUsername.text ?? ""
  134.        
  135.     }
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement