Hallo,
ik probeer een ACL permissie systeem in PHP te maken om gebruikers toestemming te geven om info van bepaalde instrumenten te zien, of deze terug in te trekken.
Ik heb een edit pagina aangemaakt met een tabel met een lijst van deze instrumenten, plus een icoon om te klikken om toestemming te geven/in te trekken.
Als ik op het icoon klik krijg ik echter jQuery melding "iets ging verkeerd". Als ik de code wat verander krijg ik ook undefined property errors. Ben al een paar dagen aan het zoeken wat fout is, maar zit wat vast. Kunnen jullie helpen aub, of weten jullie een bestaand voorbeeld van dergelijk systeem ?
Stuk van de code :
in de Edit.php :
<tbody>
<?php
foreach($this->instruments as $instrument): ?>
<tr data-id="<?=$instrument->id?>">
<td><?=$instrument->name?></td>
<td class="text-right">
<a class="btn btn-sm btn-outline-info mr-1" onclick="toggleAcl('<?=$instrument->id,$this->users->id?>');return false;">
<i data-id="<?=$instrument->id?>" class="<?=($instrument->id == 0)? 'fas fa-star': 'far fa-star'?>"></i>
</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
<script>
function toggleAcl(id,user_id){
jQuery.ajax({
url: '<?=PROOT?>adminusers/toggleAcl',
method: "POST",
data : {id : id, user_id : user_id},
success : function(resp) {
if(resp.success){
var el = jQuery('i[data-id="'+resp.model_id+'"]');
var klass = (resp.acl)? 'fas' : 'far';
el.removeClass("fas far");
el.addClass(klass);
alertMsg(resp.msg,'success');
} else {
alertMsg(resp.msg, 'danger');
}
}
});
}
</script>
in de controller :
public function toggleAclAction(){
$resp = ['success'=>false,'msg'=>'Iets ging verkeerd'];
if($this->request->isPost()){
$id = $this->request->get('id');
$user_id = $this->request->get('user_id');
$user = adminUsers::findByUserId2($user_id);
$instrument = Instruments::findById($id);
if($instrument){
Users::addAcl($user->id,$instrument->name);
$msg = "Right added.";
$resp = ['success' => true, 'msg' => $msg,'model_id' => $id,'acl'=>$user->acl];
}
else {
// Users::removeAcl($user_id,$instrument->name);
// $msg = "Right removed.";
// $resp = ['success' => true, 'msg' => $msg,'model_id' => $id,'acl'=>$user_id->acl];
}
}
$this->jsonResponse($resp);
}
Dank bij voorbaat !
1.334 views