Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Phantro

Gestão de acessos

Mensagens Recomendadas

Phantro

Boa noite a todos,

Já à algum tempo que não programo e colocaram-me um problema em mãos que não sei ainda bem como resolver e gostava de saber se me podem dar algumas dicas:

Tenho uma aplicação web que foi feita em perl e que necessita agora de ser criado uma opção para dar permissões a determinados menus.

Então tenho uma tabela de permissões em que tem:

id

path do menu

Type (que diz se é menu principal ou secundário)

Uma tabela utilizador:

id

nome

email

pass

Uma tabela permissões que tem:

user_id

permission_id

Precisa de criar uma pagina web ou uma aplicação em c# (deram-me estas duas hipóteses) para controlar os acessos, em que teria por exemplo o nome do menu e uma check box que depois o identificava para dar ou retirar a permissão.

Podem dar-me umas luzes de como fazer uma coisa deste género??

Desde já agradeço a atenção que me possam dar.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

sim, com checkbox podes fazer isso, basta ler o valor dela e fazer o update na bd.

que conhecimentos tens de php?


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
yoda

Há campos que não deves precisar, mas a lógica está aí.

--
-- Table structure for table `groups`
--
CREATE TABLE IF NOT EXISTS `groups` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `name` varchar(50) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Table structure for table `groups_roles`
--
CREATE TABLE IF NOT EXISTS `groups_roles` (
 `group_id` int(11) unsigned NOT NULL,
 `role_id` int(11) unsigned NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `roles`
--
CREATE TABLE IF NOT EXISTS `roles` (
 `id` int(11) unsigned NOT NULL,
 `name` varchar(25) NOT NULL,
 `key` varchar(50) NOT NULL,
 `value` tinyint(1) NOT NULL DEFAULT '1'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `users`
--
CREATE TABLE IF NOT EXISTS `users` (
 `id` int(11) unsigned NOT NULL,
 `email` varchar(255) NOT NULL,
 `password` varchar(128) NOT NULL,
 `first_name` varchar(25) NOT NULL,
 `last_name` varchar(25) NOT NULL,
 `username` varchar(25) DEFAULT NULL,
 `birthdate` date DEFAULT NULL,
 `gender` tinyint(1) DEFAULT NULL,
 `location` int(11) unsigned DEFAULT NULL,
 `created` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
 `status` tinyint(1) NOT NULL DEFAULT '0',
 PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `users_groups`
--
CREATE TABLE IF NOT EXISTS `users_groups` (
 `user_id` int(11) unsigned NOT NULL,
 `group_id` int(11) unsigned NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `users_roles`
--
CREATE TABLE IF NOT EXISTS `users_roles` (
 `user_id` int(11) unsigned NOT NULL,
 `role_id` int(11) unsigned NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Editado por yoda

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Phantro

A questão aqui nem é a base de dados,essa eu já tenho...

è criar a página para gerir estas permissões de forma dinamica

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Phantro

Secalhar não me expliquei bem!

Eu estive a tentar e não consigo fazer uma página que vá ler a base de dados e cria uma coisa do género:

OpçãoMenu --- check_box

OpçãoMenu1 --- check_box

E quando eu quisesse dar permissão apenas ao menu1 activava a checkbox e depois fazia o update na base de dados,mas não sei como atribuir a checkbox à opção que quero dar permissões isto de forma dinamica porque posso acrescentar menus ou apagar.

Tipo isto:

exemplorq.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
yoda

Com a base de dados que te dei só precisas de ler os menus existentes e associar o ID deles a uma chave que identifique permissões.

Exemplo :

utilizador x pertence ao grupo y que tem permissão para aceder ao menu "Process", com ID 1.

Adicionar uma entrada à tabela Roles em que a key da entrada é uma identificação do menu, como por exemplo menu:1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.