User.php 1.81 KB
<?php 
/**
 * User model
 *
 */

class User extends ActiveRecord
{
    /**
     * REST behavior
     */
    public function behaviors()
    {
        return array(
            'RestModelBehavior' => array(
                'class' => 'WRestModelBehavior',
            )
        );
    }
    
    
    /**
     * Returns current model
     */
    public static function model( $className = __CLASS__ )
    {
        return parent::model($className);
    }
    
    
    /**
     * Return table name to which this model is related
     */ 
    public function tableName()
    {
        return 'users';
    }
    
    
    /**
     * Return table primary key name
     */
    public function primaryKey()
    {
        return 'id';
    }
    
    
    /**
     * Transport relation
     */
    public function relations()
    {
        return array(
            "transport" => array(
                self::HAS_ONE, 
                "Transport",
                array( "id" => "domid" ),
                "joinType" => "LEFT JOIN"
            )
        );
    }
    
    
    /**
     * Model rules
     */
    public function rules()
    {
        return array(
            array('name, login, passwd, uid, gid, domid, smtp, imap, pop3, sieve, quota, manager, backup', 'default', 'on' => 'update'),
            array('login, passwd, domid', 'required', 'on' => 'update'),
            array('smtp, imap, pop3, sieve, manager', 'numerical', 'on' => 'update', 'allowEmpty' => false, 'integerOnly' => true),
            array('name, login, passwd, uid, gid, domid, smtp, imap, pop3, sieve, quota, manager', 'default', 'on' => 'insert'),
            array('login, passwd, domid', 'required', 'on' => 'insert'),
            array('smtp, imap, pop3, sieve, domid, manager', 'numerical', 'on' => 'insert', 'allowEmpty' => false, 'integerOnly' => true)
        );
    }
}