Issue#67 Only changed columns in UPDATE queries
This commit is contained in:
@@ -32,6 +32,11 @@ use OCA\UserSQL\Query\DataQuery;
|
||||
*/
|
||||
class UserRepository
|
||||
{
|
||||
const DISPLAY_NAME_FIELD = 0b001;
|
||||
const EMAIL_FIELD = 0b0010;
|
||||
const PASSWORD_FIELD = 0b0100;
|
||||
const QUOTA_FIELD = 0b1000;
|
||||
|
||||
/**
|
||||
* @var DataQuery The data query object.
|
||||
*/
|
||||
@@ -97,20 +102,48 @@ class UserRepository
|
||||
/**
|
||||
* Save an user entity object.
|
||||
*
|
||||
* @param User $user The user entity.
|
||||
* @param User $user The user entity.
|
||||
* @param int $fields Fields to update.
|
||||
*
|
||||
* @return bool TRUE on success, FALSE otherwise.
|
||||
*/
|
||||
public function save($user)
|
||||
public function save($user, $fields)
|
||||
{
|
||||
return $this->dataQuery->update(
|
||||
Query::SAVE_USER, [
|
||||
Query::NAME_PARAM => $user->name,
|
||||
Query::PASSWORD_PARAM => $user->password,
|
||||
Query::EMAIL_PARAM => $user->email,
|
||||
Query::QUOTA_PARAM => $user->quota,
|
||||
Query::UID_PARAM => $user->uid
|
||||
]
|
||||
);
|
||||
$status = true;
|
||||
|
||||
if ($fields & self::DISPLAY_NAME_FIELD) {
|
||||
$status =& $this->dataQuery->update(
|
||||
Query::UPDATE_DISPLAY_NAME, [
|
||||
Query::NAME_PARAM => $user->name,
|
||||
Query::UID_PARAM => $user->uid
|
||||
]
|
||||
);
|
||||
}
|
||||
if ($fields & self::PASSWORD_FIELD) {
|
||||
$status =& $this->dataQuery->update(
|
||||
Query::UPDATE_PASSWORD, [
|
||||
Query::PASSWORD_PARAM => $user->password,
|
||||
Query::UID_PARAM => $user->uid
|
||||
]
|
||||
);
|
||||
}
|
||||
if ($fields & self::EMAIL_FIELD) {
|
||||
$status =& $this->dataQuery->update(
|
||||
Query::UPDATE_EMAIL, [
|
||||
Query::EMAIL_PARAM => $user->email,
|
||||
Query::UID_PARAM => $user->uid
|
||||
]
|
||||
);
|
||||
}
|
||||
if ($fields & self::QUOTA_FIELD) {
|
||||
$status =& $this->dataQuery->update(
|
||||
Query::UPDATE_QUOTA, [
|
||||
Query::QUOTA_PARAM => $user->quota,
|
||||
Query::UID_PARAM => $user->uid
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
return $status;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user