Commits

Ricardo Obregón committed 49017b3

Agregado soporte de extensión (herencia) a la clase CrugeWebUser.

Comments (3)

  1. Christian Salazar repo owner

    este cambio ayuda a que el issue asociado a este error no aparezca mas ? o lo hace mas susceptible ? digo esto porque este error aparece cuando una persona usa al UserIdentity basico de Yii en el form de login, el cual no es una instancia de CrugeWebUser y eso hace que se le pida a UserIdentity funciones que no tiene.

  2. Ricardo Obregón author

    El objetivo de este cambio es que si eventualmente decido extender o aumentar las funciones de CrugeUser, uno pueda hacerlo, y no afectará el funcionamiento de Cruge en general, así respondiendo la primera pregunta: el error no aparecería más, y respondiendo a la pregunta 2: lo fortalecería (a menos que se implemente una herencia que cambie por completo el funcionamiento de las funciones públicas, lo cual es bien difícil, incluso para alguien con pocos conocimientos de OOP).

  3. Carlos Belisario

    Chris lo que dice Ricardo es lo correcto, le da una ventaja grande a los que quieran extender a CrugeUser, ya que si la extienden sería igual una instancia de esta, en cambio el get_class te ata a la clase CrugeUser.

    Ahora si pasan un UserIdentity de Yii al no ser instancia de CrugeUser lanzará la excepción.

Files changed (1)

components/CrugeWebUser.php

         $duration = 0
     ) {
 
-        if (get_class($identity) != 'CrugeUser') {
+        if (!($identity instanceof CrugeUser)) {
             throw new CrugeException(
                 "Por favor cambie las referencias a '" . get_class($identity) . "' por 'CrugeUser'"
             );
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.