forked from SimplesIP/pabx-app
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
2.1 KiB
48 lines
2.1 KiB
2 years ago
|
-- Esta view depende da tabela pbx_grupo
|
||
|
DROP VIEW if exists pbx_usuarios_dacs;
|
||
|
|
||
|
-- Realiza um back-up dos grupos atuais,
|
||
|
drop table if exists pbx_grupo_bk;
|
||
|
select * into pbx_grupo_bk from pbx_grupo;
|
||
|
|
||
|
-- Recria a tabela de grupos incluindo o campo user_id que sera usado
|
||
|
-- para diferenciar um grupo normal de um grupo de usuario, o sistema
|
||
|
-- ira incluir automaticamente um grupo com o mesmo nome do usuario
|
||
|
-- toda vez que for criado para armazenar permissoes individuais,
|
||
|
-- o indice unico gp_nome foi modificado para conter user_id a fim
|
||
|
-- de nao ter conflitos de nome de grupos e usuarios. Estes grupos
|
||
|
-- não serao mostrados na tela de administracao de grupo e serao apa
|
||
|
-- gados juntamente com o usuario quando o mesmo for deletado.
|
||
|
DROP TABLE if exists pbx_grupo;
|
||
|
CREATE TABLE pbx_grupo
|
||
|
(
|
||
|
gp_id integer NOT NULL DEFAULT nextval('pbx_grupo_gp_id_seq'::regclass),
|
||
|
gp_nome character varying(50) NOT NULL,
|
||
|
gp_status integer NOT NULL DEFAULT 1,
|
||
|
user_id integer not null default 0,
|
||
|
gp_user integer NOT NULL DEFAULT 0,
|
||
|
CONSTRAINT "pkGrupId" PRIMARY KEY (gp_id),
|
||
|
CONSTRAINT "idxGrupNome" UNIQUE (gp_nome, user_id)
|
||
|
);
|
||
|
|
||
|
-- Importa os usuarios atuais
|
||
|
insert into pbx_grupo(gp_id, gp_nome, gp_status, user_id, gp_user)
|
||
|
select gp_id, gp_nome, gp_status, 0, gp_user from pbx_grupo_bk;
|
||
|
|
||
|
-- Importa usuarios como grupos
|
||
|
insert into pbx_grupo(gp_nome, gp_status, user_id, gp_user)
|
||
|
select apelido, 1, id, id from pbx_usuarios where delete_ = 0 and apelido not in('admin', 'administrador', 'sinccontasenha', 'aplicativos');
|
||
|
|
||
|
--Inser o usuario no mesmo grupo criado com seu login.
|
||
|
insert into pbx_grupo_usuario(user_id, gp_id)
|
||
|
select user_id, gp_id from pbx_grupo where user_id > 0;
|
||
|
|
||
|
CREATE OR REPLACE VIEW pbx_usuarios_dacs AS
|
||
|
SELECT a.user_id AS id_usuario, c.apelido, c.nome, a.gp_id, d.gp_nome, b.id AS id_dac, e.nome AS nome_dac
|
||
|
FROM pbx_grupo_usuario a, pbx_fila_grupos b, pbx_usuarios c, pbx_grupo d, pbx_dacs e
|
||
|
WHERE b.gp_id = a.gp_id AND c.id = a.user_id AND d.gp_id = a.gp_id AND e.id = b.id;
|
||
|
|
||
|
|
||
|
select * from pbx_usuarios a where not exists(select '' from pbx_grupo where user_id = a.id);
|
||
|
|