Add login

parent 611fe657
...@@ -88,6 +88,9 @@ class FirebaseAuthMethods { ...@@ -88,6 +88,9 @@ class FirebaseAuthMethods {
// restrict access to certain things using provider // restrict access to certain things using provider
// transition to another page instead of home screen // transition to another page instead of home screen
} }
else if(user.emailVerified){
Navigator.pushNamed(context, '/dashboard');
}
} on FirebaseAuthException catch (e) { } on FirebaseAuthException catch (e) {
showSnackBar(context, e.message!); // Displaying the error message showSnackBar(context, e.message!); // Displaying the error message
} }
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:provider/provider.dart';
import 'firebase/firebase_auth_methods.dart';
void setPageTitle(String title, BuildContext context) { void setPageTitle(String title, BuildContext context) {
SystemChrome.setApplicationSwitcherDescription(ApplicationSwitcherDescription( SystemChrome.setApplicationSwitcherDescription(ApplicationSwitcherDescription(
...@@ -19,8 +22,18 @@ class _SignInState extends State<SignIn> { ...@@ -19,8 +22,18 @@ class _SignInState extends State<SignIn> {
bool _isObscure = true; bool _isObscure = true;
final formKey = GlobalKey<FormState>(); final formKey = GlobalKey<FormState>();
final TextEditingController _usernamecontroller = TextEditingController(); // final TextEditingController _usernamecontroller = TextEditingController();
final TextEditingController _passwordcontroller = TextEditingController(); // final TextEditingController _passwordcontroller = TextEditingController();
final TextEditingController emailController = TextEditingController();
final TextEditingController passwordController = TextEditingController();
void loginUser() {
context.read<FirebaseAuthMethods>().loginWithEmail(
email: emailController.text,
password: passwordController.text,
context: context,
);
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
...@@ -121,7 +134,7 @@ class _SignInState extends State<SignIn> { ...@@ -121,7 +134,7 @@ class _SignInState extends State<SignIn> {
height: 40, height: 40,
width: screenSize.width * 0.2, width: screenSize.width * 0.2,
child: TextFormField( child: TextFormField(
controller: _usernamecontroller, controller: emailController,
textAlign: TextAlign.start, textAlign: TextAlign.start,
decoration: InputDecoration( decoration: InputDecoration(
labelText: "Enter Your Email", labelText: "Enter Your Email",
...@@ -132,7 +145,7 @@ class _SignInState extends State<SignIn> { ...@@ -132,7 +145,7 @@ class _SignInState extends State<SignIn> {
), ),
validator: (value) { validator: (value) {
if (value == null || value.trim().isEmpty) { if (value == null || value.trim().isEmpty) {
_usernamecontroller.clear(); emailController.clear();
return "please enter your email address"; return "please enter your email address";
} else if (!RegExp(r'\S+@\S+\.\S+') } else if (!RegExp(r'\S+@\S+\.\S+')
.hasMatch(value)) { .hasMatch(value)) {
...@@ -166,7 +179,7 @@ class _SignInState extends State<SignIn> { ...@@ -166,7 +179,7 @@ class _SignInState extends State<SignIn> {
height: 40, height: 40,
width: screenSize.width * 0.2, width: screenSize.width * 0.2,
child: TextFormField( child: TextFormField(
controller: _passwordcontroller, controller: passwordController,
textAlign: TextAlign.start, textAlign: TextAlign.start,
obscureText: _isObscure, obscureText: _isObscure,
decoration: InputDecoration( decoration: InputDecoration(
...@@ -189,7 +202,7 @@ class _SignInState extends State<SignIn> { ...@@ -189,7 +202,7 @@ class _SignInState extends State<SignIn> {
), ),
validator: (value) { validator: (value) {
if (value == null || value.trim().isEmpty) { if (value == null || value.trim().isEmpty) {
_passwordcontroller.clear(); passwordController.clear();
return 'This field is required'; return 'This field is required';
} else if (value.trim().length < 8) { } else if (value.trim().length < 8) {
return 'Password must be at least 8 characters in length'; return 'Password must be at least 8 characters in length';
...@@ -221,63 +234,49 @@ class _SignInState extends State<SignIn> { ...@@ -221,63 +234,49 @@ class _SignInState extends State<SignIn> {
width: screenSize.width * 0.08, width: screenSize.width * 0.08,
child: ElevatedButton( child: ElevatedButton(
onPressed: () { onPressed: () {
if (_usernamecontroller.value.text == 'admin@admin.com' && loginUser();
_passwordcontroller.value.text != 'administrator') { // if (emailController.value.text == emailController &&
showDialog<String>( // passwordController.value.text != passwordController) {
context: context, // showDialog<String>(
builder: (BuildContext context) => // context: context,
AlertDialog( // builder: (BuildContext context) =>
title: const Text('Gagal login'), // AlertDialog(
content: const Text( // title: const Text('Gagal login'),
'Password anda salah!!!'), // content: const Text(
actions: <Widget>[ // 'Password anda salah!!!'),
TextButton( // actions: <Widget>[
onPressed: () => // TextButton(
Navigator.pop(context, 'OK'), // onPressed: () =>
child: const Text('OK'), // Navigator.pop(context, 'OK'),
), // child: const Text('OK'),
], // ),
), // ],
); // ),
} else if (_usernamecontroller.value.text == 'client@client.com' && // );
_passwordcontroller.value.text != 'clientpage') { // } else if (emailController.value.text == emailController &&
showDialog<String>( // passwordController.value.text == passwordController) {
context: context, // loginUser();
builder: (BuildContext context) => // Navigator.pushNamed(context, '/dashboard');
AlertDialog( // } else {
title: const Text('Gagal login'), // loginUser();
content: const Text( // Navigator.pushNamed(context, '/dashboard');
'Password anda salah!!!'), // // showDialog<String>(
actions: <Widget>[ // // context: context,
TextButton( // // builder: (BuildContext context) =>
onPressed: () => // // AlertDialog(
Navigator.pop(context, 'OK'), // // title: const Text('Gagal login'),
child: const Text('OK'), // // content: const Text(
), // // 'Akun Belum terdaftar, Silahkan Registrasi'),
], // // actions: <Widget>[
), // // TextButton(
); // // onPressed: () =>
} else if (_usernamecontroller.value.text == 'admin@admin.com' && // // Navigator.pop(context, 'OK'),
_passwordcontroller.value.text == 'administrator') { // // child: const Text('OK'),
Navigator.pushNamed(context, '/dashboard'); // // ),
} else { // // ],
showDialog<String>( // // ),
context: context, // // );
builder: (BuildContext context) => // }
AlertDialog(
title: const Text('Gagal login'),
content: const Text(
'Akun Belum terdaftar, Silahkan Registrasi'),
actions: <Widget>[
TextButton(
onPressed: () =>
Navigator.pop(context, 'OK'),
child: const Text('OK'),
),
],
),
);
}
}, },
child: const Text("LOGIN"), child: const Text("LOGIN"),
), ),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment