Merge Loginpage to master #9
|
@ -392,7 +392,7 @@
|
|||
"languageVersion": "2.16"
|
||||
}
|
||||
],
|
||||
"generated": "2022-05-06T11:52:10.005704Z",
|
||||
"generated": "2022-05-10T10:03:49.292538Z",
|
||||
"generator": "pub",
|
||||
"generatorVersion": "2.16.2"
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
# For more info see: https://dart.dev/go/dot-packages-deprecation
|
||||
#
|
||||
# Generated by pub on 2022-05-06 13:52:09.986249.
|
||||
# Generated by pub on 2022-05-10 12:03:49.275584.
|
||||
archive:file:///C:/Users/morte/OneDrive/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/archive-3.3.0/lib/
|
||||
args:file:///C:/Users/morte/OneDrive/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/args-2.3.0/lib/
|
||||
async:file:///C:/Users/morte/OneDrive/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/async-2.8.2/lib/
|
||||
|
|
|
@ -4741,6 +4741,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
clock
|
||||
fake_async
|
||||
material_color_utilities
|
||||
quiver
|
||||
|
||||
|
||||
Apache License
|
||||
|
@ -6730,6 +6731,11 @@ flutter_lints
|
|||
flutter_plugin_android_lifecycle
|
||||
google_maps_flutter
|
||||
google_maps_flutter_platform_interface
|
||||
google_sign_in
|
||||
google_sign_in_android
|
||||
google_sign_in_ios
|
||||
google_sign_in_platform_interface
|
||||
google_sign_in_web
|
||||
path_provider
|
||||
path_provider_android
|
||||
path_provider_ios
|
||||
|
@ -6815,6 +6821,55 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
--------------------------------------------------------------------------------
|
||||
flutter_signin_button
|
||||
|
||||
Copyright (C) 2018, Zayn Jarvis
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
--------------------------------------------------------------------------------
|
||||
font_awesome_flutter
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017 Brian Egan
|
||||
Font Awesome Icons by @fontawesome - https://fontawesome.com
|
||||
License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
freetype2
|
||||
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'BottomNavPage.dart';
|
||||
import 'signInPage.dart';
|
||||
import 'user.dart';
|
||||
import 'globals.dart' as globals;
|
||||
|
||||
class HomePage extends StatefulWidget {
|
||||
const HomePage({Key? key}) : super(key: key);
|
||||
|
@ -15,6 +17,7 @@ class _HomePageState extends State<HomePage> {
|
|||
Color textColor = const Color.fromARGB(255, 79, 98, 114);
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
print(globals.LOGGED_IN_USER.userID);
|
||||
return Scaffold(
|
||||
backgroundColor: pinkBackgroundColor,
|
||||
body: SafeArea(
|
||||
|
@ -54,7 +57,7 @@ class _HomePageState extends State<HomePage> {
|
|||
),
|
||||
),
|
||||
Container(
|
||||
padding: EdgeInsets.fromLTRB(80, 100, 80, 80),
|
||||
padding: EdgeInsets.fromLTRB(80, 40, 80, 80),
|
||||
child: ElevatedButton(
|
||||
style: ElevatedButton.styleFrom(
|
||||
fixedSize: const Size(200, 200),
|
||||
|
@ -85,6 +88,18 @@ class _HomePageState extends State<HomePage> {
|
|||
),
|
||||
),
|
||||
),
|
||||
globals.LOGGED_IN_USER.userID == 0 ?
|
||||
buildLoginAndCreateUserButton() : buildLogOutButton()
|
||||
]),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Container buildLoginAndCreateUserButton() {
|
||||
return Container(
|
||||
child: Column(
|
||||
children: <Widget> [
|
||||
ElevatedButton(
|
||||
style: ElevatedButton.styleFrom(
|
||||
fixedSize: const Size(200, 50),
|
||||
|
@ -110,8 +125,62 @@ class _HomePageState extends State<HomePage> {
|
|||
])
|
||||
),
|
||||
),
|
||||
]),
|
||||
Padding(padding: EdgeInsets.symmetric(horizontal: 10, vertical: 5)),
|
||||
ElevatedButton(
|
||||
style: ElevatedButton.styleFrom(
|
||||
fixedSize: const Size(200, 50),
|
||||
primary: buttonColor,
|
||||
elevation: 100,
|
||||
),
|
||||
onPressed: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder: (context) => SignInPage()), //Replace Container() with call to Map-page.
|
||||
);
|
||||
},
|
||||
child: const Text('Create account',
|
||||
style: TextStyle(
|
||||
fontSize: 18,
|
||||
color: Colors.white,
|
||||
shadows: <Shadow> [
|
||||
Shadow(
|
||||
offset: Offset(2, 2),
|
||||
blurRadius: 10.0,
|
||||
color: Color.fromARGB(255, 0, 0, 0),
|
||||
),
|
||||
])
|
||||
),
|
||||
)
|
||||
]
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
ElevatedButton buildLogOutButton() {
|
||||
return ElevatedButton(
|
||||
style: ElevatedButton.styleFrom(
|
||||
fixedSize: const Size(200, 50),
|
||||
primary: buttonColor,
|
||||
elevation: 100,
|
||||
),
|
||||
onPressed: () {
|
||||
globals.LOGGED_IN_USER = user(0, "", "");
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder: (context) => HomePage()), //Replace Container() with call to Map-page.
|
||||
);
|
||||
},
|
||||
child: const Text('Log out',
|
||||
style: TextStyle(
|
||||
fontSize: 18,
|
||||
color: Colors.white,
|
||||
shadows: <Shadow> [
|
||||
Shadow(
|
||||
offset: Offset(2, 2),
|
||||
blurRadius: 10.0,
|
||||
color: Color.fromARGB(255, 0, 0, 0),
|
||||
),
|
||||
])
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
5
lib/globals.dart
Normal file
5
lib/globals.dart
Normal file
|
@ -0,0 +1,5 @@
|
|||
import 'user.dart';
|
||||
import 'HomePage.dart';
|
||||
import 'main.dart';
|
||||
|
||||
user LOGGED_IN_USER = user(0, "", "");
|
|
@ -2,8 +2,11 @@ import 'dart:async';
|
|||
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
|
||||
import 'Map.dart';
|
||||
import 'HomePage.dart';
|
||||
import 'user.dart';
|
||||
import 'globals.dart';
|
||||
|
||||
void main() => runApp(MyApp());
|
||||
|
||||
|
@ -15,7 +18,7 @@ class MyApp extends StatelessWidget {
|
|||
primarySwatch: Colors.blue,
|
||||
),
|
||||
title: 'Flutter Google Maps Demo',
|
||||
home: HomePage(),
|
||||
home: const HomePage(),
|
||||
debugShowCheckedModeBanner: false,
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'mysql.dart';
|
||||
|
||||
import 'HomePage.dart';
|
||||
import 'main.dart';
|
||||
import 'user.dart';
|
||||
import 'package:flutter_applicationdemo/globals.dart';
|
||||
|
||||
class SignInPage extends StatefulWidget{
|
||||
@override
|
||||
|
@ -14,22 +14,20 @@ class SignInPage extends StatefulWidget{
|
|||
|
||||
class _SignInPageState extends State<SignInPage> {
|
||||
var db = mysql();
|
||||
int loggedId = 0;
|
||||
int loggedInID = 0;
|
||||
late user loggedInUser;
|
||||
TextEditingController emailController = TextEditingController();
|
||||
TextEditingController passwordController = TextEditingController();
|
||||
|
||||
Future<void> loginVerification(String email, String password) async{
|
||||
bool isValid = false;
|
||||
await db.getConnection().then((conn) async {
|
||||
String sql = "select id from maen0574.user where email = '$email' and password = '$password'";
|
||||
String sql = "select id, email, password from maen0574.user where email = '$email' and password = '$password'";
|
||||
await conn.query(sql).then((results){
|
||||
for(var row in results){
|
||||
setState(() {
|
||||
});
|
||||
loggedId = row[0];
|
||||
isValid = true;
|
||||
|
||||
//break;
|
||||
loggedInUser = new user(row[0], row[1], row[2]);
|
||||
loggedInID = loggedInUser.getID();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
@ -37,6 +35,7 @@ class _SignInPageState extends State<SignInPage> {
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
Size size = MediaQuery.of(context).size;
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text("Login"),
|
||||
|
@ -81,12 +80,14 @@ class _SignInPageState extends State<SignInPage> {
|
|||
),
|
||||
onPressed: () async {
|
||||
await loginVerification(emailController.text, passwordController.text);
|
||||
if(loggedId != 0){
|
||||
if(loggedInID != 0){
|
||||
LOGGED_IN_USER = loggedInUser;
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(builder: (context) => HomePage()), //Replace Container() with call to account-page.
|
||||
);
|
||||
}
|
||||
//print(loggedInUser.email + " " + loggedInUser.userID.toString());
|
||||
},
|
||||
child: Text('Sign In'),
|
||||
),
|
||||
|
|
18
lib/user.dart
Normal file
18
lib/user.dart
Normal file
|
@ -0,0 +1,18 @@
|
|||
class user{
|
||||
late int userID;
|
||||
late String username;
|
||||
late String email;
|
||||
|
||||
user(int userID, String username, String email){
|
||||
this.userID = userID;
|
||||
this.username = username;
|
||||
this.email = email;
|
||||
}
|
||||
|
||||
user emptyUser(){
|
||||
return user(0, "", "");
|
||||
}
|
||||
int getID(){
|
||||
return userID;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user