Example #1
0
 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;
 }
Example #2
0
 /**
  * Assigns 'id' and verifies 'username' fields
  * @method beforeSave
  * @param {array} $modifiedFields
  * @return {array}
  * @throws {Users_Exception_UsernameExists}
  *	If username already exists
  */
 function beforeSave($updatedFields)
 {
     if (!$this->retrieved) {
         if (!isset($updatedFields['id'])) {
             $this->id = $updatedFields['id'] = self::db()->uniqueId(self::table(), 'id', null, array('filter' => array('Users_User', 'idFilter')));
         }
         if (!isset($updatedFields['username'])) {
             // put an empty username for now
             $this->username = $updatedFields['username'] = '';
         }
     }
     if (!empty($updatedFields['username'])) {
         $app = Q_Config::expect('Q', 'app');
         $unique = Q_Config::get('Users', 'model', $app, 'uniqueUsername', true);
         if ($unique) {
             $username = $updatedFields['username'];
             $criteria = compact('username');
             if (isset($this->id)) {
                 $criteria['id != '] = $this->id;
             }
             $rows = Users_User::select('COUNT(1)')->where($criteria)->limit(1)->fetchAll(PDO::FETCH_NUM);
             $row = $rows[0];
             if ($row[0] > 0) {
                 throw new Users_Exception_UsernameExists($criteria, 'username');
             }
         }
     }
     $user = $this;
     Q::event('Users/User/save', compact('user', 'updatedFields'), 'before');
     return parent::beforeSave($updatedFields);
 }