188_7d3f4775af1ff15c44b29f1ea1a99b51_habitaclick.png

GlobexCorp

wpe.jpg

Get Firefox

Descarga Firefox 3

Sponsor

Places

Tagboard

<h2>: cosa
<h1>l: l
Gnuget: Cual panda cual panda? :p, Bucio me suenas conocido pero la neta no te ubico, ibas conmigo a la secundaria? :p
zodman: donde esta el pandita ?
Bucio: :) gnuget hola te acuerdas de mi
yobageM: hola _o/
GnDx: jaja xD =D

My Plurk

Tip: Saber si un elemento pertenece a un usuario en cakephp

Para entender en que radica este tip vamos a poner un ejemplo.

Supongamos que estamos escribiendo un blog, en él  diversos usuarios pueden  escribir posts y editarlos ahora cuando un usuario va a editar un post previamente escrito  además de que el sistema tenga que verificar  si el usuario puede acceder a los posts debemos de verificar que el susodicho post pertenece al usuario en cuestión.

Es muy  sencillo el saber si  el post le pertenece al usuario, esto  haciendo una query y ver que el identificador del usuario  aparecezca en el user_id  de la tabla posts.

Pero que pasa cuando tenemos además de posts, tenemos otros tantos módulos como photos, videos,comments, profiles y muchas cosas mas, el escribir esa query  para verificar que cada elemento le pertenece al usuario  termina siendo  tedioso,  es por eso que escribí esta pequeña función:

function pertenece($id,$user_id){
    if($this->find(
                   array(
                         "{$this->name}.id"     => $id,
                         "{$this->name}.user_id"=> $user_id
                         ),
                   array(
                         "{$this->name}.id",
                         "{$this->name}.user_id"
                         ),
                   null,
                   0
                   )
       ){
      return True;
    }
    return False;
  }

Esta función debe de ser colocada en nuestro  app_model dentro de nuestra carpeta /app (si no existe app_mode.php podemos copiarlo de el que esta en /cake/libs/model/app_model.php y ponerlo dentro de nuestra carpeta /app)

Una vez hecho esto, ya solo  para verificar la pertenencia del elemento al usuario tenemos que hacer:

$this->Modelo->pertenece($id_del_elemento,$id_del_usuario);

Y devolverá true o false dependiendo de si pertenece el elemento o no.

NOTA: esta función  sirve si y solo si seguimos las convenciones de cake, es decir que siempre tenemos una columna id  y si va a estar relacionada esa columna con la tabla usuarios  debe de existir el campo user_id

Temas relacionados

{ cakephp, tip }

Sobre el autor

Gnuget

Programador de tiempo completo,  Con enorme gusto  por el software libre.

Comentarios