diff --git a/frontend/components.d.ts b/frontend/components.d.ts
index 585aa545..cdce130e 100644
--- a/frontend/components.d.ts
+++ b/frontend/components.d.ts
@@ -27,9 +27,9 @@ declare module 'vue' {
BatchOverlay: typeof import('./src/components/BatchOverlay.vue')['default']
BatchStudentProgress: typeof import('./src/components/Modals/BatchStudentProgress.vue')['default']
BatchStudents: typeof import('./src/components/BatchStudents.vue')['default']
- BrandSettings: typeof import('./src/components/BrandSettings.vue')['default']
+ BrandSettings: typeof import('./src/components/Settings/BrandSettings.vue')['default']
BulkCertificates: typeof import('./src/components/Modals/BulkCertificates.vue')['default']
- Categories: typeof import('./src/components/Categories.vue')['default']
+ Categories: typeof import('./src/components/Settings/Categories.vue')['default']
CertificationLinks: typeof import('./src/components/CertificationLinks.vue')['default']
ChapterModal: typeof import('./src/components/Modals/ChapterModal.vue')['default']
CodeEditor: typeof import('./src/components/Controls/CodeEditor.vue')['default']
@@ -48,10 +48,10 @@ declare module 'vue' {
EditCoverImage: typeof import('./src/components/Modals/EditCoverImage.vue')['default']
EditProfile: typeof import('./src/components/Modals/EditProfile.vue')['default']
EmailTemplateModal: typeof import('./src/components/Modals/EmailTemplateModal.vue')['default']
- EmailTemplates: typeof import('./src/components/EmailTemplates.vue')['default']
+ EmailTemplates: typeof import('./src/components/Settings/EmailTemplates.vue')['default']
EmptyState: typeof import('./src/components/EmptyState.vue')['default']
EvaluationModal: typeof import('./src/components/Modals/EvaluationModal.vue')['default']
- Evaluators: typeof import('./src/components/Evaluators.vue')['default']
+ Evaluators: typeof import('./src/components/Settings/Evaluators.vue')['default']
Event: typeof import('./src/components/Modals/Event.vue')['default']
ExplanationVideos: typeof import('./src/components/Modals/ExplanationVideos.vue')['default']
FeedbackModal: typeof import('./src/components/Modals/FeedbackModal.vue')['default']
@@ -67,14 +67,14 @@ declare module 'vue' {
LiveClass: typeof import('./src/components/LiveClass.vue')['default']
LiveClassModal: typeof import('./src/components/Modals/LiveClassModal.vue')['default']
LMSLogo: typeof import('./src/components/Icons/LMSLogo.vue')['default']
- Members: typeof import('./src/components/Members.vue')['default']
+ Members: typeof import('./src/components/Settings/Members.vue')['default']
MobileLayout: typeof import('./src/components/MobileLayout.vue')['default']
MultiSelect: typeof import('./src/components/Controls/MultiSelect.vue')['default']
NoPermission: typeof import('./src/components/NoPermission.vue')['default']
NoSidebarLayout: typeof import('./src/components/NoSidebarLayout.vue')['default']
NotPermitted: typeof import('./src/components/NotPermitted.vue')['default']
PageModal: typeof import('./src/components/Modals/PageModal.vue')['default']
- PaymentSettings: typeof import('./src/components/PaymentSettings.vue')['default']
+ PaymentSettings: typeof import('./src/components/Settings/PaymentSettings.vue')['default']
Play: typeof import('./src/components/Icons/Play.vue')['default']
ProgressBar: typeof import('./src/components/ProgressBar.vue')['default']
Question: typeof import('./src/components/Modals/Question.vue')['default']
@@ -84,9 +84,9 @@ declare module 'vue' {
ReviewModal: typeof import('./src/components/Modals/ReviewModal.vue')['default']
RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView']
- SettingDetails: typeof import('./src/components/SettingDetails.vue')['default']
- SettingFields: typeof import('./src/components/SettingFields.vue')['default']
- Settings: typeof import('./src/components/Modals/Settings.vue')['default']
+ SettingDetails: typeof import('./src/components/Settings/SettingDetails.vue')['default']
+ SettingFields: typeof import('./src/components/Settings/SettingFields.vue')['default']
+ Settings: typeof import('./src/components/Settings/Settings.vue')['default']
SidebarLink: typeof import('./src/components/SidebarLink.vue')['default']
StudentHeatmap: typeof import('./src/components/StudentHeatmap.vue')['default']
StudentModal: typeof import('./src/components/Modals/StudentModal.vue')['default']
@@ -97,5 +97,7 @@ declare module 'vue' {
UserAvatar: typeof import('./src/components/UserAvatar.vue')['default']
UserDropdown: typeof import('./src/components/UserDropdown.vue')['default']
VideoBlock: typeof import('./src/components/VideoBlock.vue')['default']
+ ZoomAccountModal: typeof import('./src/components/Modals/ZoomAccountModal.vue')['default']
+ ZoomSettings: typeof import('./src/components/Settings/ZoomSettings.vue')['default']
}
}
diff --git a/frontend/src/components/Modals/ZoomAccountModal.vue b/frontend/src/components/Modals/ZoomAccountModal.vue
new file mode 100644
index 00000000..c43fddb8
--- /dev/null
+++ b/frontend/src/components/Modals/ZoomAccountModal.vue
@@ -0,0 +1,103 @@
+
+
+
+
diff --git a/frontend/src/components/BrandSettings.vue b/frontend/src/components/Settings/BrandSettings.vue
similarity index 96%
rename from frontend/src/components/BrandSettings.vue
rename to frontend/src/components/Settings/BrandSettings.vue
index f988073b..e2662f60 100644
--- a/frontend/src/components/BrandSettings.vue
+++ b/frontend/src/components/Settings/BrandSettings.vue
@@ -28,7 +28,7 @@
diff --git a/frontend/src/components/Settings/types.ts b/frontend/src/components/Settings/types.ts
new file mode 100644
index 00000000..0fe9e702
--- /dev/null
+++ b/frontend/src/components/Settings/types.ts
@@ -0,0 +1,16 @@
+export interface User {
+ data: {
+ email: string
+ name: string
+ enabled: boolean
+ user_image: string
+ full_name: string
+ user_type: ['System User', 'Website User']
+ username: string
+ is_moderator: boolean
+ is_system_manager: boolean
+ is_evaluator: boolean
+ is_instructor: boolean
+ is_fc_site: boolean
+ }
+}
\ No newline at end of file
diff --git a/frontend/src/components/UserDropdown.vue b/frontend/src/components/UserDropdown.vue
index eaffdf0d..a92b9810 100644
--- a/frontend/src/components/UserDropdown.vue
+++ b/frontend/src/components/UserDropdown.vue
@@ -72,7 +72,7 @@ import { usersStore } from '@/stores/user'
import { useSettings } from '@/stores/settings'
import { markRaw, watch, ref, onMounted, computed } from 'vue'
import { createDialog } from '@/utils/dialogs'
-import SettingsModal from '@/components/Modals/Settings.vue'
+import SettingsModal from '@/components/Settings/Settings.vue'
import FrappeCloudIcon from '@/components/Icons/FrappeCloudIcon.vue'
import {
ChevronDown,
diff --git a/lms/lms/doctype/lms_zoom_settings/lms_zoom_settings.json b/lms/lms/doctype/lms_zoom_settings/lms_zoom_settings.json
index 8938ec1b..1360b20f 100644
--- a/lms/lms/doctype/lms_zoom_settings/lms_zoom_settings.json
+++ b/lms/lms/doctype/lms_zoom_settings/lms_zoom_settings.json
@@ -76,7 +76,7 @@
"grid_page_length": 50,
"index_web_pages_for_search": 1,
"links": [],
- "modified": "2025-05-26 13:21:38.227043",
+ "modified": "2025-05-26 18:09:09.392368",
"modified_by": "sayali@frappe.io",
"module": "LMS",
"name": "LMS Zoom Settings",
@@ -94,6 +94,31 @@
"role": "System Manager",
"share": 1,
"write": 1
+ },
+ {
+ "create": 1,
+ "delete": 1,
+ "email": 1,
+ "export": 1,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Moderator",
+ "share": 1,
+ "write": 1
+ },
+ {
+ "create": 1,
+ "delete": 1,
+ "email": 1,
+ "export": 1,
+ "if_owner": 1,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Batch Evaluator",
+ "share": 1,
+ "write": 1
}
],
"row_format": "Dynamic",