|
|
|
|
|
|
|
|
|
Perfil de Usu<EFBFBD>rios.
|
|
|
|
|
|
|
|
|
|
O perfil de usu<EFBFBD>rios do sistema <EFBFBD> baseado em grupos, estes sd<EFBFBD>o inicialmente ser<EFBFBD>o gerados pelo super usu<EFBFBD>rio(admin) que tem acesso nativo a todas as fun<EFBFBD>oes do sistema,
|
|
|
|
|
e portanto, pode adcionar qualquer funcionalidade a qualquer grupo. O admin dever<EFBFBD> criar um grupo inicial denominado Administrador que conter<EFBFBD> todas as funcionalidades
|
|
|
|
|
necess<EFBFBD>ria para administrar o sistema e ser<EFBFBD> adicionado o usu<EFBFBD>rio de mesmo nome, o qual dever<EFBFBD> ser usado para gerar o perfil inicial do sistema.
|
|
|
|
|
Um usu<EFBFBD>rio pode ser adicionado a diversos grupos herdando todas as funcionalidade dos mesmos, este usuario podera portanto fornecer as mesmas permiss<EFBFBD>es a outros
|
|
|
|
|
usuarios por ele gerenciado.
|
|
|
|
|
|
|
|
|
|
Tabelas:
|
|
|
|
|
Cria grupo de usu<EFBFBD>rios, para dar permiss<EFBFBD>es individuais aos usuarios icluindo automaticamente um grupo para cada usu<EFBFBD>rio com o mesmo nome,
|
|
|
|
|
os mesmos dever<EFBFBD>o aparecer na tela de gerenciamento de grupos e conter<EFBFBD>o apenas o login correspondente.
|
|
|
|
|
|
|
|
|
|
CREATE TABLE pbx_grupo
|
|
|
|
|
(
|
|
|
|
|
gp_id integer NOT NULL DEFAULT nextval('pbx_grupo_gp_id_seq'::regclass),
|
|
|
|
|
gp_nome character varying(50) NOT NULL, --> Nome do grupo
|
|
|
|
|
gp_status integer NOT NULL DEFAULT 1, --> Status 0 desativado 1 ativado
|
|
|
|
|
user_id integer NOT NULL DEFAULT 0, --> Cria um grupo para cada usuario, para fazer permissoes individualizadas.
|
|
|
|
|
gp_user integer NOT NULL DEFAULT 0, --> Dono do grupo, ou seja usuario que o criou. Usado para verificacao na delecao do usuario.
|
|
|
|
|
CONSTRAINT "pkGrupId" PRIMARY KEY (gp_id),
|
|
|
|
|
CONSTRAINT "idxGrupNome" UNIQUE (gp_nome, user_id)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
-- Index: "idxDonoGrupo"
|
|
|
|
|
-- DROP INDEX "idxDonoGrupo";
|
|
|
|
|
CREATE INDEX "idxDonoGrupo" ON pbx_grupo USING btree (gp_id, gp_user);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Relaciona usu<EFBFBD>rios a grupos, os usu<EFBFBD>rios constantes no grupo herdard<EFBFBD>o suas permiss<EFBFBD>es.
|
|
|
|
|
REATE TABLE pbx_grupo_usuario
|
|
|
|
|
(
|
|
|
|
|
user_id integer NOT NULL,
|
|
|
|
|
gp_id integer NOT NULL,
|
|
|
|
|
CONSTRAINT "pkGpUserId" PRIMARY KEY (user_id, gp_id),
|
|
|
|
|
CONSTRAINT "fkUsuarios" FOREIGN KEY (user_id)
|
|
|
|
|
REFERENCES pbx_usuarios (id) MATCH SIMPLE
|
|
|
|
|
ON UPDATE NO ACTION ON DELETE NO ACTION
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
-- Index: "idxUsuariosGrupos"
|
|
|
|
|
-- DROP INDEX "idxUsuariosGrupos";
|
|
|
|
|
CREATE INDEX "idxUsuariosGrupos" ON pbx_grupo_usuario USING btree (gp_id);
|
|
|
|
|
|
|
|
|
|
Relaciona o grupo e suas fun<EFBFBD>oes.
|
|
|
|
|
-- Table: pbx_grupo_funcoes
|
|
|
|
|
-- DROP TABLE pbx_grupo_funcoes;
|
|
|
|
|
CREATE TABLE pbx_grupo_funcoes
|
|
|
|
|
(
|
|
|
|
|
gp_id integer NOT NULL,
|
|
|
|
|
fun_id integer NOT NULL,
|
|
|
|
|
CONSTRAINT "pkGrupoFunc" PRIMARY KEY (gp_id, fun_id)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
Regras:
|
|
|
|
|
1 -> O usu<EFBFBD>rio pode pertencer a diversos grupos.
|
|
|
|
|
2 -> O usu<EFBFBD>rio herda as funcionalidades de todos os grupos.
|
|
|
|
|
3 -> A restriss<EFBFBD>o aplicada aos ramais <EFBFBD> um caso especial, pois ir<EFBFBD> bloquear o acesso a todos os usu<EFBFBD>rios do grupo, e ir<EFBFBD> prevalecer a qualquer libera<EFBFBD><EFBFBD>o.
|
|
|
|
|
Para se criar um bloqueio individualizado deve-se aplicar o bloqueio apenas ao usuario em questd<EFBFBD>o.
|
|
|
|
|
4 -> Um usu<EFBFBD>rio poder<EFBFBD> dar o mesmo n<EFBFBD>vel de permiss<EFBFBD>es que possue para outros usu<EFBFBD>rios.
|
|
|
|
|
5 -> Para se remover uma permissd<EFBFBD>o de um usu<EFBFBD>rio devera faze-lo de forma recursiva removendo tamb<EFBFBD>m dos outros usu<EFBFBD>rios que herdaram suas permiss<EFBFBD>es.
|
|
|
|
|
6 -> Para se remover um usu<EFBFBD>rio deve-se verificar suas depend<EFBFBD>ncias.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|