Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Zapp fix

Rulment pt diferential 4motion

Lipire filtru la baterie ikea

Meserias nu mai vine sa termine l...
 Soferii prinsi bauti sau drogati ...

geometrie autorulota

Sfat achiziție laptop ~4500 ...

A fost adoptata legea privind alc...
 La multi ani Costi

Vreau sa ofer imprumut pentru con...

Usa de garaj la o magazie existenta

The worst of evil (2023)
 Proiect de lege: Romanii vor achi...

Dopuri / casti amortizare zgomot ...

Ce componente trebuie sa schimb d...

2 job-uri de 8 ore simultan.
 

Afisare link doar pentru un anumit user-Laravel

- - - - -
  • Please log in to reply
6 replies to this topic

#1
geotux

geotux

    Junior Member

  • Grup: Junior Members
  • Posts: 49
  • Înscris: 12.07.2019
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
iulian_1976

iulian_1976

    Active Member

  • Grup: Members
  • Posts: 1,576
  • Înscris: 10.05.2008
Sa inteleg ca inveti Laravel.

Doresti sa se afiseze pentru un anumit user sau pentru o categorie de useriPosted Image

#3
zaboss

zaboss

    Active Member

  • Grup: Members
  • Posts: 1,906
  • Înscris: 12.10.2005
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
iulian_1976

iulian_1976

    Active Member

  • Grup: Members
  • Posts: 1,576
  • Înscris: 10.05.2008
Nu se foloseste "cookie" pentru user in Laravel se folosesc lucruri serioase Posted Image

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
geotux

geotux

    Junior Member

  • Grup: Junior Members
  • Posts: 49
  • Înscris: 12.07.2019
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
iulian_1976

iulian_1976

    Active Member

  • Grup: Members
  • Posts: 1,576
  • Înscris: 10.05.2008
In template nu in alt loc este o zona denimita "Vue", ai nevoie de un "If"(intr-o pagina cu alti utilizatori este nevoie si de un "else"). O alta posibilitate, pentru o buna lizibilitate, coerenta se poate crea o pagina separata pentru respectivul user, pagina trebuie incadrata de "If" la debut, inchisa la final.
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
iulian_1976

iulian_1976

    Active Member

  • Grup: Members
  • Posts: 1,576
  • Înscris: 10.05.2008
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

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate