Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
De ce au devenit recenziile Googl...

Mail suspect

Care adeziv de placi ceramice ii ...

[GAMING PC BUILD] Aprox 12000 lei
 Care sint cele mai ieftine mortar...

Ferdinand Residence - Sectorul 2

programel Win Movie Maker

Meritau ginerii lui Lot sa moara?
 Ce credeți ca s-ar intampla ...

Instanta amana sistematic pronunş...

se poate folosi alt incarcator US...

Parchet impermeabil + fara praguri
 Despre prima de activare

One Cotroceni

Piese noi pentru reducerea zgomot...

Refuzat la imbarcare din cauza un...
 

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,569
  • Î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,569
  • Î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,569
  • Î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,569
  • Î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

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

www.neurohope.ro

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