Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Phantro

Gestão de acessos

Recommended Posts

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.

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites
Phantro

O meu maior problema é criar tudo dinamicamente, porque os menus podem aumentar ou diminuir.

Share this post


Link to post
Share on other sites
Phantro

Peço desculpa pela demora,fiquei sem net!

E podes disponibilizar-me isso?

Muito obrigado

Share this post


Link to post
Share on other 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;

Edited by yoda

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites
Phantro

Peço desculpa pela demora,mas tenho estado fora!

Vou ver o que consigo fazer, muito obrigado!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.