Compare commits
No commits in common. "9964c5fac644c0f4d65164c7e0ef3a8525cbf719" and "0b0342db62499a51a278b2dcf1085a850aeadecf" have entirely different histories.
9964c5fac6
...
0b0342db62
|
@ -6,7 +6,7 @@ RUN apt-get install nodejs npm curl -y
|
||||||
|
|
||||||
RUN npm install n -g
|
RUN npm install n -g
|
||||||
|
|
||||||
RUN n install 21.4.0
|
RUN n install 18
|
||||||
|
|
||||||
COPY package*.json ./
|
COPY package*.json ./
|
||||||
|
|
||||||
|
|
4
server/package-lock.json
generated
4
server/package-lock.json
generated
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "ifms-pti-svr",
|
"name": "ifms-pti-svr",
|
||||||
"version": "3.8.1",
|
"version": "3.7.2",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "ifms-pti-svr",
|
"name": "ifms-pti-svr",
|
||||||
"version": "3.8.1",
|
"version": "3.7.2",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@prisma/client": "^5.5.2",
|
"@prisma/client": "^5.5.2",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "ifms-pti-svr",
|
"name": "ifms-pti-svr",
|
||||||
"version": "3.8.1",
|
"version": "3.7.2",
|
||||||
"description": "Servidor do Portal de TI do IFMS",
|
"description": "Servidor do Portal de TI do IFMS",
|
||||||
"main": "src/index.js",
|
"main": "src/index.js",
|
||||||
"prisma": {
|
"prisma": {
|
||||||
|
|
|
@ -93,8 +93,7 @@ const User = {
|
||||||
|
|
||||||
user: { id: parent.id }
|
user: { id: parent.id }
|
||||||
}
|
}
|
||||||
}),
|
})
|
||||||
extensionAttribute7: parent => parent.extensionAttribute7?.toISOString()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export { User }
|
export { User }
|
||||||
|
|
|
@ -11,13 +11,8 @@ module.exports = {
|
||||||
},
|
},
|
||||||
|
|
||||||
parserOptions: {
|
parserOptions: {
|
||||||
parser: '@babel/eslint-parser',
|
parser: 'babel-eslint'
|
||||||
requireConfigFile: false
|
|
||||||
},
|
},
|
||||||
|
|
||||||
extends: ['plugin:vue/recommended', '@vue/prettier'],
|
extends: ['plugin:vue/recommended', '@vue/prettier']
|
||||||
|
|
||||||
rules: {
|
|
||||||
'vue/multi-word-component-names': 'off'
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# build stage
|
# build stage
|
||||||
FROM node:21.4.0 as build-stage
|
FROM node:16.18.1 as build-stage
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY package*.json ./
|
COPY package*.json ./
|
||||||
RUN npm install
|
RUN npm install
|
||||||
|
|
38969
web/package-lock.json
generated
38969
web/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "ifms-pti",
|
"name": "ifms-pti",
|
||||||
"version": "3.8.1",
|
"version": "3.7.2",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"serve": "vue-cli-service serve",
|
"serve": "vue-cli-service serve",
|
||||||
|
@ -15,37 +15,36 @@
|
||||||
"chart.js": "^3.9.1",
|
"chart.js": "^3.9.1",
|
||||||
"chartjs-adapter-date-fns": "^2.0.1",
|
"chartjs-adapter-date-fns": "^2.0.1",
|
||||||
"date-fns": "^2.29.3",
|
"date-fns": "^2.29.3",
|
||||||
"eslint": "^8.55.0",
|
"eslint": "^6.8.0",
|
||||||
|
"generate-password": "^1.7.1",
|
||||||
"qrcode.vue": "^1.7.0",
|
"qrcode.vue": "^1.7.0",
|
||||||
"regenerator-runtime": "^0.14.0",
|
|
||||||
"roboto-fontface": "*",
|
"roboto-fontface": "*",
|
||||||
"validator": "^13.7.0",
|
"validator": "^13.7.0",
|
||||||
"vue": "^2.7.15",
|
"vue": "^2.7.14",
|
||||||
"vue-apollo": "^3.1.1",
|
"vue-apollo": "^3.1.0",
|
||||||
"vue-chartjs": "^4.1.2",
|
"vue-chartjs": "^4.1.2",
|
||||||
"vue-json-pretty": "^1.9.3",
|
"vue-json-pretty": "^1.9.3",
|
||||||
"vue-router": "^3.6.5",
|
"vue-router": "^3.6.5",
|
||||||
"vue-the-mask": "^0.11.1",
|
"vue-the-mask": "^0.11.1",
|
||||||
"vuetify": "^2.7.1",
|
"vuetify": "^2.6.12",
|
||||||
"zxcvbn": "^4.4.2"
|
"zxcvbn": "^4.4.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/eslint-parser": "^7.23.3",
|
"@vue/cli-plugin-babel": "^4.5.19",
|
||||||
"@vue/cli-plugin-babel": "^5.0.8",
|
"@vue/cli-plugin-eslint": "^4.5.19",
|
||||||
"@vue/cli-plugin-eslint": "^5.0.8",
|
"@vue/cli-plugin-router": "^4.5.19",
|
||||||
"@vue/cli-plugin-router": "^5.0.8",
|
"@vue/cli-service": "^4.5.19",
|
||||||
"@vue/cli-service": "^5.0.8",
|
"@vue/eslint-config-prettier": "^6.0.0",
|
||||||
"@vue/eslint-config-prettier": "^8.0.0",
|
"babel-eslint": "^10.1.0",
|
||||||
"babel-polyfill": "^6.26.0",
|
"eslint-plugin-prettier": "^3.4.1",
|
||||||
"eslint-plugin-prettier": "^5.0.1",
|
"eslint-plugin-vue": "^7.20.0",
|
||||||
"eslint-plugin-vue": "^9.19.2",
|
|
||||||
"graphql-tag": "^2.12.6",
|
"graphql-tag": "^2.12.6",
|
||||||
"prettier": "^3.1.1",
|
"prettier": "^2.8.1",
|
||||||
"sass": "~1.32.6",
|
"sass": "^1.32",
|
||||||
"sass-loader": "^10.5.0",
|
"sass-loader": "^10.2.0",
|
||||||
"vue-cli-plugin-apollo": "^0.22.2",
|
"vue-cli-plugin-apollo": "^0.22.2",
|
||||||
"vue-cli-plugin-vuetify": "^2.5.8",
|
"vue-cli-plugin-vuetify": "^2.5.8",
|
||||||
"vue-template-compiler": "^2.7.15",
|
"vue-template-compiler": "^2.7.14",
|
||||||
"vuetify-loader": "^1.9.2"
|
"vuetify-loader": "^1.9.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,9 +69,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import packageInfo from '../../package.json'
|
import { version } from '../../package.json'
|
||||||
|
|
||||||
const { version } = packageInfo
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'AboutCard',
|
name: 'AboutCard',
|
||||||
|
|
|
@ -23,9 +23,9 @@
|
||||||
:hint="strengthTips ? passwordStrength.message : ''"
|
:hint="strengthTips ? passwordStrength.message : ''"
|
||||||
:append-icon="show ? 'mdi-eye-outline' : 'mdi-eye-off-outline'"
|
:append-icon="show ? 'mdi-eye-outline' : 'mdi-eye-off-outline'"
|
||||||
validate-on-blur
|
validate-on-blur
|
||||||
clearable
|
|
||||||
@click:append="show = !show"
|
@click:append="show = !show"
|
||||||
@keyup="onInput"
|
@keyup="onInput"
|
||||||
|
clearable
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<v-expand-transition>
|
<v-expand-transition>
|
||||||
|
@ -50,8 +50,8 @@
|
||||||
name="passwordConfirmation"
|
name="passwordConfirmation"
|
||||||
label="Confirme a nova senha"
|
label="Confirme a nova senha"
|
||||||
validate-on-blur
|
validate-on-blur
|
||||||
clearable
|
|
||||||
@keyup="onInput"
|
@keyup="onInput"
|
||||||
|
clearable
|
||||||
/>
|
/>
|
||||||
</v-expand-transition>
|
</v-expand-transition>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
<script>
|
<script>
|
||||||
import UserSelect from './UserSelect'
|
import UserSelect from './UserSelect'
|
||||||
import NewPasswordFields from './NewPasswordFields'
|
import NewPasswordFields from './NewPasswordFields'
|
||||||
import { passwordGenerator } from '../utils/passwordGenerator'
|
import generator from 'generate-password'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'ReplacePasswordForm',
|
name: 'ReplacePasswordForm',
|
||||||
|
@ -69,7 +69,16 @@ export default {
|
||||||
}),
|
}),
|
||||||
methods: {
|
methods: {
|
||||||
generatePassword() {
|
generatePassword() {
|
||||||
this.suggestion = passwordGenerator()
|
this.suggestion = generator.generate({
|
||||||
|
length: 8,
|
||||||
|
numbers: true,
|
||||||
|
symbols: true,
|
||||||
|
uppercase: true,
|
||||||
|
lowercase: true,
|
||||||
|
excludeSimilarCharacters: true,
|
||||||
|
strict: true
|
||||||
|
})
|
||||||
|
this.valid
|
||||||
},
|
},
|
||||||
|
|
||||||
defaultPassword() {
|
defaultPassword() {
|
||||||
|
|
|
@ -172,8 +172,8 @@ export default {
|
||||||
return this.$apollo.queries.users.loading
|
return this.$apollo.queries.users.loading
|
||||||
? 'Buscando, aguarde um momento...'
|
? 'Buscando, aguarde um momento...'
|
||||||
: this.students
|
: this.students
|
||||||
? 'Nome ou CPF'
|
? 'Nome ou CPF'
|
||||||
: 'Nome, SIAPE ou CPF'
|
: 'Nome, SIAPE ou CPF'
|
||||||
},
|
},
|
||||||
|
|
||||||
chosen() {
|
chosen() {
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
import { destructedBytes } from '../../plugins/format-bytes'
|
import { destructedBytes } from '../../plugins/format-bytes'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Bytes',
|
|
||||||
props: {
|
props: {
|
||||||
value: {
|
value: {
|
||||||
type: String,
|
type: String,
|
||||||
|
|
|
@ -43,9 +43,7 @@ import MainDrawer from '@/components/MainDrawer'
|
||||||
|
|
||||||
import UserMenu from '@/components/UserMenu'
|
import UserMenu from '@/components/UserMenu'
|
||||||
|
|
||||||
import packageInfo from '../../package.json'
|
import { version } from '../../package.json'
|
||||||
|
|
||||||
const { version } = packageInfo
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Default',
|
name: 'Default',
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
import 'regenerator-runtime/runtime'
|
|
||||||
|
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import App from './App.vue'
|
import App from './App.vue'
|
||||||
import router from './router'
|
import router from './router'
|
||||||
|
|
|
@ -1,58 +0,0 @@
|
||||||
// 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
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user