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.
 
 
 
 
 
 

68 lines
3.1 KiB

Perfil de Usuários.
O perfil de usuários do sistema é baseado em grupos, estes sdão inicialmente serão gerados pelo super usuário(admin) que tem acesso nativo a todas as funçoes do sistema,
e portanto, pode adcionar qualquer funcionalidade a qualquer grupo. O admin deverá criar um grupo inicial denominado Administrador que conterá todas as funcionalidades
necessária para administrar o sistema e será adicionado o usuário de mesmo nome, o qual deverá ser usado para gerar o perfil inicial do sistema.
Um usuário pode ser adicionado a diversos grupos herdando todas as funcionalidade dos mesmos, este usuario podera portanto fornecer as mesmas permissões a outros
usuarios por ele gerenciado.
Tabelas:
Cria grupo de usuários, para dar permissões individuais aos usuarios icluindo automaticamente um grupo para cada usuário com o mesmo nome,
os mesmos deverão aparecer na tela de gerenciamento de grupos e conterã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ários a grupos, os usuários constantes no grupo herdardão suas permissõ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ç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ário pode pertencer a diversos grupos.
2 -> O usuário herda as funcionalidades de todos os grupos.
3 -> A restrissão aplicada aos ramais é um caso especial, pois irá bloquear o acesso a todos os usuários do grupo, e irá prevalecer a qualquer liberação.
Para se criar um bloqueio individualizado deve-se aplicar o bloqueio apenas ao usuario em questdão.
4 -> Um usuário poderá dar o mesmo nível de permissões que possue para outros usuários.
5 -> Para se remover uma permissdão de um usuário devera faze-lo de forma recursiva removendo também dos outros usuários que herdaram suas permissões.
6 -> Para se remover um usuário deve-se verificar suas dependências.