Development

#3238 (User's getAllPermissions() generate too many SQL queries)

You must first sign up to be able to contribute.

Ticket #3238 (closed enhancement: fixed)

Opened 3 months ago

Last modified 1 month ago

User's getAllPermissions() generate too many SQL queries

Reported by: aprisobal Assigned to: fabien
Priority: minor Milestone:
Component: sfGuardPlugin Version: 1.0.12
Keywords: Cc:
Qualification: Unreviewed

Description

PluginsfGuardUser::getAllPermissions function generate too many SQL queries. Just replace getsfGuardGroupPermissions() with getsfGuardGroupPermissionsjoinsfGuardPermission(), i.e.:

  public function getAllPermissions()
  {
    if (!$this->allPermissions)
    {
      $this->allPermissions = $this->getPermissions();

      foreach ($this->getGroups() as $group)
      {
        //foreach ($group->getsfGuardGroupPermissions() as $gp)
        foreach ($group->getsfGuardGroupPermissionsjoinsfGuardPermission() as $gp)
        {
          $permission = $gp->getsfGuardPermission();

          $this->allPermissions[$permission->getName()] = $permission;
        }
      }
    }

    return $this->allPermissions;
  }

Change History

05/26/08 21:16:19 changed by fabien

  • status changed from new to closed.
  • resolution set to fixed.

(In [9292]) optimized getAllPermissions() number of database requests (closes #3238)