PABX da Simples IP
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.

69 lines
3.1 KiB

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.