Afisare link doar pentru un anumit user-Laravel
Last Updated: Nov 28 2021 16:29, Started by
geotux
, Nov 27 2021 13:14
·
0
#1
Posted 27 November 2021 - 13:14
Salutare !
Am urmatorul task: cand se logheaza un anumit user(user: emil, pass:emil111), sa apara un link sus in stanga. <a href="https://xx.xxx.xx.xx/action_users/index.php" target="_blank">View Users Actions</a> Link-ul este catre o pagina/aplicatie separata, adica este in alt folder, si nu este facuta cu laravel. Deci link-ul sa fie afisat doar pentru acel user. Trebuie sa modific doar in routes.php sau trebuie sa creez si un nou template ? Numai bine ! |
#2
Posted 27 November 2021 - 22:42
Sa inteleg ca inveti Laravel.
Doresti sa se afiseze pentru un anumit user sau pentru o categorie de useri |
#3
Posted 27 November 2021 - 22:43
Dacă e doar pe un user pui un cookie pe userul respectiv și unde trebuie să apară bagi un If în care verifici dacă e prezent și arăți linkul.
|
#4
Posted 27 November 2021 - 22:54
Nu se foloseste "cookie" pentru user in Laravel se folosesc lucruri serioase
La baza este un If asta este, insa asta este un raspuns general, nu specific. Edited by iulian_1976, 27 November 2021 - 23:00. |
#5
Posted 28 November 2021 - 13:02
Da, pentru un anumit user: user=emil, pass=emil111
if-ul trebuie sa il pun inainte de DB::commit(); ? Asa arata login.php : <?php ### If logged, redirect ### if(User::logged()) { Useful::redirect('/'); } ### Set page title ### Dom::set('title', 'Login'); if(isset($_POST['user_email'], $_POST['user_password'])) { $user = DB::select( "SELECT * FROM users WHERE user_email = ? LIMIT 1", [ $_POST['user_email'] ] ); if(count($user) == 1) { $user = $user[0]; if($user['user_status'] != '1') { Useful::msg('e', 'Your account is not active. You must activate your account using the link sendet on your email. If you don'."'".'t find the activation link, please access the page <a href="/recover/">Recover account</a>.', ''); } elseif( password_verify($_POST['user_password'], $user['user_password']) ) { # Cookie time ## $cookie_time = isset($_POST['user_remember']) ? (60 * 60 * 24 * 365) : 0; # User token ## $user_token = bin2hex(openssl_random_pseudo_bytes(32)); # Encryption key ## $encryption_key = Useful::encrypt_key(); # First cookie - The User ID ## $cookies[APP_cookie_prefix.'user_id'] = $user['user_id']; # Third cookie - The Key as ASCII ## $cookies[APP_cookie_prefix.'user_key'] = Useful::encrypt_key_as_ascii($encryption_key); # Second cookie - The User ID, the user IP and the $user_token ## $cookies[APP_cookie_prefix.'user_token'] = Useful::encrypt( $user['user_id'].'|'.Useful::get_ip().'|'.$user_token, $encryption_key ); DB::begin(); $user_update = DB::update(" UPDATE users SET user_auth_ip = ?, user_auth_token = ?, user_auth_date = ? WHERE user_id = ? ", array( Useful::get_ip(), $user_token, DT::get(), $user['user_id'] ) ); if($user_update == 1) { # Set cookies ## foreach($cookies as $cookie_key => $cookie_value) { Useful::cookie( $cookie_key, $cookie_value, $cookie_time ); } DB::commit(); Useful::msg('s', 'You are now logged in!', '/search/'); } } } Useful::msg('e', 'Incorrect email or password. Please try again!', ''); } |
#6
Posted 28 November 2021 - 15:47
Asta este abordarea pe "burta" fara studiu. Abordarea de mai sus oricum nu este corecta, ar fi bine sa studiezi o carte sau tutoriale legate de Laravel. 1.Laravel utilizeaza "Blade" ca template acolo se foloseste if, else etc ce doresti tu sa filtrezi, sunt multe metode exista sa filtrzi chiar direct din "Blade", esti mai purist se poate si din controller apoi transmis spre template. ex: if ($request->session()->has('users')) { // } Route::get('/', function () { return view('welcome', ['name' => 'emil']); }); Poti folosi oricare template insa sa il cunosti si sa fie compatibil cu Laravel. 2.De studiat categoriile de useri si sa le definesti tu in baza de date in functie de ceea ce ai nevoie. Laravel are un capitol exact despre "User Roles and Permissions". @role('admin') Hello admin @endrole @role('emil') Hello, {{ $name }}. @endrole Edited by iulian_1976, 28 November 2021 - 15:48. |
#7
Posted 28 November 2021 - 16:29
Pasul 1. definesti in Bdd userul cu ce "role" doresti.
Pasul 2 in "user repository" sau in controller, public function isAdministrator() { return $this->hasRole('Admin'); // sau alta categorie de user } In Blade ceva de genul. @if (auth()->check()) @if (auth()->user()->isAdministrator()) Hello Admin @else Hello standard user @endif @endif Luand in considerare ca ai macar o idee de arhitectura MVC: https://ro.wikipedia...view-controller Nu este o categorie dedicata zonei incepatori. Edited by iulian_1976, 28 November 2021 - 16:31. |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users