Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // FirebaseRegister.swift
- // Olygon
- //
- // Created by Thibau on 18/03/19.
- // Copyright © 2019 Olygon. All rights reserved.
- //
- import Foundation
- import UIKit
- import FirebaseAuth
- import FirebaseDatabase
- internal class FirebaseRegister: UIViewController {
- //Section for functions
- func ErrorMessage(titleMessage:String,userMessage:String) -> Void {
- DispatchQueue.main.async {
- let Meldingcontroller = UIAlertController(title: titleMessage , message:userMessage , preferredStyle: .alert)
- let isok = UIAlertAction(title: "ok", style: .default)
- {
- (action:UIAlertAction!) in
- DispatchQueue.main.async {
- }
- }
- Meldingcontroller.addAction(isok)
- self.present(Meldingcontroller, animated: true,completion: nil)
- }
- }
- func ConfirmMessage(titleMessage:String,userMessage:String) -> Void {
- DispatchQueue.main.async {
- let Meldingcontroller = UIAlertController(title: titleMessage , message:userMessage , preferredStyle: .alert)
- let isok = UIAlertAction(title: "Continue", style: .default)
- {
- (action:UIAlertAction!) in
- DispatchQueue.main.async {
- self.performSegue(withIdentifier: "ConfirmSegue", sender: self)
- }
- }
- Meldingcontroller.addAction(isok)
- self.present(Meldingcontroller, animated: true,completion: nil)
- }
- }
- func isValidEmail(email:String?) -> Bool {
- guard email != nil else { return false }
- let regEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}"
- let pred = NSPredicate(format:"SELF MATCHES %@", regEx)
- return pred.evaluate(with: email)
- }
- func isValidPassword(testStr:String?) -> Bool {
- guard testStr != nil else { return false }
- let regExPass = "(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8,}"
- let passwordTest = NSPredicate(format: "SELF MATCHES %@", regExPass)
- return passwordTest.evaluate(with: testStr)
- }
- //Section for onscreen links
- @IBOutlet weak var txtName: UITextField!
- @IBOutlet weak var txtSurname: UITextField!
- @IBOutlet weak var txtUsername: UITextField!
- @IBOutlet weak var txtEmail: UITextField!
- @IBOutlet weak var txtPassword: UITextField!
- @IBOutlet weak var txtPasswordConfirm: UITextField!
- @IBOutlet weak var imgVinkje: UIImageView!
- var ref: DatabaseReference!
- var tVinkje = 1
- var username = ""
- //section for code
- @IBAction func btnRegister(_ sender: Any) {
- username = ""
- ref = Database.database().reference()
- if txtName.text == "" || txtSurname.text == "" || txtUsername.text == "" || txtPasswordConfirm.text == "" || txtEmail.text == "" || txtPassword.text == "" {
- print("You have to fill in all credentials (Iets vergeten invullen) except Email and password(1)")
- ErrorMessage(titleMessage: "ERROR", userMessage: "You have to fill in all credentials")
- }else{
- if isValidPassword(testStr: txtPassword.text) == false /*Password controle met regEx*/{
- 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")
- ErrorMessage(titleMessage: "ERROR", userMessage: "Password does not meet complexity requirements")
- }else{
- if isValidEmail(email: txtEmail.text) == false{
- print("Please fill in a correct email. Make sure to include '@'")
- ErrorMessage(titleMessage: "ERROR", userMessage: "Please fill in a correct email. Make sure to include '@'")
- }else{
- if txtPassword.text != txtPasswordConfirm.text{
- print("Passwords do not match! (Pass (1) & Pass (2))")
- ErrorMessage(titleMessage: "ERROR", userMessage: "Passwords do not match")
- }else{
- if imgVinkje.isHidden != false{
- print("GDPR has not been confirmed")
- ErrorMessage(titleMessage: "ERROR", userMessage: "Please confirm our privacy rules")
- }else{
- Auth.auth().createUser(withEmail: txtEmail.text!, password: txtPassword.text!) { (user, error) in
- if error == nil {
- self.username = self.txtUsername.text!
- // self.ref?.child("Users").setValue(["Email":self.txtEmail.text,"Name":self.txtName.text, "Surname":self.txtSurname.text])
- self.ref?.child("users").child(self.username).setValue(["Email":self.txtEmail.text,"Name":self.txtName.text, "Surname":self.txtSurname.text])
- print("You have registered")
- self.ConfirmMessage(titleMessage: "Registration Succesfull", userMessage: "Press 'Ok' to continue")
- }else{
- print(error)//vang overblijvende errors op in console
- self.ErrorMessage(titleMessage: "ERROR", userMessage: "Unexpected error")
- }
- }
- }
- }
- }
- }
- }
- }
- @IBAction func btnGdpr(_ sender: Any) {
- tVinkje = tVinkje + 1
- if tVinkje % 2 == 0{
- imgVinkje.isHidden = false
- }else{
- imgVinkje.isHidden = true
- }
- }
- override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
- var usernamesend = segue.destination as! Mainpage
- usernamesend.Username = txtUsername.text ?? ""
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement