manoaj 12 Denunciar post Postado Janeiro 1, 2013 galera to querendo criar um sisteminha de permições onde eu vo precisar proteger as informações do meu site e dos usuarios em grupos (todos,amigos e somente eu) , só que além de envolver as informações do perfil envolve as postagens dos usuários , alguem tem ideia de como fazer isso ? obs: as postagens vão ficar todas em uma página e serão exibidas todas de uma vez sem passagems de ids em urls Compartilhar este post Link para o post Compartilhar em outros sites
Marcos_imasters 288 Denunciar post Postado Janeiro 1, 2013 você sabe if e elseif? Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Lucca Carmo 13 Denunciar post Postado Janeiro 1, 2013 Define valores para identificador cada grupo e então antes de mostrar a postagem faça um IF //Suponha que 1 é valor para o grupo amigos e que você trouxe o valor do banco e colocou na variável $valor if (valor = 1 ) { // Mostra }else { echo "Você não tem permissão para isso" } Compartilhar este post Link para o post Compartilhar em outros sites
manoaj 12 Denunciar post Postado Janeiro 1, 2013 MARCOS_IMASTERS sei o que é else e if mas como você pode ver o titulo do topico e a duvid ameu problema é mais quanto a logica do que quanto a programação :ermm:/>/> Define valores para identificador cada grupo e então antes de mostrar a postagem faça um IF //Suponha que 1 é valor para o grupo amigos e que você trouxe o valor do banco e colocou na variável $valor if (valor = 1 ) { // Mostra }else { echo "Você não tem permissão para isso" } sim essa sua logica serviria pra parte do perfil ate ai acho que sua logica ta certa. Mas assim eu tenho uma pagina onde serão exibidas todas as postagens de um unica vez , e sendo exibidas d eum unica vez eu precisaria verificar todas ao mesmo tempo e sendo assim verificar os usuarios também , vamos supor que tenho 20 postagens publicas 20 postagens para meus amigos e 20 postagens que só podem ver pelo usuario joão. vamos ao problema . se 20 são publicas obiviamente eu posso ver. agora tenho mais 20 só para amigos e só meus amigos podem ver. e tenho mais 20 privadas que só o usuario joão pode ver. como eu faria pra verificar tudo isso e exibir de acordo com cada permição ? obs.:: a tabela que verifica se os usuarios são amigos se da pela seguinte confirmação, se eu for amigo do usuario eu vou ter nesta tabela o meu nome e o dele registrado em uma linha. caso contrario se eu não for amigo não deve conter o resgistro obviamente. acho que agora vcs podem entender melhor. Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Lucca Carmo 13 Denunciar post Postado Janeiro 2, 2013 Então , só você fazer um IF ELSE que engloba toda parte de postagem publica/amigos/usuario , dai só irá aparecer todas em que se adequam ao nível. Se entendi bem acho que é isso. Compartilhar este post Link para o post Compartilhar em outros sites
designertht 4 Denunciar post Postado Janeiro 2, 2013 amigo o nosso amigo marcos ai tah certo,pense se você sabe mesmo usar else e if você vai sabe a logica caro amigo vejamos.. <? session_start();//iniciamos uma sessão $login = $_POST['login'];//pegamos o login via post $senha = $_POST['senha'];//pegamos a senha via post $query = mysql_query("SELECT * FROM usuarios WHERE login = '$login' AND senha = '$senha'"); $resultadoquery= mysql_num_rows($query); //select dos usuarios cadastrados if ($resultadoquery== 0) {//se o resultado for 0 e considerado como verdadeiro echo "Dados incorretos";//exibir mensagem }else{//se for diferente de 0 falso $query2= mysql_query("SELECT * FROM usuarios WHERE login = '$login' AND senha='$senha'"); $resultadoquery2=mysql_fetch_array($query2); $permisao=$resultadoquery2['permissoes'];//descobrir qual a permissao do usuario if ($permisao=="administrador") { ////se o resultado for administrador e considerado como verdadeiro $_SESSION['login'] = $login;//criando sessao login com valor do login do post $_SESSION['senha'] = $senha;//criando sessao senha com valor da senha do post echo "Bem vindo Administrador";// mensagem de boas vindas }else{ // se for diferente de admin if ($permisao=="suporte"){////se o resultado for suporte e considerado como verdadeiro $_SESSION['login'] = $login;//criando sessao login com valor do login do post $_SESSION['senha'] = $senha;//criando sessao senha com valor da senha do post echo "Bem vindo suporte";// mensagem de boas vindas }else{// se for diferente de suporte echo"Não existe esse premissão nesse usuario"; } } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Marcos_imasters 288 Denunciar post Postado Janeiro 2, 2013 mano o que querem dizer é o seguinte veja <? session_start(); if(!isset($_SESSION['login'])) { echo "Para acessar essa pagina é preciso esta logado!"; } else{ $permissoes=mysql_fetch_row(mysql_query("select permissoes from usuarios where login='".$login."'")); if($permissoes[0] == 'administrador') { echo "Para acessar essa pagina é preciso ser Administrador"; } else{ ?> conteudo do seu site <? }?> Compartilhar este post Link para o post Compartilhar em outros sites
manoaj 12 Denunciar post Postado Janeiro 2, 2013 Então , só você fazer um IF ELSE que engloba toda parte de postagem publica/amigos/usuario , dai só irá aparecer todas em que se adequam ao nível. Se entendi bem acho que é isso. vo seguir ess eteu conceito. bom acho q vcs não intenderam direito, pq assim vcs colocaram os exemplos de vcs sempre como se o usuario tivesce um nivel de acesso definido em sua tabela . ai que ta o usuarios não vão ter nivel de acesso em sua tabela o que vai ter nivel de acesso são as informações e as postagens ou seja vou ter que verifica por informações secundarias . por exemplo se joao postou um noticia com nivel amigos eu teria que verificar se eu sou amigo dele e verificar se anoticia é publica privada ou para amigos. e tudo isso ao mesmo tempo pq alem de exibir a mensagem dele eu teria que vericar outras mensagems de outros usuarios pq todas elas vão ser postadas em uma pagina só então vo precisar saber se os outros são meus amigos ou se apostagem é publica e assim por diante . :D achoq ue to quase chegando no ponto aqui ^_^ Compartilhar este post Link para o post Compartilhar em outros sites
manoaj 12 Denunciar post Postado Janeiro 2, 2013 olha só vamos melhorar isso pra ver se fica melhor pra etender, eu tenho uma tabela aprovações e essa tabela aprovacoes serve pra saber se eu sou amigo de uma pessoa, se eu for amigo vai ter um registro nessa tabela com meu id e o id da pessoa que é minha amiga , ai eu tenho uma tabela postagens com nivel de acesso a essas postagens e os niveis são , publico , amigos, privado e particular . Ai nessa mesma tabela eu tenho um campo chamado id_post esse capa grava o id da pessoa que postou ta ate ai tudo bem . hora de exibir as noticias. agora eu preciso primeiramente verificar o nivel da noticia a ser exibida, se o nivel for amigos eu também vou precisar verificar na tabela aprovacoes se o usuario que postou é meu amigo ou seja se tiver o id dele e o meu em um registro na tabela aprovacoes ele é meu amigo , ai eu vo exibir todas as noticias desse usuario que é meu amigo quando o nivel da noticia for amigos. E não podemos equecer que temos mais niveis a ser verificados , se for publico e se for minha a postagem exibe para mim e pros meus amigos e pra quem quiser ver. e se for privado e for minha só exibe pra mim. e se for particular só exibe pro usuario que estiver na lista particular da postagem, tem um campo particular na tabela postagens que é inserido o id dos usuarios que poderam ver a noticias caso seja particular. achoq ue agora da pra entender o meu problema tenho que vazer varias verificações simultaneas antes de exibir as noticias . Compartilhar este post Link para o post Compartilhar em outros sites
manoaj 12 Denunciar post Postado Janeiro 3, 2013 up :pinch: Compartilhar este post Link para o post Compartilhar em outros sites
CleitonGarcia 31 Denunciar post Postado Janeiro 3, 2013 Meu amigo, eu fiz um sistema de permissões a algum tempo, foi bem complexo, mas é excelente! Veja o seguinte código: <?php $permissao = strstr ('' . $admin['permissoes'] . '', 'ver_conteudo'); if (!$permissao) { echo 'Tem permissão para isso'; } A string $admin['permissoes'] vem do banco de dados, na linha verifico se o usuário tem no bd o registro "ver_conteudo", se tiver a página exibe, caso contrário não. Esse sistema é complexo, até o ponto que voce quiser que seja. Eu tornei esse sistema de permissões gigante, porque todo meu meu sistema é utilizando ele. Então, cada página eu verifico se o usuário tem a permissão para aquilo. Na administração, na edição de usuários, eu seleciono cada permissão que tem, todo o sistema está lá para mim selecionar ou não se o usuário terá permissão suficiente. No caso de "meus amigos podem ver", "somente eu posso ver", poderia fazer da seguinte maneira: Arquivo de exibição do conteúdo: $permissao = strstr ('' . $post['permissoes'] . '', 'quem_pode_ver'); Nesse caso, substitua "quem_pode_ver" pelo nome da permissão que você quer, então, você terá que, na tabela dos posts, ou qualquer coisa que seja, ter um campo de permissões, e ali informar quem pode ver o que, e depois compara com o usuário logado essa permissão. Espero ter ajudado! @Edit: Você pode salvar também diversar permissões utilizando vírgula. Ex.: Campo "permissoes" da tabela "posts": 2,3,4. Agora somente os usuários de id 2,3 e 4 poderão ver aquela postagem, porque você salvou o ID delas no campo permissões. Compartilhar este post Link para o post Compartilhar em outros sites
manoaj 12 Denunciar post Postado Janeiro 3, 2013 Meu amigo, eu fiz um sistema de permissões a algum tempo, foi bem complexo, mas é excelente! Veja o seguinte código: <?php $permissao = strstr ('' . $admin['permissoes'] . '', 'ver_conteudo'); if (!$permissao) { echo 'Tem permissão para isso'; } A string $admin['permissoes'] vem do banco de dados, na linha verifico se o usuário tem no bd o registro "ver_conteudo", se tiver a página exibe, caso contrário não. Esse sistema é complexo, até o ponto que voce quiser que seja. Eu tornei esse sistema de permissões gigante, porque todo meu meu sistema é utilizando ele. Então, cada página eu verifico se o usuário tem a permissão para aquilo. Na administração, na edição de usuários, eu seleciono cada permissão que tem, todo o sistema está lá para mim selecionar ou não se o usuário terá permissão suficiente. No caso de "meus amigos podem ver", "somente eu posso ver", poderia fazer da seguinte maneira: Arquivo de exibição do conteúdo: $permissao = strstr ('' . $post['permissoes'] . '', 'quem_pode_ver'); Nesse caso, substitua "quem_pode_ver" pelo nome da permissão que você quer, então, você terá que, na tabela dos posts, ou qualquer coisa que seja, ter um campo de permissões, e ali informar quem pode ver o que, e depois compara com o usuário logado essa permissão. Espero ter ajudado! @Edit: Você pode salvar também diversar permissões utilizando vírgula. Ex.: Campo "permissoes" da tabela "posts": 2,3,4. Agora somente os usuários de id 2,3 e 4 poderão ver aquela postagem, porque você salvou o ID delas no campo permissões. acho que não daria certo pq tenho que verificar post por post pra ver a permição de cada e depois verificar se a pemição do post bate com o usuario logado pq os usuarios não terão permições em suas tabelas ,eles serão verificados de acordo com a permição do post ou seja se o post for para amigos tenho que verifica se o usuario é meu amigo se for particular tenho que verificar se ele esta na lista de particular, e se o post for publico eu vo exibir ele pra todos e se for privado só pra mim então acho que não daria certo :/ Compartilhar este post Link para o post Compartilhar em outros sites
brhvitor6 14 Denunciar post Postado Janeiro 4, 2013 talvez isso possa te ajudar: http://forum.imasters.com.br/topic/468720-controle-de-acesso/ ai você pode definir grupos e usuairos para acessar alguma coisa Compartilhar este post Link para o post Compartilhar em outros sites
manoaj 12 Denunciar post Postado Janeiro 4, 2013 talvez isso possa te ajudar: http://forum.imasters.com.br/topic/468720-controle-de-acesso/ ai você pode definir grupos e usuairos para acessar alguma coisa vlw vo estuda o codigo! Compartilhar este post Link para o post Compartilhar em outros sites
CleitonGarcia 31 Denunciar post Postado Janeiro 4, 2013 Caro colega, irei explicar mais sobre meu código. Na página "post.php" você irá pegar além da mensagem digitada, o nível dela, serão eles: 'Público','Privado','Somente amigos','Somente esses:'. Agora a página de exibição desses posts, que é será a "posts.php", você vai pegar as permissões do post e verificar se o usuário terá essa permissão. Vou definir as strings já, para que você entenda mais. $usuario['id'] = 503; // id do usuário $post['permissoes'] = '131,503,45'; // permissões do post, contendo o id do usuário logado $post['autor'] = 384; // usuário que fez a postagem $permissao = strstr ('publico', $post['permissoes']); // verifica se o post for público $permissao2 = strstr ('' . $usuario['id'] . '', $post['permissoes']); // verifica se o id do usuário está nas permissões do post if ($permissao or $permissao2 or $post['autor'] == $usuario['id']) // exibe caso for uma das duas comparações anteriores e exibe também se o usuário logado é o autor do post. { echo $post['mensagem']; // exibe o post } // se não tiver permissão, simplesmente não exibe-o. Nesse caso, vai exibir o post porque o ID do usuário logado está no campo de permissões do post, isso porque são amigos. Caso o post for público, ao invés de salvar números contendo os ids do campo permissões do usuários, salvará os valores, como 'publico','privado','amigos' ou os ids. Amigos poderão ver os posts uns dos outros, porque sempre que salvar o post, será informado ao campo permissões da tabela posts, todos ids ou a permissão designada, e todos terão também a permissão por padrão público. E bom, o privado vai ser exibido somente se o autor do post for o do usuário logado! Cara, explicar, a lógica disso é demorada, porém o resultado é curto. Compartilhar este post Link para o post Compartilhar em outros sites
manoaj 12 Denunciar post Postado Janeiro 4, 2013 Caro colega, irei explicar mais sobre meu código. Na página "post.php" você irá pegar além da mensagem digitada, o nível dela, serão eles: 'Público','Privado','Somente amigos','Somente esses:'. Agora a página de exibição desses posts, que é será a "posts.php", você vai pegar as permissões do post e verificar se o usuário terá essa permissão. Vou definir as strings já, para que você entenda mais. $usuario['id'] = 503; // id do usuário $post['permissoes'] = '131,503,45'; // permissões do post, contendo o id do usuário logado $post['autor'] = 384; // usuário que fez a postagem $permissao = strstr ('publico', $post['permissoes']); // verifica se o post for público $permissao2 = strstr ('' . $usuario['id'] . '', $post['permissoes']); // verifica se o id do usuário está nas permissões do post if ($permissao or $permissao2 or $post['autor'] == $usuario['id']) // exibe caso for uma das duas comparações anteriores e exibe também se o usuário logado é o autor do post. { echo $post['mensagem']; // exibe o post } // se não tiver permissão, simplesmente não exibe-o. Nesse caso, vai exibir o post porque o ID do usuário logado está no campo de permissões do post, isso porque são amigos. Caso o post for público, ao invés de salvar números contendo os ids do campo permissões do usuários, salvará os valores, como 'publico','privado','amigos' ou os ids. Amigos poderão ver os posts uns dos outros, porque sempre que salvar o post, será informado ao campo permissões da tabela posts, todos ids ou a permissão designada, e todos terão também a permissão por padrão público. E bom, o privado vai ser exibido somente se o autor do post for o do usuário logado! Cara, explicar, a lógica disso é demorada, porém o resultado é curto. pow manow vlw vo trabalhar em sima dessa logica e esse teu codigo obrigado :D Compartilhar este post Link para o post Compartilhar em outros sites
CleitonGarcia 31 Denunciar post Postado Janeiro 5, 2013 Disponha! Compartilhar este post Link para o post Compartilhar em outros sites