diff --git a/server/src/classes/User.js b/server/src/classes/User.js index 59f89db..f887897 100755 --- a/server/src/classes/User.js +++ b/server/src/classes/User.js @@ -83,11 +83,11 @@ class User { const rolesGroups = [ { role: 'superAdmin', - adGroup: process.env.SUPER_ADMIN_GROUP || 'PP-SERTI' + adGroup: process.env.SUPER_ADMIN_GROUP || 'PP-PTI-Admins' }, { role: 'tokenCreator', - adGroup: process.env.TOKEN_CREATOR_GROUP || 'PTI-TokenGen' + adGroup: process.env.TOKEN_CREATOR_GROUP || 'PP-PTI-TokenCreators' }, { role: 'student', @@ -99,7 +99,7 @@ class User { }, { role: 'watcher', - adGroup: process.env.WATCHER_GROUP || 'PTI-Vigias' + adGroup: process.env.WATCHER_GROUP || 'PP-PTI-Watchers' } ] @@ -392,9 +392,8 @@ class User { }) logSuccess({ - message: `Importado ${index + 1}/${allAdUsers.length} (${ - user.sAMAccountName - }) ${user.displayName}`, + message: `Importado ${index + 1}/${allAdUsers.length} (${user.sAMAccountName + }) ${user.displayName}`, data: dbUser }) } @@ -403,12 +402,11 @@ class User { logSuccess({ tags: ['user', 'AD'], - message: `${ - allAdUsers.length - } usuários importados do Active Directory em ${( - (endTime - startTime) / - 1000 - ).toFixed(2)}s` + message: `${allAdUsers.length + } usuários importados do Active Directory em ${( + (endTime - startTime) / + 1000 + ).toFixed(2)}s` }) return allAdUsers.length diff --git a/server/src/resolvers/Query/wifiUsers.js b/server/src/resolvers/Query/wifiUsers.js index 5d95cae..dbd9939 100644 --- a/server/src/resolvers/Query/wifiUsers.js +++ b/server/src/resolvers/Query/wifiUsers.js @@ -34,6 +34,7 @@ export async function wifiUsers(parent, { take = 10, skip = 0, search }) { ] } + return { data: prisma.user.findMany({ diff --git a/server/src/resolvers/User.js b/server/src/resolvers/User.js index 94b2ea7..e28010f 100755 --- a/server/src/resolvers/User.js +++ b/server/src/resolvers/User.js @@ -60,7 +60,26 @@ const User = { const campus = parent.extensionAttribute1?.split('-')[0] return campus || '--' - } + }, + + onlineWifiDevicesCount: (parent, data, { auth }) => prisma.wifiDevice.count({ + where: { + status: 'ONLINE', + user: { id: parent.id } + } + }), + + offlineWifiDevicesCount: (parent, data, { auth }) => prisma.wifiDevice.count({ + where: { + OR: [ + { status: 'OFFLINE' }, + { status: 'RECENT' }, + ], + + user: { id: parent.id } + } + }) + } export { User } diff --git a/server/src/typeDefs.js b/server/src/typeDefs.js index 1d96de1..ddb1a01 100644 --- a/server/src/typeDefs.js +++ b/server/src/typeDefs.js @@ -121,6 +121,10 @@ const typeDefs = gql` type User { id: ID wifiDevices: [WifiDevice!] + + onlineWifiDevicesCount: Int! + offlineWifiDevicesCount: Int! + lastLogin: String lastLoginPrior: String roles: [String!] diff --git a/web/src/components/DataTables/AccessPointClientsDataTable.vue b/web/src/components/DataTables/AccessPointClientsDataTable.vue index b7f18fd..c70f5d9 100644 --- a/web/src/components/DataTables/AccessPointClientsDataTable.vue +++ b/web/src/components/DataTables/AccessPointClientsDataTable.vue @@ -50,7 +50,7 @@ + + diff --git a/web/src/components/ui/DistinguishedNameBreadcrumb.vue b/web/src/components/ui/DistinguishedNameBreadcrumb.vue new file mode 100644 index 0000000..a7e4c98 --- /dev/null +++ b/web/src/components/ui/DistinguishedNameBreadcrumb.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/web/src/components/ui/RoleBadge.vue b/web/src/components/ui/RoleBadge.vue new file mode 100644 index 0000000..dea1ece --- /dev/null +++ b/web/src/components/ui/RoleBadge.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/web/src/components/signalStrength.vue b/web/src/components/ui/signalStrength.vue similarity index 91% rename from web/src/components/signalStrength.vue rename to web/src/components/ui/signalStrength.vue index c5d14cd..2ab63fb 100644 --- a/web/src/components/signalStrength.vue +++ b/web/src/components/ui/signalStrength.vue @@ -55,7 +55,8 @@ export default { return 'mdi-signal-cellular-outline' }, signalStrengthColor(signalStrength) { - if (signalStrength > -50) return 'green' + if (signalStrength > -30) return 'teal' + else if (signalStrength > -50) return 'green' else if (signalStrength > -60) return 'light-green' else if (signalStrength > -67) return 'lime' else if (signalStrength > -70) return 'amber' @@ -64,7 +65,8 @@ export default { else return 'red' }, signalStrengthText(signalStrength) { - if (signalStrength > -50) return 'Excelente' + if (signalStrength > -30) return 'Excelente' + else if (signalStrength > -50) return 'Muito bom' else if (signalStrength > -60) return 'Bom' else if (signalStrength > -67) return 'Regular' else if (signalStrength > -70) return 'Fraco' diff --git a/web/src/router/index.js b/web/src/router/index.js index a389f11..9eec9d7 100755 --- a/web/src/router/index.js +++ b/web/src/router/index.js @@ -228,7 +228,16 @@ const routes = [ roles: ['superAdmin'] }, component: () => - import(/* webpackChunkName: "wifi-users" */ '../views/WifiUsers.vue') + import(/* webpackChunkName: "wifi-users" */ '../views/WifiUsers') + }, + + { + path: '/wifi-users/:sAMAccountName/', + name: 'wifi-user-single', + component: () => + import( + /* webpackChunkName: "wifi-user-single" */ '../views/WifiUsers/single.vue' + ) }, { diff --git a/web/src/views/UserWifiDevices.vue b/web/src/views/UserWifiDevices.vue new file mode 100644 index 0000000..03d6704 --- /dev/null +++ b/web/src/views/UserWifiDevices.vue @@ -0,0 +1,9 @@ + + + + + diff --git a/web/src/views/WifiUsers.vue b/web/src/views/WifiUsers.vue deleted file mode 100644 index ced84d1..0000000 --- a/web/src/views/WifiUsers.vue +++ /dev/null @@ -1,223 +0,0 @@ - - diff --git a/web/src/views/WifiUsers/index.vue b/web/src/views/WifiUsers/index.vue new file mode 100644 index 0000000..0287990 --- /dev/null +++ b/web/src/views/WifiUsers/index.vue @@ -0,0 +1,141 @@ + + diff --git a/web/src/views/WifiUsers/single.vue b/web/src/views/WifiUsers/single.vue new file mode 100644 index 0000000..59d5278 --- /dev/null +++ b/web/src/views/WifiUsers/single.vue @@ -0,0 +1,99 @@ + + + + +