Jump to content

Recommended Posts

Posted

Viva!

Estou com uma dúvida na verificação das permissões de um utilizador, ou seja, tendo em conta que um utilizador poderá ter mais que um tipo de permissões estou a tentar uma querie que apresente os dados do utilizador e verifique as suas permissões.

O que tenho actualmente é a querie que me retorna os dados de determinado utilizador, e quero que apareçam a ou as permissões dos mesmos a fim de guardar numa variável de sessão para poder restringir os acessos a determinadas páginas num site.

Estou a fazer algumas experiências com o join....será que por aqui vou lá?

Posted

Podes usar left joins, assim se não tiver permissão, o campo fica a null.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Posted

Estou aqui com alguma dificuldade em implementar o join, será que poderiam dar uma vista de olhos a ver o que está a falhar...

SELECT posto.sigla AS posto,classe.sigla AS classe,apelido,divisao.sigla AS divisao,detalhe.nome AS detalhe,nivelacesso_detalhe.id_nivelacesso
FROM utilizador,posto,classe,detalhe,divisao
WHERE posto.id_posto=utilizador.id_posto
AND classe.id_classe=utilizador.id_classe AND utilizador.id_detalhe=detalhe.id_detalhe
AND detalhe.id_divisao=divisao.id_divisao
JOIN nivelacesso_detalhe ON detalhe.id_detalhe=nivelacesso_detalhe.id_detalhe

É de realçar que um utilizador poderá ter um ou mais tipos de permissão...

Posted

Assim vais obter uma linha por cada combinação de utilizador - permissão.

Não sei se é isso que queres...

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Posted

Não, o que pretendo é obter os dados de determinado utilizador e seus privilégios de acesso...

Não sei se me estou a explicar bem, por exemplo:

SELECT posto.sigla AS posto,classe.sigla AS classe,apelido,divisao.sigla AS divisao,detalhe.nome AS detalhe,nivelacesso_detalhe.id_nivelacesso
		FROM utilizador,posto,classe,detalhe,divisao,nivelacesso_detalhe
		WHERE posto.id_posto=utilizador.id_posto
		AND classe.id_classe=utilizador.id_classe AND utilizador.id_detalhe=detalhe.id_detalhe
		AND detalhe.id_divisao=divisao.id_divisao AND detalhe.id_detalhe=nivelacesso_detalhe.id_detalhe AND login ="xxx"

Esta querie dá-me as permissões do utilizador em duas linhas...ora o que pretendo é salvar estas duas linhas numa variável de sessão para mais tarde verificar se o utilizador pode aceder a determinada secção ou não.

Começo a ver que isto ás tantas na tem nada a haver com SQL e sim com manipulação de dados no PHP...

Qual a tua opinião?

Posted

Exacto, dá-te uma linha por permissão, tal como te havia dito no post acima.

O que necessitas é de converter linhas em colunas, mas não consegues fazer isso de forma dinâmica numa query SQL.

Tal como tens a query, podes percorrer, no PHP, todas as linhas até obteres um novo utilizador, todas essas linhas percorridas vais coleccionando as várias permissões do utilizador.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

  • 2 weeks later...
Posted

Desde já quero agradecer pelos vossos conselhos!

Exacto, dá-te uma linha por permissão, tal como te havia dito no post acima.

O que necessitas é de converter linhas em colunas, mas não consegues fazer isso de forma dinâmica numa query SQL.

Tal como tens a query, podes percorrer, no PHP, todas as linhas até obteres um novo utilizador, todas essas linhas percorridas vais coleccionando as várias permissões do utilizador.

Estava com essa ideia, mas com algumas dúvidas...acho que terei mesmo de percorrer todas as linhas e guardar as várias permissões do utilizador.

Precisas mesmo de guardar esses dados todos? Não era melhor pedires só o nivelacesso_detalhe.id_nivelacesso?

Sim dava jeito, visto que é um sistema de login. Desta forma numa querie e apenas neste processo recolho toda a informação necessária sobre o utilizador.

Achas má ideia?

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
×
×
  • Create New...

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.