diff --git a/assets/icons/user_management.svg b/assets/icons/user_management.svg
new file mode 100644
index 00000000..3255117a
--- /dev/null
+++ b/assets/icons/user_management.svg
@@ -0,0 +1,7 @@
+
diff --git a/lib/pages/home/bloc/home_bloc.dart b/lib/pages/home/bloc/home_bloc.dart
index 04c35295..022354fa 100644
--- a/lib/pages/home/bloc/home_bloc.dart
+++ b/lib/pages/home/bloc/home_bloc.dart
@@ -95,9 +95,7 @@ class HomeBloc extends Bloc {
title: 'Move in',
icon: Assets.moveinIcon,
active: true,
- onPress: (context) {
- context.go(RoutesConst.rolesAndPermissions);
- },
+ onPress: (context) {},
color: ColorsManager.primaryColor,
),
HomeItemModel(
diff --git a/lib/pages/roles_and_permission/users_page/bloc/users_bloc.dart b/lib/pages/roles_and_permission/users_page/bloc/users_bloc.dart
index ec3139b7..f0e3c9ad 100644
--- a/lib/pages/roles_and_permission/users_page/bloc/users_bloc.dart
+++ b/lib/pages/roles_and_permission/users_page/bloc/users_bloc.dart
@@ -22,9 +22,20 @@ class UsersBloc extends Bloc {
on(_getRolePermission);
on(_getPermissions);
on(searchRolePermission);
+ on(_sendInvitUser);
+ on(_validateBasicsStep);
+ on(isCompleteRoleFun);
+ }
+ void _validateBasicsStep(ValidateBasicsStep event, Emitter emit) {
+ if (formKey.currentState?.validate() ?? false) {
+ emit(const BasicsStepValidState());
+ } else {
+ emit(const BasicsStepInvalidState());
+ }
}
List users = [];
+ String roleSelected = '';
Future _getUsers(GetUsers event, Emitter emit) async {
emit(UsersLoadingState());
@@ -106,31 +117,42 @@ class UsersBloc extends Bloc {
int numberSpaces = 0;
int numberRole = 0;
- isCompleteBasicsFun(CheckStepStatus event, Emitter emit) {
+ // isCompleteBasicsFun(CheckStepStatus event, Emitter emit) {
+ // emit(UsersLoadingState());
+ // isCompleteBasics = firstNameController.text.isNotEmpty &&
+ // lastNameController.text.isNotEmpty &&
+ // emailController.text.isNotEmpty;
+ // emit(ChangeStatusSteps());
+ // return isCompleteBasics;
+ // }
+
+ bool isCompleteBasicsFun(CheckStepStatus event, Emitter emit) {
emit(UsersLoadingState());
+
+ final emailRegex = RegExp(
+ r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$',
+ );
isCompleteBasics = firstNameController.text.isNotEmpty &&
lastNameController.text.isNotEmpty &&
- emailController.text.isNotEmpty;
+ emailController.text.isNotEmpty &&
+ emailRegex.hasMatch(emailController.text);
+
emit(ChangeStatusSteps());
- return isCompleteBasics;
+ return isCompleteBasics!;
}
void isCompleteSpacesFun(
CheckSpacesStepStatus event, Emitter emit) {
emit(UsersLoadingState());
- try {
- List selectedIds = getSelectedIds(updatedCommunities);
- isCompleteSpaces = selectedIds.isNotEmpty;
- } catch (e) {
- emit(ErrorState('Error while retrieving selected IDs: $e'));
- return;
- }
-
+ List selectedIds = getSelectedIds(updatedCommunities);
+ isCompleteSpaces = selectedIds.isNotEmpty;
emit(ChangeStatusSteps());
}
- bool checkRolePermissions() {
- return true;
+ void isCompleteRoleFun(CheckRoleStepStatus event, Emitter emit) {
+ emit(UsersLoadingState());
+ isCompleteRolePermissions = roleSelected != '';
+ emit(ChangeStatusSteps());
}
Future> _fetchSpacesForCommunity(
@@ -249,6 +271,7 @@ class UsersBloc extends Bloc {
emit(UsersLoadingState());
permissions = await UserPermissionApi().fetchPermission(
event.roleUuid == "" ? roles.first.uuid : event.roleUuid);
+ roleSelected = event.roleUuid!;
emit(RolePermissionInitial());
} catch (e) {
emit(ErrorState('Error loading communities and spaces: $e'));
@@ -268,17 +291,22 @@ class UsersBloc extends Bloc {
return anyMatch;
}
- _sendInvitUser(List nodes, String searchTerm) async {
- emit(UsersLoadingState());
- await UserPermissionApi().sendInviteUser(
- email: emailController.text,
- firstName: firstNameController.text,
- jobTitle: jobTitleController.text,
- lastName: lastNameController.text,
- phoneNumber: phoneController.text,
- roleUuid: '',
- spaceUuids: selectedIds);
- emit(RolePermissionInitial());
+ _sendInvitUser(SendInviteUsers event, Emitter emit) async {
+ try {
+ emit(UsersLoadingState());
+ List selectedIds = getSelectedIds(updatedCommunities);
+ await UserPermissionApi().sendInviteUser(
+ email: emailController.text,
+ firstName: firstNameController.text,
+ jobTitle: jobTitleController.text,
+ lastName: lastNameController.text,
+ phoneNumber: phoneController.text,
+ roleUuid: roleSelected,
+ spaceUuids: selectedIds);
+ emit(SaveState());
+ } catch (e) {
+ emit(ErrorState('Error: $e'));
+ }
}
void searchRolePermission(SearchPermission event, Emitter emit) {
diff --git a/lib/pages/roles_and_permission/users_page/bloc/users_event.dart b/lib/pages/roles_and_permission/users_page/bloc/users_event.dart
index 6f59b495..633c1ea5 100644
--- a/lib/pages/roles_and_permission/users_page/bloc/users_event.dart
+++ b/lib/pages/roles_and_permission/users_page/bloc/users_event.dart
@@ -12,12 +12,25 @@ class GetUsers extends UsersEvent {
List