{"version":3,"sources":["webpack:///./src/views/admin/pages/Users.vue?79d4","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///./src/views/admin/pages/Users.vue?105b","webpack:///./src/views/admin/pages/Users.vue","webpack:///./src/views/admin/pages/Users.vue?6a41","webpack:///./src/views/admin/pages/Users.vue?08b6","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///./src/views/admin/components/UserItem.vue?9980","webpack:///./src/views/admin/components/UserItem.vue?4566","webpack:///./src/views/admin/components/UserItem.vue","webpack:///./src/views/admin/components/UserItem.vue?8556","webpack:///./src/views/admin/components/UserItem.vue?ee82"],"names":["breakpoints","ALIGNMENT","makeProps","prefix","def","reduce","props","val","upperFirst","alignValidator","str","includes","alignProps","type","String","default","validator","justifyValidator","justifyProps","alignContentValidator","alignContentProps","propMap","align","Object","keys","justify","alignContent","classMap","breakpointClass","prop","className","breakpoint","replace","toLowerCase","cache","Map","Vue","extend","name","functional","tag","dense","Boolean","noGutters","render","h","data","children","cacheKey","classList","get","forEach","value","push","set","mergeData","staticClass","class","_vm","this","_h","$createElement","_c","_self","VRow","VCol","attrs","_v","_s","$t","VBtn","on","getUsers","VIcon","staticStyle","VFileInput","handleFileChange","VTooltip","scopedSlots","_u","key","fn","ref","_g","upload","VTextField","model","callback","$$v","search","expression","selected","$event","toggle","VProgressCircular","filteredUsers","length","VList","_l","user","i","isLoading","handleRoles","handlePermissions","handleVerifyEmail","handleToggleActive","permissionsDialog","selectedUser","VDialog","VCard","username","email","p","VListItem","claimType","getPermissionName","VBadge","toUpperCase","substring","_e","claimsWithCount","VListItemAction","nativeOn","permissionValue","toString","$set","$i18n","locale","VSpacer","modifyPermissionDialog","modifyPermission","removePermissionDialog","removePermission","VMenu","disabled","addPermission","text","confirmPermissions","rolesDialog","r","getRoleName","currentUserEmail","removeRoleDialog","removeRole","addRole","confirmRoles","activeDialog","toggleActive","VSelect","timeItems","activeDuration","staticRenderFns","MINUTES_IN_DAY","MINUTES_IN_MONTH","Users","loading","users","file","togglingActive","verifyLoading","editingRoles","modifyRoleDialog","newRoles","editingPermissions","newPermissions","base","filter","x","isActive","roles","api","console","log","addUsersFromFileAction","duration","put","activeUntil","idx","findIndex","date","Date","toUTCString","updatedArr","slice","JSON","parse","stringify","verifyEmail","indexOf","emailVerified","some","roleName","splice","role","stdRoles","find","end","post","copy","sort","a","b","localeCompare","then","roleClaims","inheritedPermissions","map","roleClaim","userClaims","precedencePermissions","userClaim","permissions","catch","error","permission","stdPermissions","updatedPermissions","__decorate","Getter","Action","Watch","Component","components","UserItem","component","breakpointProps","Number","offsetProps","orderProps","col","offset","order","cols","alignSelf","parent","hasColClasses","startsWith","VOverlay","VListItemAvatar","userIcon","index","canManage","$emit","isMe","isLast","VDivider","Role","Admin","DateTime","fromJSDate","toLocaleString","DATETIME_MED","isAdmin","getUserHasPrivileges","Prop"],"mappings":"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","file":"assets/js/chunk-3b2cafeb.59afb975.js","sourcesContent":["export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Users.vue?vue&type=style&index=0&id=506de6e5&prod&scoped=true&lang=css&\"","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","import { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VFileInput } from 'vuetify/lib/components/VFileInput';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\n\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(VRow,[_c(VCol,{staticClass:\"d-flex justify-space-between\",attrs:{\"cols\":\"12\"}},[_c('span',{staticClass:\"display-1 font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"admin.usersPageHeader\"))+\" \")]),_c(VBtn,{attrs:{\"icon\":\"\"},on:{\"click\":_vm.getUsers}},[_c(VIcon,[_vm._v(\"mdi-refresh\")])],1)],1),_c(VCol,{staticClass:\"d-flex justify-space-between\",attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"d-flex\",staticStyle:{\"width\":\"100%\",\"max-width\":\"400px\"}},[_c(VFileInput,{attrs:{\"accept\":\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\"show-size\":\"\"},on:{\"change\":_vm.handleFileChange}}),_c(VTooltip,{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c(VBtn,_vm._g({staticClass:\"upload-button\",attrs:{\"icon\":\"\"},on:{\"click\":_vm.upload}},on),[_c(VIcon,[_vm._v(\"mdi-upload\")])],1)]}}])},[_vm._v(\" \"+_vm._s(_vm.$t(\"admin.uploadTooltip\"))+\" \")])],1)]),_c(VCol,{attrs:{\"cols\":\"12\"}},[_c('h3',[_vm._v(_vm._s(_vm.$t(\"activeUser.search\")))]),_c('div',{staticClass:\"d-flex align-center\"},[_c(VTextField,{model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}}),_c('div',{staticClass:\"d-flex ml-12\"},[_c('div',{staticClass:\"toggle\",class:{ selected: _vm.type === 'active' || _vm.type === 'both' },on:{\"click\":function($event){return _vm.toggle('active')}}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"activeUser.active\")))])]),_c('div',{staticClass:\"toggle\",class:{ selected: _vm.type === 'inactive' || _vm.type === 'both' },on:{\"click\":function($event){return _vm.toggle('inactive')}}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"activeUser.inactive\")))])])])],1)]),_c(VCol,{attrs:{\"cols\":\"12\"}},[(_vm.loading)?_c('div',{staticClass:\"d-flex flex-column align-center\"},[_c('div',{staticClass:\"mb-4\"},[_vm._v(_vm._s(_vm.$t(\"global.loading\"))+\"...\")]),_c(VProgressCircular,{attrs:{\"indeterminate\":\"\",\"size\":\"32\"}})],1):(!_vm.filteredUsers.length)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"activeUser.none\"))+\" \")]):_c(VList,_vm._l((_vm.filteredUsers),function(user,i){return _c('UserItem',{key:i,attrs:{\"user\":user,\"loading\":_vm.isLoading(user),\"is-last\":i === _vm.filteredUsers.length - 1},on:{\"changeRole\":function($event){return _vm.handleRoles(user)},\"permissions\":function($event){return _vm.handlePermissions(user)},\"verifyEmail\":function($event){return _vm.handleVerifyEmail(user)},\"toggleActive\":function($event){return _vm.handleToggleActive(user)}}})}),1)],1),(_vm.permissionsDialog && _vm.selectedUser)?_c(VDialog,{attrs:{\"max-width\":\"600px\",\"scrollable\":\"\"},model:{value:(_vm.permissionsDialog),callback:function ($$v) {_vm.permissionsDialog=$$v},expression:\"permissionsDialog\"}},[_c(VCard,[_c(VCardTitle,[_vm._v(_vm._s(_vm.$t(\"permissions.editTitle\")))]),_c(VCardText,[_vm._v(\" \"+_vm._s(_vm.$t(\"permissions.editText\"))+\" \"+_vm._s(_vm.selectedUser.username)+\" (\"+_vm._s(_vm.selectedUser.email)+\") \"),_c(VList,_vm._l((_vm.newPermissions),function(p,i){return _c(VListItem,{key:i},[_c(VListItemContent,[_c(VListItemTitle,{class:(\"\" + (p.claimType === 'user' && 'font-weight-bold'))},[_vm._v(\" \"+_vm._s(_vm.getPermissionName(p.type))+\" \")]),(p.claimType)?_c(VBadge,{staticStyle:{\"justify-content\":\"left\",\"margin-left\":\"-2px\",\"margin-top\":\"5px\"},attrs:{\"inline\":\"\",\"color\":p.claimType === 'user' ? 'primary' : 'accent',\"content\":p.claimType[0].toUpperCase() + p.claimType.substring(1)}}):_vm._e(),(p.claimType === 'user' && p.value !== '')?_c(VListItemSubtitle,[(\n p.claimType === 'user' &&\n p.type.includes('live_transcription')\n )?_c('div',{staticClass:\"block mt-1\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"permissions.seconds\"))+\": \"+_vm._s(p.value)+\" \")]):(p.claimType === 'user')?_c('div',{staticClass:\"block mt-1\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"permissions.counter\"))+\": \"+_vm._s(p.value)+\" \")]):_vm._e()]):_vm._e()],1),(\n p.claimType === 'user' && _vm.claimsWithCount.includes(p.type)\n )?_c(VListItemAction,[_c(VDialog,{attrs:{\"max-width\":\"400px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c(VBtn,_vm._g({attrs:{\"icon\":\"\",\"disabled\":p.claimType === 'role' ||\n !_vm.claimsWithCount.includes(p.type)},nativeOn:{\"click\":function($event){_vm.permissionValue = p.value.toString()}}},on),[_c(VIcon,[_vm._v(\"mdi-square-edit-outline\")])],1)]}}],null,true),model:{value:(p.modifyPermissionDialog),callback:function ($$v) {_vm.$set(p, \"modifyPermissionDialog\", $$v)},expression:\"p.modifyPermissionDialog\"}},[_c(VCard,[_c(VCardTitle,[_vm._v(\" \"+_vm._s(_vm.$t(\"permissions.modifyTitle\"))+\" \")]),_c(VCardText,[_c(VTextField,{attrs:{\"flat\":\"\",\"reactive\":\"\",\"full-width\":\"\",\"elevation\":\"0\",\"locale\":_vm.$i18n.locale},model:{value:(_vm.permissionValue),callback:function ($$v) {_vm.permissionValue=$$v},expression:\"permissionValue\"}})],1),_c(VCardActions,[_c(VSpacer),_c(VBtn,{attrs:{\"elevation\":\"0\"},on:{\"click\":function($event){p.modifyPermissionDialog = false}}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"global.cancel\")))])]),_c(VBtn,{attrs:{\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.modifyPermission(p.type)}}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"global.confirm\")))])])],1)],1)],1)],1):_vm._e(),_c('div',{staticClass:\"mx-1\"}),_c(VListItemAction,[_c(VDialog,{attrs:{\"max-width\":\"300px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c(VBtn,_vm._g({attrs:{\"icon\":\"\",\"disabled\":p.claimType === 'role'}},on),[_c(VIcon,[_vm._v(\"mdi-delete\")])],1)]}}],null,true),model:{value:(p.removePermissionDialog),callback:function ($$v) {_vm.$set(p, \"removePermissionDialog\", $$v)},expression:\"p.removePermissionDialog\"}},[_c(VCard,[_c(VCardTitle,[_vm._v(\" \"+_vm._s(_vm.$t(\"permissions.removeTitle\"))+\" \")]),_c(VCardText,[_vm._v(\" \"+_vm._s(_vm.$t(\"permissions.removeText\"))+\" \")]),_c(VCardActions,[_c(VSpacer),_c(VBtn,{attrs:{\"elevation\":\"0\"},on:{\"click\":function($event){p.removePermissionDialog = false}}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"global.cancel\")))])]),_c(VBtn,{attrs:{\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.removePermission(p.type)}}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"global.confirm\")))])])],1)],1)],1)],1)],1)}),1)],1),_c(VCardActions,[_c(VSpacer),_c(VMenu,{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c(VBtn,_vm._g({attrs:{\"elevation\":\"0\"}},on),[_c(VIcon,{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-plus\")]),_c('span',[_vm._v(_vm._s(_vm.$t(\"permissions.add\")))])],1)]}}],null,false,3968772162)},[_c('div',{staticStyle:{\"max-height\":\"600px\",\"overflow-y\":\"auto\"}},[_c(VList,_vm._l((_vm.stdPermissions),function(p,i){return _c(VListItem,{key:i,attrs:{\"disabled\":p.disabled},on:{\"click\":function($event){return _vm.addPermission(p.value)}}},[_vm._v(\" \"+_vm._s(p.text)+\" \")])}),1)],1)]),_c(VBtn,{attrs:{\"elevation\":\"0\",\"color\":\"primary\"},on:{\"click\":_vm.confirmPermissions}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"global.confirm\")))])])],1)],1)],1):_vm._e(),(_vm.rolesDialog && _vm.selectedUser)?_c(VDialog,{attrs:{\"max-width\":\"600px\"},model:{value:(_vm.rolesDialog),callback:function ($$v) {_vm.rolesDialog=$$v},expression:\"rolesDialog\"}},[_c(VCard,[_c(VCardTitle,[_vm._v(_vm._s(_vm.$t(\"roles.editTitle\")))]),_c(VCardText,[_vm._v(\" \"+_vm._s(_vm.$t(\"roles.editText\"))+\" \"+_vm._s(_vm.selectedUser.username)+\" (\"+_vm._s(_vm.selectedUser.email)+\") \"),_c(VList,_vm._l((_vm.newRoles),function(r,i){return _c(VListItem,{key:i},[_c(VListItemContent,[_c(VListItemTitle,[_vm._v(\" \"+_vm._s(_vm.getRoleName(r.name))+\" \")])],1),_c(VListItemAction,[_c(VDialog,{attrs:{\"max-width\":\"300px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c(VBtn,_vm._g({attrs:{\"icon\":\"\",\"disabled\":(_vm.currentUserEmail === _vm.selectedUser.email &&\n r.name === 'admin') ||\n r.name === 'user'}},on),[_c(VIcon,[_vm._v(\"mdi-delete\")])],1)]}}],null,true),model:{value:(r.removeRoleDialog),callback:function ($$v) {_vm.$set(r, \"removeRoleDialog\", $$v)},expression:\"r.removeRoleDialog\"}},[_c(VCard,[_c(VCardTitle,[_vm._v(\" \"+_vm._s(_vm.$t(\"roles.removeTitle\"))+\" \")]),_c(VCardText,[_vm._v(\" \"+_vm._s(_vm.$t(\"roles.removeText\"))+\" \")]),_c(VCardActions,[_c(VSpacer),_c(VBtn,{attrs:{\"elevation\":\"0\"},on:{\"click\":function($event){r.removeRoleDialog = false}}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"global.cancel\")))])]),_c(VBtn,{attrs:{\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.removeRole(r.name)}}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"global.confirm\")))])])],1)],1)],1)],1)],1)}),1)],1),_c(VCardActions,[_c(VSpacer),_c(VMenu,{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c(VBtn,_vm._g({attrs:{\"elevation\":\"0\"}},on),[_c(VIcon,{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-plus\")]),_c('span',[_vm._v(_vm._s(_vm.$t(\"roles.add\")))])],1)]}}],null,false,1726822205)},[_c(VList,_vm._l((_vm.stdRoles),function(r,i){return _c(VListItem,{key:i,attrs:{\"disabled\":r.disabled},on:{\"click\":function($event){return _vm.addRole(r.value)}}},[_vm._v(\" \"+_vm._s(r.text)+\" \")])}),1)],1),_c(VBtn,{attrs:{\"elevation\":\"0\",\"color\":\"primary\"},on:{\"click\":_vm.confirmRoles}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"global.confirm\")))])])],1)],1)],1):_vm._e(),(_vm.activeDialog && _vm.selectedUser)?_c(VDialog,{attrs:{\"max-width\":\"600px\"},model:{value:(_vm.activeDialog),callback:function ($$v) {_vm.activeDialog=$$v},expression:\"activeDialog\"}},[(_vm.selectedUser.isActive)?_c(VCard,[_c(VCardTitle,[_vm._v(\" \"+_vm._s(_vm.$t(\"activeUser.change\"))+\" \"),_c('b',[_vm._v(_vm._s(_vm.selectedUser.email))])]),_c(VCardText,{staticClass:\"pa-6\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"activeUser.confirm\"))+\" \")]),_c(VCardActions,[_c(VSpacer),_c(VBtn,{attrs:{\"elevation\":\"0\",\"color\":\"primary\"},on:{\"click\":_vm.toggleActive}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"global.confirm\")))])]),_c(VBtn,{attrs:{\"elevation\":\"0\",\"text\":\"\"},on:{\"click\":function($event){_vm.activeDialog = false}}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"global.cancel\")))])])],1)],1):_c(VCard,[_c(VCardTitle,[_vm._v(\" \"+_vm._s(_vm.$t(\"activeUser.change\"))+\" \"),_c('b',[_vm._v(_vm._s(_vm.selectedUser.email))])]),_c(VCardText,{staticClass:\"pa-6\"},[_c('h3',[_vm._v(_vm._s(_vm.$t(\"activeUser.activateMsg\")))]),_c(VSelect,{attrs:{\"items\":_vm.timeItems},model:{value:(_vm.activeDuration),callback:function ($$v) {_vm.activeDuration=$$v},expression:\"activeDuration\"}})],1),_c(VCardActions,[_c(VSpacer),_c(VBtn,{attrs:{\"elevation\":\"0\",\"text\":\"\"},on:{\"click\":_vm.toggleActive}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"global.confirm\"))+\" \")])]),_c(VBtn,{attrs:{\"elevation\":\"0\",\"text\":\"\"},on:{\"click\":function($event){_vm.activeDialog = false}}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"global.cancel\")))])])],1)],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Component, Watch } from \"vue-property-decorator\";\r\nimport { Action, Getter } from \"vuex-class\";\r\n\r\nimport api from \"@/core/utils/api\";\r\nimport UserItem from \"../components/UserItem.vue\";\r\nimport { AdminUser, RoleClaims, Roles, SelectItem } from \"@/core/models\";\r\n\r\nconst MINUTES_IN_DAY = 24 * 60;\r\nconst MINUTES_IN_MONTH = 30 * 24 * 60;\r\n\r\n@Component({ components: { UserItem } })\r\nexport default class Users extends Vue {\r\n @Getter(\"profile/getUserEmail\") currentUserEmail!: string;\r\n @Action(\"profile/addUsersFromExcel\") addUsersFromFileAction!: (\r\n file: File,\r\n ) => Promise;\r\n\r\n search = \"\";\r\n loading = false;\r\n type: \"active\" | \"inactive\" | \"both\" | \"none\" = \"both\";\r\n users: AdminUser[] = [];\r\n file: File | null = null;\r\n\r\n get filteredUsers() {\r\n if (!this.users) return [];\r\n\r\n const base = this.users.filter(x => {\r\n if (this.type === \"both\") return true;\r\n else if (this.type === \"active\") return x.isActive;\r\n else if (this.type === \"inactive\") return !x.isActive;\r\n else return false;\r\n });\r\n\r\n if (!this.search) return base;\r\n return base.filter(x =>\r\n `${x.email};${x.username};${x.roles}`.includes(this.search),\r\n );\r\n }\r\n\r\n async getUsers() {\r\n this.loading = true;\r\n try {\r\n this.users = (await api.get(\"/api/Users/GetAllUsers\")) as AdminUser[];\r\n } catch (error) {\r\n this.users = [];\r\n console.log(error);\r\n }\r\n this.loading = false;\r\n }\r\n\r\n toggle(type: \"active\" | \"inactive\" | \"both\") {\r\n switch (type) {\r\n case \"active\": {\r\n if (this.type === \"inactive\") this.type = \"both\";\r\n else if (this.type === \"both\") this.type = \"inactive\";\r\n else if (this.type === \"none\") this.type = \"active\";\r\n else this.type = \"none\";\r\n break;\r\n }\r\n case \"inactive\": {\r\n if (this.type === \"active\") this.type = \"both\";\r\n else if (this.type === \"both\") this.type = \"active\";\r\n else if (this.type === \"none\") this.type = \"inactive\";\r\n else this.type = \"none\";\r\n break;\r\n }\r\n }\r\n }\r\n\r\n async upload() {\r\n if (!this.file) return;\r\n this.addUsersFromFileAction(this.file);\r\n }\r\n\r\n handleFileChange(file: File) {\r\n if (\r\n !(\r\n file.type ===\r\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\r\n )\r\n )\r\n return;\r\n this.file = file;\r\n }\r\n\r\n selectedUser: AdminUser | null = null;\r\n isLoading(user: AdminUser) {\r\n if (!this.selectedUser) return;\r\n return (\r\n this.selectedUser.email === user.email &&\r\n (this.editingRoles ||\r\n this.togglingActive ||\r\n this.verifyLoading ||\r\n this.editingPermissions)\r\n );\r\n }\r\n // Active status changing\r\n activeDialog = false;\r\n togglingActive = false;\r\n activeDuration = -1;\r\n get timeItems() {\r\n return [\r\n { text: this.$t(\"activeUser.indef\"), value: -1 },\r\n { text: \"15\" + this.$t(\"activeUser.mins\"), value: 15 },\r\n { text: \"30\" + this.$t(\"activeUser.mins\"), value: 30 },\r\n { text: \"1\" + this.$t(\"activeUser.hours\"), value: 60 },\r\n { text: \"3\" + this.$t(\"activeUser.hours\"), value: MINUTES_IN_DAY / 8 },\r\n { text: \"6\" + this.$t(\"activeUser.hours\"), value: MINUTES_IN_DAY / 4 },\r\n { text: \"12\" + this.$t(\"activeUser.hours\"), value: MINUTES_IN_DAY / 2 },\r\n { text: \"1\" + this.$t(\"activeUser.days\"), value: MINUTES_IN_DAY },\r\n { text: \"5\" + this.$t(\"activeUser.days\"), value: 4 * MINUTES_IN_DAY },\r\n { text: \"10\" + this.$t(\"activeUser.days\"), value: 10 * MINUTES_IN_DAY },\r\n { text: \"15\" + this.$t(\"activeUser.days\"), value: 15 * MINUTES_IN_DAY },\r\n { text: \"30\" + this.$t(\"activeUser.days\"), value: MINUTES_IN_MONTH },\r\n { text: \"2\" + this.$t(\"activeUser.months\"), value: 2 * MINUTES_IN_MONTH },\r\n {\r\n text: \"12\" + this.$t(\"activeUser.months\"),\r\n value: 12 * MINUTES_IN_MONTH,\r\n },\r\n ] as SelectItem[];\r\n }\r\n handleToggleActive(user: AdminUser) {\r\n this.activeDialog = true;\r\n this.selectedUser = user;\r\n }\r\n async toggleActive() {\r\n if (!this.selectedUser) return;\r\n const email = this.selectedUser.email;\r\n const isActive = this.selectedUser.isActive;\r\n const duration = this.activeDuration;\r\n\r\n this.togglingActive = true;\r\n try {\r\n const { activeUntil } = (await api.put(\"/api/Users/ToggleActive\", {\r\n user: email,\r\n duration,\r\n })) as any;\r\n const idx = this.users.findIndex(x => x.email === email);\r\n const date =\r\n duration === -1 ? \"\" : new Date(activeUntil ?? \"\").toUTCString();\r\n if (idx !== -1) {\r\n const updatedArr = this.users.slice(0);\r\n updatedArr[idx] = JSON.parse(\r\n JSON.stringify({\r\n ...updatedArr[idx],\r\n isActive: !isActive,\r\n activeUntil: date,\r\n } as AdminUser),\r\n );\r\n this.users = updatedArr;\r\n }\r\n } catch (error) {\r\n console.log(\"Could not toggle\", error);\r\n }\r\n this.togglingActive = false;\r\n this.activeDialog = false;\r\n }\r\n @Watch(\"activeDialog\")\r\n activeDialogChanged() {\r\n if (this.activeDialog) return;\r\n this.selectedUser = null;\r\n this.activeDuration = -1;\r\n }\r\n\r\n // Verifying email\r\n verifyLoading = false;\r\n handleVerifyEmail(user: AdminUser) {\r\n this.selectedUser = user;\r\n this.verifyEmail();\r\n }\r\n async verifyEmail() {\r\n const user = this.selectedUser;\r\n if (!user) return;\r\n\r\n this.verifyLoading = true;\r\n try {\r\n await api.get(`/api/Admin/VerifyEmail/${user.email}`);\r\n const idx = this.users.indexOf(user);\r\n this.users[idx].emailVerified = true;\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n this.verifyLoading = false;\r\n this.selectedUser = null;\r\n }\r\n\r\n /////////////////////////////////////////////////////\r\n // Role controller\r\n editingRoles = false;\r\n rolesDialog = false;\r\n removeRoleDialog = false;\r\n modifyRoleDialog = false;\r\n newRoles: Roles[] = [];\r\n\r\n get stdRoles(): SelectItem[] {\r\n return [\r\n {\r\n text: this.$t(\"roles.user\").toString(),\r\n value: \"user\",\r\n disabled: this.newRoles.some(x => x.name === \"user\"),\r\n },\r\n {\r\n text: this.$t(\"roles.subscriberFree\").toString(),\r\n value: \"subscriber-free\",\r\n disabled: this.newRoles.some(x => x.name === \"subscriber-free\"),\r\n },\r\n {\r\n text: this.$t(\"roles.subscriberBasic\").toString(),\r\n value: \"subscriber-basic\",\r\n disabled: this.newRoles.some(x => x.name === \"subscriber-basic\"),\r\n },\r\n {\r\n text: this.$t(\"roles.subscriberStandard\").toString(),\r\n value: \"subscriber-standard\",\r\n disabled: this.newRoles.some(x => x.name === \"subscriber-standard\"),\r\n },\r\n {\r\n text: this.$t(\"roles.subscriberPremium\").toString(),\r\n value: \"subscriber-premium\",\r\n disabled: this.newRoles.some(x => x.name === \"subscriber-premium\"),\r\n },\r\n {\r\n text: this.$t(\"roles.subscriberEnterprise\").toString(),\r\n value: \"subscriber-enterprise\",\r\n disabled: this.newRoles.some(x => x.name === \"subscriber-enterprise\"),\r\n },\r\n {\r\n text: this.$t(\"roles.admin\").toString(),\r\n value: \"admin\",\r\n disabled: this.newRoles.some(x => x.name === \"admin\"),\r\n },\r\n ];\r\n }\r\n addRole(roleName: string) {\r\n if (!this.selectedUser) return;\r\n this.newRoles.push({\r\n name: roleName,\r\n removeRoleDialog: false,\r\n });\r\n }\r\n removeRole(name: string) {\r\n if (!this.selectedUser) return;\r\n if (!this.newRoles.length) return;\r\n const idx = this.newRoles.findIndex(x => x.name === name);\r\n if (idx !== -1) {\r\n this.newRoles.splice(idx, 1);\r\n this.newRoles[idx].removeRoleDialog = false;\r\n }\r\n }\r\n handleRoles(user: AdminUser) {\r\n this.selectedUser = user;\r\n this.newRoles = JSON.parse(JSON.stringify(user.roles));\r\n console.log(\"this.newRoles: \", this.newRoles);\r\n this.rolesDialog = true;\r\n }\r\n getRoleName(roleName: string) {\r\n const role = this.stdRoles.find(x => x.value === roleName);\r\n return role ? role!.text : \"Unknown Role\";\r\n }\r\n async confirmRoles() {\r\n // check user\r\n const user = this.selectedUser;\r\n if (!user) return;\r\n\r\n // init\r\n this.rolesDialog = false;\r\n this.editingRoles = true;\r\n\r\n try {\r\n // send data\r\n const end = \"/api/Admin/EditRoles\";\r\n const data = { email: user.email, roles: this.newRoles };\r\n await api.post(end, data);\r\n\r\n // update user\r\n const idx = this.users.findIndex(x => x.email === user.email);\r\n if (idx !== -1) {\r\n const copy = JSON.parse(JSON.stringify(this.newRoles));\r\n this.users[idx].roles = copy;\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n // clear local stuff\r\n this.newRoles = [];\r\n this.editingRoles = false;\r\n }\r\n\r\n //////////////////////////////////////////////////////////\r\n // Permission controller\r\n editingPermissions = false;\r\n permissionsDialog = false;\r\n removePermissionDialog: boolean = false;\r\n modifyPermissionDialog: boolean = false;\r\n permissionValue: string = \"0\";\r\n newPermissions: RoleClaims[] = [];\r\n get stdPermissions(): SelectItem[] {\r\n return [\r\n {\r\n text: this.$t(\"permissions.teacher\").toString(),\r\n value: \"teacher:default\",\r\n disabled: this.newPermissions.some(x => x.type === \"teacher:default\"),\r\n },\r\n {\r\n text: this.$t(\"permissions.student\").toString(),\r\n value: \"student:default\",\r\n disabled: this.newPermissions.some(x => x.type === \"student:default\"),\r\n },\r\n {\r\n text: this.$t(\"permissions.session_training\").toString(),\r\n value: \"session_training:default\",\r\n disabled: this.newPermissions.some(\r\n x => x.type === \"session_training:default\",\r\n ),\r\n },\r\n {\r\n text: this.$t(\"permissions.can_share_with_all\").toString(),\r\n value: \"can_share_with_all:default\",\r\n disabled: this.newPermissions.some(\r\n x => x.type === \"can_share_with_all:default\",\r\n ),\r\n },\r\n {\r\n text: this.$t(\"permissions.seminar\").toString(),\r\n value: \"seminar:default\",\r\n disabled: this.newPermissions.some(x => x.type === \"seminar:default\"),\r\n },\r\n {\r\n text: this.$t(\"permissions.upload_audio\").toString(),\r\n value: \"upload:audio\",\r\n disabled: this.newPermissions.some(x => x.type === \"upload:audio\"),\r\n },\r\n {\r\n text: this.$t(\"permissions.upload_video\").toString(),\r\n value: \"upload:video\",\r\n disabled: this.newPermissions.some(x => x.type === \"upload:video\"),\r\n },\r\n {\r\n text: this.$t(\r\n \"feature_perms.live_transcription_relaxed_seconds\",\r\n ).toString(),\r\n value: \"live_transcription:relaxed\",\r\n disabled: this.newPermissions.some(\r\n x =>\r\n x.type === \"live_transcription:relaxed\" && x.claimType === \"user\",\r\n ),\r\n },\r\n {\r\n text: this.$t(\r\n \"feature_perms.live_transcription_fast_seconds\",\r\n ).toString(),\r\n value: \"live_transcription:fast\",\r\n disabled: this.newPermissions.some(\r\n x => x.type === \"live_transcription:fast\" && x.claimType === \"user\",\r\n ),\r\n },\r\n {\r\n text: this.$t(\"feature_perms.analysis_relaxed_count\").toString(),\r\n value: \"analysis:relaxed\",\r\n disabled: this.newPermissions.some(\r\n x => x.type === \"analysis:relaxed\" && x.claimType === \"user\",\r\n ),\r\n },\r\n {\r\n text: this.$t(\"feature_perms.analysis_fast_count\").toString(),\r\n value: \"analysis:fast\",\r\n disabled: this.newPermissions.some(\r\n x => x.type === \"analysis:fast\" && x.claimType === \"user\",\r\n ),\r\n },\r\n {\r\n text: this.$t(\"feature_perms.ai_feedback_relaxed_count\").toString(),\r\n value: \"ai_feedback:relaxed\",\r\n disabled: this.newPermissions.some(\r\n x => x.type === \"ai_feedback:relaxed\" && x.claimType === \"user\",\r\n ),\r\n },\r\n {\r\n text: this.$t(\"feature_perms.ai_feedback_fast_count\").toString(),\r\n value: \"ai_feedback:fast\",\r\n disabled: this.newPermissions.some(\r\n x => x.type === \"ai_feedback:fast\" && x.claimType === \"user\",\r\n ),\r\n },\r\n {\r\n text: this.$t(\"permissions.public_group_limited\").toString(),\r\n value: \"public_group:limited\",\r\n disabled: this.newPermissions.some(\r\n x => x.type === \"public_group:limited\",\r\n ),\r\n },\r\n {\r\n text: this.$t(\"permissions.public_group_full\").toString(),\r\n value: \"public_group:full\",\r\n disabled: this.newPermissions.some(x => x.type === \"public_group:full\"),\r\n },\r\n {\r\n text: this.$t(\"permissions.b2b_group\").toString(),\r\n value: \"b2b_group:default\",\r\n disabled: this.newPermissions.some(x => x.type === \"b2b_group:default\"),\r\n },\r\n {\r\n text: this.$t(\"permissions.tutorial_basic\").toString(),\r\n value: \"tutorial:basic\",\r\n disabled: this.newPermissions.some(x => x.type === \"tutorial:basic\"),\r\n },\r\n {\r\n text: this.$t(\"permissions.tutorial_advanced\").toString(),\r\n value: \"tutorial:advanced\",\r\n disabled: this.newPermissions.some(x => x.type === \"tutorial:advanced\"),\r\n },\r\n {\r\n text: this.$t(\"permissions.tutorial_expert\").toString(),\r\n value: \"tutorial:expert\",\r\n disabled: this.newPermissions.some(x => x.type === \"tutorial:expert\"),\r\n },\r\n {\r\n text: this.$t(\"permissions.coach_booking_review\").toString(),\r\n value: \"coach_booking:review\",\r\n disabled: this.newPermissions.some(\r\n x => x.type === \"coach_booking:review\",\r\n ),\r\n },\r\n {\r\n text: this.$t(\"permissions.coach_booking_1on1\").toString(),\r\n value: \"coach_booking:1on1\",\r\n disabled: this.newPermissions.some(\r\n x => x.type === \"coach_booking:1on1\",\r\n ),\r\n },\r\n {\r\n text: this.$t(\"permissions.challenge\").toString(),\r\n value: \"challenge:default\",\r\n disabled: this.newPermissions.some(x => x.type === \"challenge:default\"),\r\n },\r\n {\r\n text: this.$t(\"permissions.course\").toString(),\r\n value: \"course:default\",\r\n disabled: this.newPermissions.some(x => x.type === \"course:default\"),\r\n },\r\n {\r\n text: this.$t(\"permissions.vr_mode\").toString(),\r\n value: \"vr_mode:default\",\r\n disabled: this.newPermissions.some(x => x.type === \"vr_mode:default\"),\r\n },\r\n {\r\n text: this.$t(\"permissions.sso\").toString(),\r\n value: \"sso:default\",\r\n disabled: this.newPermissions.some(x => x.type === \"sso:default\"),\r\n },\r\n {\r\n text: this.$t(\"permissions.custom_idp\").toString(),\r\n value: \"custom_idp:default\",\r\n disabled: this.newPermissions.some(\r\n x => x.type === \"custom_idp:default\",\r\n ),\r\n },\r\n {\r\n text: this.$t(\"permissions.external_api\").toString(),\r\n value: \"external_api:default\",\r\n disabled: this.newPermissions.some(\r\n x => x.type === \"external_api:default\",\r\n ),\r\n },\r\n {\r\n text: this.$t(\"permissions.onboarding\").toString(),\r\n value: \"onboarding:default\",\r\n disabled: this.newPermissions.some(\r\n x => x.type === \"onboarding:default\",\r\n ),\r\n },\r\n {\r\n text: this.$t(\"permissions.support_tech\").toString(),\r\n value: \"support:tech\",\r\n disabled: this.newPermissions.some(x => x.type === \"support:tech\"),\r\n },\r\n {\r\n text: this.$t(\"permissions.support_dev\").toString(),\r\n value: \"support:dev\",\r\n disabled: this.newPermissions.some(x => x.type === \"support:dev\"),\r\n },\r\n {\r\n text: this.$t(\"permissions.sla\").toString(),\r\n value: \"sla:default\",\r\n disabled: this.newPermissions.some(x => x.type === \"sla:default\"),\r\n },\r\n {\r\n text: this.$t(\"permissions.redundant_service\").toString(),\r\n value: \"redundant_service:default\",\r\n disabled: this.newPermissions.some(\r\n x => x.type === \"redundant_service:default\",\r\n ),\r\n },\r\n ];\r\n }\r\n\r\n claimsWithCount = [\r\n \"live_transcription:relaxed\",\r\n \"live_transcription:fast\",\r\n \"ai_feedback:relaxed\",\r\n \"ai_feedback:fast\",\r\n \"analysis:relaxed\",\r\n \"analysis:fast\",\r\n ];\r\n\r\n addPermission(type: string) {\r\n if (!this.selectedUser) return;\r\n this.newPermissions.push({\r\n type,\r\n value: this.claimsWithCount.includes(type) ? \"0\" : \"\",\r\n removePermissionDialog: false,\r\n modifyPermissionDialog: false,\r\n claimType: \"user\",\r\n });\r\n this.newPermissions.sort((a: any, b: any) => {\r\n return (\r\n b.claimType.localeCompare(a.claimType) || a.type.localeCompare(b.type)\r\n );\r\n });\r\n }\r\n removePermission(type: string) {\r\n if (!this.selectedUser) return;\r\n if (!this.newPermissions.length) return;\r\n const idx = this.newPermissions.findIndex(\r\n x => x.removePermissionDialog && x.type === type,\r\n );\r\n if (idx !== -1) {\r\n this.newPermissions[idx].removePermissionDialog = false;\r\n this.newPermissions.splice(idx, 1);\r\n }\r\n }\r\n modifyPermission(type: string) {\r\n if (!this.selectedUser) return;\r\n const idx = this.newPermissions.findIndex(\r\n x => x.modifyPermissionDialog && x.type === type,\r\n );\r\n if (idx !== -1) {\r\n this.newPermissions[idx].modifyPermissionDialog = false;\r\n this.newPermissions[idx].value = this.permissionValue;\r\n }\r\n }\r\n handlePermissions(user: AdminUser) {\r\n api\r\n .get(`/api/Admin/${user.email}/GetUserRoleClaims`)\r\n .then((roleClaims: any) => {\r\n const inheritedPermissions = roleClaims.map((roleClaim: any) => {\r\n roleClaim.claimType = \"role\";\r\n return roleClaim;\r\n });\r\n this.selectedUser = user;\r\n api\r\n .get(`/api/Admin/${user.email}/GetUserClaims`)\r\n .then((userClaims: any) => {\r\n const precedencePermissions = userClaims.map((userClaim: any) => {\r\n userClaim.claimType = \"user\";\r\n return userClaim;\r\n });\r\n\r\n user.permissions = [\r\n ...precedencePermissions.sort((a: any, b: any) =>\r\n a.type.localeCompare(b.type),\r\n ),\r\n ...inheritedPermissions,\r\n ];\r\n this.newPermissions = user.permissions;\r\n this.permissionsDialog = true;\r\n })\r\n .catch(error => {\r\n console.error(\"Error while loading user claims:\", error);\r\n });\r\n })\r\n .catch(error => {\r\n console.error(\"Error while loading role claims:\", error);\r\n });\r\n }\r\n getPermissionName(type: string) {\r\n const permission = this.stdPermissions.find(x => x.value === type);\r\n return permission ? permission.text : \"Unknown Permission\";\r\n }\r\n\r\n async confirmPermissions() {\r\n // check user\r\n const user = this.selectedUser;\r\n if (!user) return;\r\n\r\n // init\r\n this.permissionsDialog = false;\r\n this.editingPermissions = true;\r\n\r\n try {\r\n // only submit user claims\r\n const updatedPermissions = this.newPermissions.filter(\r\n p => p.claimType === \"user\",\r\n );\r\n // send data\r\n const end = \"/api/Admin/EditFeatures\";\r\n const data = { email: user.email, permissions: updatedPermissions };\r\n await api.post(end, data);\r\n\r\n // update user\r\n const idx = this.users.findIndex(x => x.email === user.email);\r\n if (idx !== -1)\r\n this.users[idx].permissions = JSON.parse(\r\n JSON.stringify(this.newPermissions),\r\n );\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n // clear local stuff\r\n this.newPermissions = [];\r\n this.editingPermissions = false;\r\n }\r\n\r\n created() {\r\n this.getUsers();\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Users.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Users.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Users.vue?vue&type=template&id=506de6e5&scoped=true&\"\nimport script from \"./Users.vue?vue&type=script&lang=ts&\"\nexport * from \"./Users.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Users.vue?vue&type=style&index=0&id=506de6e5&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"506de6e5\",\n null\n \n)\n\nexport default component.exports","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserItem.vue?vue&type=style&index=0&id=22d4ec54&prod&lang=css&\"","import { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemAvatar } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\n\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c(VListItem,[_c(VOverlay,{staticClass:\"d-flex align-center justify-center\",attrs:{\"absolute\":\"\",\"value\":_vm.loading}},[_c(VProgressCircular,{attrs:{\"indeterminate\":\"\",\"size\":\"32\"}})],1),_c(VListItemAvatar,{staticClass:\"mr-4\"},[_c(VIcon,[_vm._v(_vm._s(_vm.userIcon))])],1),_c(VListItemContent,[_c(VListItemTitle,[_c('b',[_vm._v(_vm._s(_vm.user.email))]),_vm._v(\" (\"+_vm._s(_vm.user.username)+\") \")]),_c(VListItemSubtitle,{staticClass:\"mt-1\",staticStyle:{\"margin-left\":\"-1px\"}},[_vm._l((_vm.userRoles),function(role,index){return _c(VBadge,{key:index,staticClass:\"role-badge\",attrs:{\"content\":role.name,\"inline\":\"\",\"color\":role.name === 'admin' ? 'secondary' : 'primary'}})}),(_vm.user.isActive)?_c(VBadge,{staticClass:\"role-badge light-badge\",attrs:{\"content\":((_vm.$t('activeUser.active').toLowerCase()) + \" \" + _vm.activeUntil),\"inline\":\"\",\"color\":\"lightgray2\"}}):_c(VBadge,{staticClass:\"role-badge\",attrs:{\"content\":_vm.$t('activeUser.inactive').toLowerCase(),\"inline\":\"\",\"color\":\"grey\"}})],2)],1),(_vm.canManage && !_vm.user.emailVerified)?_c(VListItemAction,[_c(VTooltip,{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c(VBtn,_vm._g({attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.$emit('verifyEmail')}}},on),[_c(VIcon,[_vm._v(\"mdi-email-check\")])],1)]}}],null,false,60856841)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"admin.verifyEmail\")))])])],1):_vm._e(),_c('div',{staticClass:\"mx-1\"}),(_vm.canManage || _vm.isMe)?_c(VListItemAction,[_c(VTooltip,{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c(VBtn,_vm._g({attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.$emit('permissions')}}},on),[_c(VIcon,[_vm._v(\"mdi-account-details\")])],1)]}}],null,false,4254479107)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"permissions.editTitle\")))])])],1):_vm._e(),_c('div',{staticClass:\"mx-1\"}),(_vm.canManage || _vm.isMe)?_c(VListItemAction,[_c(VTooltip,{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c(VBtn,_vm._g({attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.$emit('changeRole')}}},on),[_c(VIcon,[_vm._v(\"mdi-account-convert\")])],1)]}}],null,false,148184412)},[_c('span',[_vm._v(_vm._s(_vm.$t(\"roles.editTitle\")))])])],1):_vm._e(),(_vm.canManage || _vm.isMe)?_c(VListItemAction,[_c(VTooltip,{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c(VBtn,_vm._g({attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.$emit('toggleActive')}}},on),[_c(VIcon,[_vm._v(_vm._s(_vm.user.isActive ? \"mdi-account-cancel\" : \"mdi-account-check\"))])],1)]}}],null,false,3041431815)},[_c('span',[_vm._v(_vm._s(_vm.user.isActive ? _vm.$t(\"activeUser.deactivate\") : _vm.$t(\"activeUser.activate\")))])])],1):_vm._e()],1),(!_vm.isLast)?_c(VDivider,{staticClass:\"my-1\"}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { DateTime } from \"luxon\";\r\nimport { Getter } from \"vuex-class\";\r\nimport { Component, Prop } from \"vue-property-decorator\";\r\n\r\nimport { Role, AdminUser } from \"@/core/models\";\r\n\r\n@Component\r\nexport default class UserItem extends Vue {\r\n @Prop({ default: () => {} }) user!: AdminUser;\r\n @Prop({ default: () => false }) loading!: boolean;\r\n @Prop({ default: () => false }) isLast!: boolean;\r\n @Getter(\"profile/getUserEmail\") currentUserEmail!: string;\r\n @Getter(\"profile/isAdmin\") isAdmin!: boolean;\r\n @Getter(\"profile/getUserHasPrivileges\") getUserHasPrivileges!: boolean;\r\n\r\n get userRoles() {\r\n return this.user.roles?.sort((a: any, b: any) =>\r\n b.name.localeCompare(a.name),\r\n );\r\n }\r\n\r\n get userIcon() {\r\n if (this.user.roles?.some(r => r.name === Role.Admin))\r\n return \"mdi-shield-account\";\r\n else return \"mdi-account\";\r\n }\r\n\r\n get activeUntil() {\r\n if (!this.user.activeUntil) return \"\";\r\n const date = DateTime.fromJSDate(new Date(this.user.activeUntil), {\r\n locale: this.$i18n.locale,\r\n // @ts-ignore\r\n }).toLocaleString(DateTime.DATETIME_MED);\r\n return ` ${this.$t(\"activeUser.until\")} ${date} UTC`;\r\n }\r\n\r\n get canManage() {\r\n if (this.user.email === this.currentUserEmail) return false;\r\n return this.isAdmin || this.getUserHasPrivileges;\r\n }\r\n\r\n get isMe() {\r\n return this.user.email === this.currentUserEmail;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserItem.vue?vue&type=template&id=22d4ec54&\"\nimport script from \"./UserItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserItem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UserItem.vue?vue&type=style&index=0&id=22d4ec54&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}