Skip to content
Snippets Groups Projects
Commit 448750c7 authored by RENAULT Juliette's avatar RENAULT Juliette
Browse files

modif club accessible au président de ce club mais pas au coprez

parent e8b19a6e
No related branches found
No related tags found
No related merge requests found
......@@ -18,11 +18,13 @@ class Club extends StatefulWidget {
class _ClubState extends State<Club> {
late Future<String?> descriptionFuture;
late Future<bool> isUserClubPrezFuture;
@override
void initState() {
super.initState();
descriptionFuture = getClubDescription();
isUserClubPrezFuture = isUserClubPresident();
}
Future<String?> getClubDescription() {
......@@ -30,6 +32,11 @@ class _ClubState extends State<Club> {
return db.getClubDescription(widget.clubid);
}
Future<bool> isUserClubPresident() {
DatabaseService db = DatabaseService();
return db.isUserClubPresident(widget.clubid);
}
@override
Widget build(BuildContext context) {
DatabaseService db = DatabaseService();
......@@ -173,23 +180,38 @@ class _ClubState extends State<Club> {
),
),
FollowButton(clubid: widget.clubid), // Utilisation du widget FollowButton
if (userinBDX[widget.clubData?['BDX']] ?? false)
GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => ModClub(idClub: widget.clubid)),
FutureBuilder<bool>(
future: isUserClubPrezFuture,
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return const SizedBox.shrink();
}
if (snapshot.hasError) {
return const Text('Erreur');
}
final isUserClubPrez = snapshot.data ?? false;
if ((userinBDX[widget.clubData?['BDX']] ?? false) || isUserClubPrez) {
return GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => ModClub(idClub: widget.clubid)),
);
},
child: Chip(
label: Text(
'Modifier',
style: Theme.of(context).textTheme.titleMedium?.copyWith(color: AppColor.white),
),
side: BorderSide.none,
backgroundColor: AppColor.turquoiseBlue,
),
);
},
child: Chip(
label: Text(
'Modifier',
style: Theme.of(context).textTheme.titleMedium?.copyWith(color: AppColor.white),
),
side: BorderSide.none,
backgroundColor: AppColor.turquoiseBlue,
),
),
} else {
return const SizedBox.shrink();
}
},
),
],
),
],
......
......@@ -260,6 +260,19 @@ class UserProvider extends ChangeNotifier {
notifyListeners();
}
Future<List<String>> getUserPrezOfClubs() async {
User? user = FirebaseAuth.instance.currentUser;
DocumentReference userRef = FirebaseFirestore.instance.collection('Profils').doc(user!.uid);
QuerySnapshot querySnapshot = await FirebaseFirestore.instance
.collection('Presidents')
.where('uid', isEqualTo: userRef)
.get();
List<String> clubIds = querySnapshot.docs.map((doc) => doc['clubId'] as String).toList();
return clubIds;
}
Future<void> checkcurrentuserinpresident() async {
User? user = FirebaseAuth.instance.currentUser;
DocumentReference userRef = FirebaseFirestore.instance.collection('Profils').doc(user!.uid);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment