I have a user registry and a user table field where the permissions to edit files (eg 1-edit, 2-delete) will be stored and stored in MySQL.
Someone could help because I do not know how I could do this control with PHP.
I have a user registry and a user table field where the permissions to edit files (eg 1-edit, 2-delete) will be stored and stored in MySQL.
Someone could help because I do not know how I could do this control with PHP.
I suggest a simpler, faster model to pursue the goal. Suppose we have a table like this:
CREATE TABLE usuarios ( id int unsigned not null AUTO_INCREMENT, /* numero de usuário */ username varchar(30), /* nome de usuário */ ... perm tinyint, /* as permissões */ PRIMARY KEY (id));
The code to use this template will be more or less this (it does not have authorization process and session initiation):
<?php
// podemos definir as permissoes como constantes
define('READ', 0);
define('WRITE', 1);
define('DELETE', 2);
// usando comandos preparados, a inserção de dados será mais segura
$db = new mysqli("host","login","password","database");
$s = $db->prepare("SELECT * FROM usuarios where username=?");
$s->bind_param('s', $_POST['usuario']);
$s->execute();
$s->bind_result($id,$usuario,$perm);
$s->fetch();
// assim podemos verificar simplesmente se o usuario tem a permissão para preceder com a operação
if(pode_editar($perm))
echo "USUARIO $usuario PODE EDITAR";
// as funções para verificação de permissões
// cada função vai retornar true ou false dependente da variável dada
function pode_ler($perm) {
return ($perm >= READ ? true : false);
}
function pode_editar($perm) {
return ($perm <= WRITE ? true : false);
}
function pode_eliminar($perm) {
return ($perm == DELETE && $perm <= DELETE ? true : false);
}