Skip to content

Commit

Permalink
Limitação de usuários e conexõoes pelo .env
Browse files Browse the repository at this point in the history
  • Loading branch information
rtenorioh committed Mar 16, 2022
1 parent c8290bc commit a40e6c3
Show file tree
Hide file tree
Showing 6 changed files with 57 additions and 67 deletions.
4 changes: 3 additions & 1 deletion INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,9 @@ DB_DIALECT=mysql
DB_HOST=localhost
DB_USER=root
DB_PASS=
DB_NAME=pressticket
DB_NAME=pressticket
USER_LIMIT=3
CONNECTIONS_LIMIT=1
JWT_SECRET=saKPKKOxzczxcnscndcssccdsddngfsacxcs@Ers21vhhghee
JWT_REFRESH_SECRET=kldflhxvcxcxkkkjxhchghjgkdsdsccsd4234asdasdcxcc3

Expand Down
9 changes: 8 additions & 1 deletion backend/src/controllers/UserController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,13 @@ export const index = async (req: Request, res: Response): Promise<Response> => {
};

export const store = async (req: Request, res: Response): Promise<Response> => {

const { users } = await ListUsersService({});

if (users.length >= Number(process.env.USER_LIMIT)) {
throw new AppError("ERR_USER_CREATION_COUNT", 403);
}

const { email, password, name, profile, queueIds } = req.body;

if (
Expand Down Expand Up @@ -109,4 +116,4 @@ export const remove = async (
});

return res.status(200).json({ message: "User deleted" });
};
};
10 changes: 9 additions & 1 deletion backend/src/controllers/WhatsAppController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { Request, Response } from "express";
import { getIO } from "../libs/socket";
import { removeWbot } from "../libs/wbot";
import { StartWhatsAppSession } from "../services/WbotServices/StartWhatsAppSession";
import AppError from "../errors/AppError";

import CreateWhatsAppService from "../services/WhatsappService/CreateWhatsAppService";
import DeleteWhatsAppService from "../services/WhatsappService/DeleteWhatsAppService";
Expand All @@ -25,6 +26,13 @@ export const index = async (req: Request, res: Response): Promise<Response> => {
};

export const store = async (req: Request, res: Response): Promise<Response> => {

const WhatsApps = await ListWhatsAppsService();

if (WhatsApps.length >= Number(process.env.CONNECTIONS_LIMIT)) {
throw new AppError("ERR_CONNECTION_CREATION_COUNT", 403);
}

const {
name,
status,
Expand Down Expand Up @@ -113,4 +121,4 @@ export const remove = async (
});

return res.status(200).json({ message: "Whatsapp deleted." });
};
};
35 changes: 13 additions & 22 deletions frontend/src/translate/languages/en.js
Original file line number Diff line number Diff line change
Expand Up @@ -426,26 +426,18 @@ const messages = {
},
},
backendErrors: {
ERR_NO_OTHER_WHATSAPP:
"There must be at lest one default WhatsApp connection.",
ERR_NO_DEF_WAPP_FOUND:
"No default WhatsApp found. Check connections page.",
ERR_WAPP_NOT_INITIALIZED:
"This WhatsApp session is not initialized. Check connections page.",
ERR_WAPP_CHECK_CONTACT:
"Could not check WhatsApp contact. Check connections page.",
ERR_NO_OTHER_WHATSAPP: "There must be at lest one default WhatsApp connection.",
ERR_NO_DEF_WAPP_FOUND: "No default WhatsApp found. Check connections page.",
ERR_WAPP_NOT_INITIALIZED: "This WhatsApp session is not initialized. Check connections page.",
ERR_WAPP_CHECK_CONTACT: "Could not check WhatsApp contact. Check connections page.",
ERR_WAPP_INVALID_CONTACT: "This is not a valid whatsapp number.",
ERR_WAPP_DOWNLOAD_MEDIA:
"Could not download media from WhatsApp. Check connections page.",
ERR_WAPP_DOWNLOAD_MEDIA: "Could not download media from WhatsApp. Check connections page.",
ERR_INVALID_CREDENTIALS: "Authentication error. Please try again.",
ERR_SENDING_WAPP_MSG:
"Error sending WhatsApp message. Check connections page.",
ERR_SENDING_WAPP_MSG: "Error sending WhatsApp message. Check connections page.",
ERR_DELETE_WAPP_MSG: "Couldn't delete message from WhatsApp.",
ERR_OTHER_OPEN_TICKET:
"There's already an open ticket for this contact.",
ERR_OTHER_OPEN_TICKET: "There's already an open ticket for this contact.",
ERR_SESSION_EXPIRED: "Session expired. Please login.",
ERR_USER_CREATION_DISABLED:
"User creation was disabled by administrator.",
ERR_USER_CREATION_DISABLED: "User creation was disabled by administrator.",
ERR_NO_PERMISSION: "You don't have permission to access this resource.",
ERR_DUPLICATED_CONTACT: "A contact with this number already exists.",
ERR_NO_SETTING_FOUND: "No setting found with this ID.",
Expand All @@ -455,12 +447,11 @@ const messages = {
ERR_NO_WAPP_FOUND: "No WhatsApp found with this ID.",
ERR_CREATING_MESSAGE: "Error while creating message on database.",
ERR_CREATING_TICKET: "Error while creating ticket on database.",
ERR_FETCH_WAPP_MSG:
"Error fetching the message in WhtasApp, maybe it is too old.",
ERR_QUEUE_COLOR_ALREADY_EXISTS:
"This color is already in use, pick another one.",
ERR_WAPP_GREETING_REQUIRED:
"Greeting message is required if there is more than one queue.",
ERR_FETCH_WAPP_MSG: "Error fetching the message in WhtasApp, maybe it is too old.",
ERR_QUEUE_COLOR_ALREADY_EXISTS: "This color is already in use, pick another one.",
ERR_WAPP_GREETING_REQUIRED: "Greeting message is required if there is more than one queue.",
ERR_USER_CREATION_COUNT: "User limit reached, to change please contact support.",
ERR_CONNECTION_CREATION_COUNT: "Connection limit reached, to change contact support.",
},
},
},
Expand Down
35 changes: 13 additions & 22 deletions frontend/src/translate/languages/es.js
Original file line number Diff line number Diff line change
Expand Up @@ -433,41 +433,32 @@ const messages = {
},
},
backendErrors: {
ERR_NO_OTHER_WHATSAPP:
"Debe haber al menos una conexión de WhatsApp predeterminada.",
ERR_NO_DEF_WAPP_FOUND:
"No se encontró WhatsApp predeterminado. Verifique la página de conexiones.",
ERR_WAPP_NOT_INITIALIZED:
"Esta sesión de WhatsApp no ​​está inicializada. Verifique la página de conexiones.",
ERR_WAPP_CHECK_CONTACT:
"No se pudo verificar el contacto de WhatsApp. Verifique la página de conexiones.",
ERR_NO_OTHER_WHATSAPP: "Debe haber al menos una conexión de WhatsApp predeterminada.",
ERR_NO_DEF_WAPP_FOUND: "No se encontró WhatsApp predeterminado. Verifique la página de conexiones.",
ERR_WAPP_NOT_INITIALIZED: "Esta sesión de WhatsApp no ​​está inicializada. Verifique la página de conexiones.",
ERR_WAPP_CHECK_CONTACT: "No se pudo verificar el contacto de WhatsApp. Verifique la página de conexiones.",
ERR_WAPP_INVALID_CONTACT: "Este no es un número de whatsapp válido.",
ERR_WAPP_DOWNLOAD_MEDIA:
"No se pudieron descargar los medios de WhatsApp. Verifique la página de conexiones.",
ERR_WAPP_DOWNLOAD_MEDIA: "No se pudieron descargar los medios de WhatsApp. Verifique la página de conexiones.",
ERR_INVALID_CREDENTIALS: "Error de autenticación. Vuelva a intentarlo.",
ERR_SENDING_WAPP_MSG:
"Error al enviar el mensaje de WhatsApp. Verifique la página de conexiones.",
ERR_SENDING_WAPP_MSG: "Error al enviar el mensaje de WhatsApp. Verifique la página de conexiones.",
ERR_DELETE_WAPP_MSG: "No se pudo borrar el mensaje de WhatsApp.",
ERR_OTHER_OPEN_TICKET: "Ya hay un ticket abierto para este contacto.",
ERR_SESSION_EXPIRED: "Sesión caducada. Inicie sesión.",
ERR_USER_CREATION_DISABLED:
"La creación de usuarios fue deshabilitada por el administrador.",
ERR_USER_CREATION_DISABLED: "La creación de usuarios fue deshabilitada por el administrador.",
ERR_NO_PERMISSION: "No tienes permiso para acceder a este recurso.",
ERR_DUPLICATED_CONTACT: "Ya existe un contacto con este número.",
ERR_NO_SETTING_FOUND:
"No se encontró ninguna configuración con este ID.",
ERR_NO_SETTING_FOUND: "No se encontró ninguna configuración con este ID.",
ERR_NO_CONTACT_FOUND: "No se encontró ningún contacto con este ID.",
ERR_NO_TICKET_FOUND: "No se encontró ningún ticket con este ID.",
ERR_NO_USER_FOUND: "No se encontró ningún usuario con este ID.",
ERR_NO_WAPP_FOUND: "No se encontró WhatsApp con este ID.",
ERR_CREATING_MESSAGE: "Error al crear el mensaje en la base de datos.",
ERR_CREATING_TICKET: "Error al crear el ticket en la base de datos.",
ERR_FETCH_WAPP_MSG:
"Error al obtener el mensaje en WhtasApp, tal vez sea demasiado antiguo.",
ERR_QUEUE_COLOR_ALREADY_EXISTS:
"Este color ya está en uso, elija otro.",
ERR_WAPP_GREETING_REQUIRED:
"El mensaje de saludo es obligatorio cuando hay más de una cola.",
ERR_FETCH_WAPP_MSG: "Error al obtener el mensaje en WhtasApp, tal vez sea demasiado antiguo.",
ERR_QUEUE_COLOR_ALREADY_EXISTS: "Este color ya está en uso, elija otro.",
ERR_WAPP_GREETING_REQUIRED: "El mensaje de saludo es obligatorio cuando hay más de una cola.",
ERR_USER_CREATION_COUNT: "Se alcanzó el límite de usuarios; para cambiar, comuníquese con el soporte.",
ERR_CONNECTION_CREATION_COUNT: "Se alcanzó el límite de conexión, para cambiar, comuníquese con el soporte.",
},
},
},
Expand Down
31 changes: 11 additions & 20 deletions frontend/src/translate/languages/pt.js
Original file line number Diff line number Diff line change
Expand Up @@ -453,24 +453,17 @@ const messages = {
},
backendErrors: {
ERR_NO_OTHER_WHATSAPP: "Deve haver pelo menos um WhatsApp padrão.",
ERR_NO_DEF_WAPP_FOUND:
"Nenhum WhatsApp padrão encontrado. Verifique a página de conexões.",
ERR_WAPP_NOT_INITIALIZED:
"Esta sessão do WhatsApp não foi inicializada. Verifique a página de conexões.",
ERR_WAPP_CHECK_CONTACT:
"Não foi possível verificar o contato do WhatsApp. Verifique a página de conexões",
ERR_NO_DEF_WAPP_FOUND: "Nenhum WhatsApp padrão encontrado. Verifique a página de conexões.",
ERR_WAPP_NOT_INITIALIZED: "Esta sessão do WhatsApp não foi inicializada. Verifique a página de conexões.",
ERR_WAPP_CHECK_CONTACT: "Não foi possível verificar o contato do WhatsApp. Verifique a página de conexões",
ERR_WAPP_INVALID_CONTACT: "Este não é um número de Whatsapp válido.",
ERR_WAPP_DOWNLOAD_MEDIA:
"Não foi possível baixar mídia do WhatsApp. Verifique a página de conexões.",
ERR_INVALID_CREDENTIALS:
"Erro de autenticação. Por favor, tente novamente.",
ERR_SENDING_WAPP_MSG:
"Erro ao enviar mensagem do WhatsApp. Verifique a página de conexões.",
ERR_WAPP_DOWNLOAD_MEDIA: "Não foi possível baixar mídia do WhatsApp. Verifique a página de conexões.",
ERR_INVALID_CREDENTIALS: "Erro de autenticação. Por favor, tente novamente.",
ERR_SENDING_WAPP_MSG: "Erro ao enviar mensagem do WhatsApp. Verifique a página de conexões.",
ERR_DELETE_WAPP_MSG: "Não foi possível excluir a mensagem do WhatsApp.",
ERR_OTHER_OPEN_TICKET: "Já existe um ticket aberto para este contato.",
ERR_SESSION_EXPIRED: "Sessão expirada. Por favor entre.",
ERR_USER_CREATION_DISABLED:
"A criação do usuário foi desabilitada pelo administrador.",
ERR_USER_CREATION_DISABLED: "A criação do usuário foi desabilitada pelo administrador.",
ERR_NO_PERMISSION: "Você não tem permissão para acessar este recurso.",
ERR_DUPLICATED_CONTACT: "Já existe um contato com este número.",
ERR_NO_SETTING_FOUND: "Nenhuma configuração encontrada com este ID.",
Expand All @@ -480,13 +473,11 @@ const messages = {
ERR_NO_WAPP_FOUND: "Nenhum WhatsApp encontrado com este ID.",
ERR_CREATING_MESSAGE: "Erro ao criar mensagem no banco de dados.",
ERR_CREATING_TICKET: "Erro ao criar ticket no banco de dados.",
ERR_FETCH_WAPP_MSG:
"Erro ao buscar a mensagem no WhatsApp, talvez ela seja muito antiga.",
ERR_QUEUE_COLOR_ALREADY_EXISTS:
"Esta cor já está em uso, escolha outra.",
ERR_WAPP_GREETING_REQUIRED:
"A mensagem de saudação é obrigatório quando há mais de um Setor.",
ERR_FETCH_WAPP_MSG: "Erro ao buscar a mensagem no WhatsApp, talvez ela seja muito antiga.",
ERR_QUEUE_COLOR_ALREADY_EXISTS: "Esta cor já está em uso, escolha outra.",
ERR_WAPP_GREETING_REQUIRED: "A mensagem de saudação é obrigatório quando há mais de um Setor.",
ERR_USER_CREATION_COUNT: "Limite de usuários atingido, para alterar entre em contato com o suporte.",
ERR_CONNECTION_CREATION_COUNT: "Limite de conexões atingido, para alterar entre em contato com o suporte.",
},
},
},
Expand Down

6 comments on commit a40e6c3

@Anderson-Nascimento-Mendonca

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Não funcionou, limitei para 1 usuário, e mesmo assim com esse único usuário consigo abrir varias estancias.

@rtenorioh
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Boa tarde, primeiramente tem que se verificar sua necessidade, pois vc cita q limitou usuário e abre instância.

No .env do backend vc deve incluir essas vaiáveis:

USER_LIMIT=3 (Limita a quantidade usuários)
CONNECTIONS_LIMIT=1 (Limita a quantidade de conexões)

Atentar que para funcionar precisar fazer a verificação, resumindo fazer as alterações nos demais arquivos citados aqui.

@Anderson-Nascimento-Mendonca

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Poise @rtenorioh, fiz tal igual essas orientações, e não funcionou.

minha necessidade limitar usuário ao uma instancia e ter um limite de usuários online ao mesmo tempo, Exemplo: usuário Anderson está usando no Chrome, mais ao mesmo tempo ele não consiga usar no celular ou em outra aba até mesmo outro navegador, atualmente posso abrir varias abas e vários navegador e usar tudo ao mesmo tempo com mesmo usuário Anderson.

e segundo exemplo é: tenho usuários Anderson, Oliveira e Tiago e limito só para 3 usuários online ao mesmo tempo, e faço um cadastro de novo usuário Carla, mais o usuário Carla não consiga fazer login ou usando enquanto os 3 usuário(Anderson, Oliveira e Tiago) estiver online.

@rtenorioh
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Boa tarde, neste caso está configurações não irão lhe servir, pois ela limita apenas a criação de usuários e conexões, não limita quantos usuários online.

@Anderson-Nascimento-Mendonca

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

você tem alguma ideia de como fazer isso ?? ou por onde começar pesquisar

@rtenorioh
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ire lhe chamar no Telegram daqui a pouco.

Please sign in to comment.