00001 <?php
00002
00012 class AuthUserToProject extends AuthModelBase {
00014 public static $ATTRIBUTES = array(
00015 'userId' => array(
00016 'nullable' => false,
00017 'commit' => SModel2::COMMIT_CHANGED,
00018 'type' => 'int',
00019 'foreign' => array('table' => 'User', 'on' => 'id', 'object' => 'user')
00020 ),
00021 'projectId' => array(
00022 'nullable' => false,
00023 'commit' => SModel2::COMMIT_CHANGED,
00024 'type' => 'int',
00025 'foreign' => array('table' => 'Project', 'on' => 'id', 'object' => 'project')
00026 ),
00027 'user' => array(
00028 'commit' => SModel2::COMMIT_FOREIGN,
00029 'type' => 'AuthUser'
00030 ),
00031 'project' => array(
00032 'commit' => SModel2::COMMIT_FOREIGN,
00033 'type' => 'AuthProject'
00034 )
00035 );
00036
00046 public function __construct($constraints = null, $multi = false) {
00047 parent::__construct();
00048
00049 $this->registerAttributes(self::$ATTRIBUTES);
00050 $this->registerTableName('UserToProject');
00051 $this->registerPrimaryKey(array('userId', 'projectId'), false);
00052
00053 if($constraints !== null)
00054 $this->populate($constraints, $multi);
00055 }
00056
00066 public static function getAttributesStatic() {
00067 return self::$ATTRIBUTES;
00068 }
00069
00075 public static function getTableNameStatic() {
00076 return 'UserToProject';
00077 }
00078
00090 public static function retrieve($constraints = array(), $checkOnly = false) {
00091 $list = self::getList($constraints, array(1), array(), $checkOnly);
00092 if(!$list || count($list) == 0)
00093 return $checkOnly ? false : null;
00094 else if($checkOnly)
00095 return $list > 0;
00096 else
00097 return $list[0];
00098 }
00099
00108 public static function exists($constraints = array()) {
00109 return self::retrieve($constraints, true);
00110 }
00111
00124 public static function retrieveMulti($constraints = array(), $checkOnly = false, $depth = 1) {
00125 $list = self::getListMulti($constraints, array(1), array(), $checkOnly, $depth);
00126 if(!$list || count($list) == 0)
00127 return $checkOnly ? false : null;
00128 else if($checkOnly)
00129 return $list > 0;
00130 else
00131 return $list[0];
00132 }
00133
00142 public static function existsMulti($constraints = array()) {
00143 return self::retrieveMulti($constraints, true);
00144 }
00145
00159 public static function getList($constraints = array(), $limit = array(), $order = array(), $count = false) {
00160 return parent::getListBase(self::getDBI(), $constraints, $limit, $order, $count, 'AuthUserToProject', true);
00161 }
00162
00178 public static function getListMulti($constraints = array(), $limit = array(), $order = array(), $count = false, $depth = 1) {
00179 return parent::getListBaseMulti(self::getDBI(), $constraints, $limit, $order, $count,
00180 'AuthUserToProject', true, $depth);
00181 }
00182
00183
00192 public function getParentUser() {
00193 return AuthUser::retrieve(array('User.id' => $this->userId));
00194 }
00195
00205 public function getParentUserMulti($depth = 1) {
00206 return AuthUser::retrieveMulti(array('Base.id' => $this->userId), $depth);
00207 }
00208
00217 public function getParentProject() {
00218 return AuthProject::retrieve(array('Project.id' => $this->projectId));
00219 }
00220
00230 public function getParentProjectMulti($depth = 1) {
00231 return AuthProject::retrieveMulti(array('Base.id' => $this->projectId), $depth);
00232 }
00233 }
00234
00235 ?>