Compare commits

...

7 Commits

Author SHA1 Message Date
Douglas Barone
9964c5fac6 Patch 2023-12-14 12:35:19 -04:00
Douglas Barone
74897a0ae8 Fix birthdate parsing 2023-12-14 12:34:58 -04:00
Douglas Barone
5b6768e0a3 Big update 2023-12-14 12:10:50 -04:00
Douglas Barone
806ceadeeb Added passwordGenerator 2023-12-14 12:10:13 -04:00
Douglas Barone
7ebac06ee5 Big dependencies update! 2023-12-14 10:12:32 -04:00
Douglas Barone
4db031b11d Lint 2023-12-14 08:02:35 -04:00
Douglas Barone
e04c97c6fe Update browser-list 2023-12-14 08:02:30 -04:00
16 changed files with 17044 additions and 22178 deletions

View File

@ -6,7 +6,7 @@ RUN apt-get install nodejs npm curl -y
RUN npm install n -g
RUN n install 18
RUN n install 21.4.0
COPY package*.json ./

View File

@ -1,12 +1,12 @@
{
"name": "ifms-pti-svr",
"version": "3.7.2",
"version": "3.8.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "ifms-pti-svr",
"version": "3.7.2",
"version": "3.8.1",
"license": "ISC",
"dependencies": {
"@prisma/client": "^5.5.2",

View File

@ -1,6 +1,6 @@
{
"name": "ifms-pti-svr",
"version": "3.7.2",
"version": "3.8.1",
"description": "Servidor do Portal de TI do IFMS",
"main": "src/index.js",
"prisma": {

View File

@ -93,7 +93,8 @@ const User = {
user: { id: parent.id }
}
})
}),
extensionAttribute7: parent => parent.extensionAttribute7?.toISOString()
}
export { User }

View File

@ -11,8 +11,13 @@ module.exports = {
},
parserOptions: {
parser: 'babel-eslint'
parser: '@babel/eslint-parser',
requireConfigFile: false
},
extends: ['plugin:vue/recommended', '@vue/prettier']
extends: ['plugin:vue/recommended', '@vue/prettier'],
rules: {
'vue/multi-word-component-names': 'off'
}
}

View File

@ -1,5 +1,5 @@
# build stage
FROM node:16.18.1 as build-stage
FROM node:21.4.0 as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install

39073
web/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "ifms-pti",
"version": "3.7.2",
"version": "3.8.1",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
@ -15,36 +15,37 @@
"chart.js": "^3.9.1",
"chartjs-adapter-date-fns": "^2.0.1",
"date-fns": "^2.29.3",
"eslint": "^6.8.0",
"generate-password": "^1.7.1",
"eslint": "^8.55.0",
"qrcode.vue": "^1.7.0",
"regenerator-runtime": "^0.14.0",
"roboto-fontface": "*",
"validator": "^13.7.0",
"vue": "^2.7.14",
"vue-apollo": "^3.1.0",
"vue": "^2.7.15",
"vue-apollo": "^3.1.1",
"vue-chartjs": "^4.1.2",
"vue-json-pretty": "^1.9.3",
"vue-router": "^3.6.5",
"vue-the-mask": "^0.11.1",
"vuetify": "^2.6.12",
"vuetify": "^2.7.1",
"zxcvbn": "^4.4.2"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^4.5.19",
"@vue/cli-plugin-eslint": "^4.5.19",
"@vue/cli-plugin-router": "^4.5.19",
"@vue/cli-service": "^4.5.19",
"@vue/eslint-config-prettier": "^6.0.0",
"babel-eslint": "^10.1.0",
"eslint-plugin-prettier": "^3.4.1",
"eslint-plugin-vue": "^7.20.0",
"@babel/eslint-parser": "^7.23.3",
"@vue/cli-plugin-babel": "^5.0.8",
"@vue/cli-plugin-eslint": "^5.0.8",
"@vue/cli-plugin-router": "^5.0.8",
"@vue/cli-service": "^5.0.8",
"@vue/eslint-config-prettier": "^8.0.0",
"babel-polyfill": "^6.26.0",
"eslint-plugin-prettier": "^5.0.1",
"eslint-plugin-vue": "^9.19.2",
"graphql-tag": "^2.12.6",
"prettier": "^2.8.1",
"sass": "^1.32",
"sass-loader": "^10.2.0",
"prettier": "^3.1.1",
"sass": "~1.32.6",
"sass-loader": "^10.5.0",
"vue-cli-plugin-apollo": "^0.22.2",
"vue-cli-plugin-vuetify": "^2.5.8",
"vue-template-compiler": "^2.7.14",
"vue-template-compiler": "^2.7.15",
"vuetify-loader": "^1.9.2"
}
}

View File

@ -69,7 +69,9 @@
</template>
<script>
import { version } from '../../package.json'
import packageInfo from '../../package.json'
const { version } = packageInfo
export default {
name: 'AboutCard',

View File

@ -23,9 +23,9 @@
:hint="strengthTips ? passwordStrength.message : ''"
:append-icon="show ? 'mdi-eye-outline' : 'mdi-eye-off-outline'"
validate-on-blur
clearable
@click:append="show = !show"
@keyup="onInput"
clearable
/>
<v-expand-transition>
@ -50,8 +50,8 @@
name="passwordConfirmation"
label="Confirme a nova senha"
validate-on-blur
@keyup="onInput"
clearable
@keyup="onInput"
/>
</v-expand-transition>
</div>

View File

@ -39,7 +39,7 @@
<script>
import UserSelect from './UserSelect'
import NewPasswordFields from './NewPasswordFields'
import generator from 'generate-password'
import { passwordGenerator } from '../utils/passwordGenerator'
export default {
name: 'ReplacePasswordForm',
@ -69,16 +69,7 @@ export default {
}),
methods: {
generatePassword() {
this.suggestion = generator.generate({
length: 8,
numbers: true,
symbols: true,
uppercase: true,
lowercase: true,
excludeSimilarCharacters: true,
strict: true
})
this.valid
this.suggestion = passwordGenerator()
},
defaultPassword() {

View File

@ -172,8 +172,8 @@ export default {
return this.$apollo.queries.users.loading
? 'Buscando, aguarde um momento...'
: this.students
? 'Nome ou CPF'
: 'Nome, SIAPE ou CPF'
? 'Nome ou CPF'
: 'Nome, SIAPE ou CPF'
},
chosen() {

View File

@ -8,6 +8,7 @@
import { destructedBytes } from '../../plugins/format-bytes'
export default {
name: 'Bytes',
props: {
value: {
type: String,

View File

@ -43,7 +43,9 @@ import MainDrawer from '@/components/MainDrawer'
import UserMenu from '@/components/UserMenu'
import { version } from '../../package.json'
import packageInfo from '../../package.json'
const { version } = packageInfo
export default {
name: 'Default',

View File

@ -1,3 +1,5 @@
import 'regenerator-runtime/runtime'
import Vue from 'vue'
import App from './App.vue'
import router from './router'

View File

@ -0,0 +1,58 @@
// Generate a random password of a given length
// containing at least one lowercase letter, one uppercase letter, one number, and one special character
export function passwordGenerator(length = 8) {
// Define character sets
const lowerCaseLetters = 'abcdefghijklmnopqrstuvwxyz'
const upperCaseLetters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
const numbers = '0123456789'
const specialCharacters = '!@#$%&*()[]{}/'
// Initialize character set
let characterSet = ''
// Initialize password
let password = ''
// Add a lowercase letter to the character set
characterSet += lowerCaseLetters
// Pick a random lowercase letter and add it to the password
password += lowerCaseLetters.charAt(
Math.floor(Math.random() * lowerCaseLetters.length)
)
// Add an uppercase letter to the character set
characterSet += upperCaseLetters
// Pick a random uppercase letter and add it to the password
password += upperCaseLetters.charAt(
Math.floor(Math.random() * upperCaseLetters.length)
)
// Add a number to the character set
characterSet += numbers
// Pick a random number and add it to the password
password += numbers.charAt(Math.floor(Math.random() * numbers.length))
// Add a special character to the character set
characterSet += specialCharacters
// Pick a random special character and add it to the password
password += specialCharacters.charAt(
Math.floor(Math.random() * specialCharacters.length)
)
// Add random characters to the password until it reaches the desired length
for (let i = 4; i < length; i++) {
password += characterSet.charAt(
Math.floor(Math.random() * characterSet.length)
)
}
// Shuffle the password
password = password
.split('')
.sort(function () {
return 0.5 - Math.random()
})
.join('')
return password
}