function beforeSave($updated_fields) { parent::beforeSave($updated_fields); if (isset($updated_fields['username'])) { $app = Pie_Config::expect('pie', 'app'); $unique = Pie_Config::get('users', 'model', $app, 'username_unique', true); if ($unique) { $criteria = array('username' => $updated_fields['username']); if (isset($this->id)) { $criteria['id != '] = $this->id; } $row = Users_User::db()->select('COUNT(1)', Users_User::table())->where($criteria)->limit(1)->execute()->fetch(); if ($row[0] > 0) { throw new Users_Exception_UsernameExists(null, 'username'); } } } return $updated_fields; }