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.
68 lines
3.1 KiB
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. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|