|
32 | 32 | */ |
33 | 33 | class UserRepository |
34 | 34 | { |
| 35 | + const DISPLAY_NAME_FIELD = 0b001; |
| 36 | + const EMAIL_FIELD = 0b0010; |
| 37 | + const PASSWORD_FIELD = 0b0100; |
| 38 | + const QUOTA_FIELD = 0b1000; |
| 39 | + |
35 | 40 | /** |
36 | 41 | * @var DataQuery The data query object. |
37 | 42 | */ |
@@ -97,20 +102,48 @@ public function countAll($search = "") |
97 | 102 | /** |
98 | 103 | * Save an user entity object. |
99 | 104 | * |
100 | | - * @param User $user The user entity. |
| 105 | + * @param User $user The user entity. |
| 106 | + * @param int $fields Fields to update. |
101 | 107 | * |
102 | 108 | * @return bool TRUE on success, FALSE otherwise. |
103 | 109 | */ |
104 | | - public function save($user) |
| 110 | + public function save($user, $fields) |
105 | 111 | { |
106 | | - return $this->dataQuery->update( |
107 | | - Query::SAVE_USER, [ |
108 | | - Query::NAME_PARAM => $user->name, |
109 | | - Query::PASSWORD_PARAM => $user->password, |
110 | | - Query::EMAIL_PARAM => $user->email, |
111 | | - Query::QUOTA_PARAM => $user->quota, |
112 | | - Query::UID_PARAM => $user->uid |
113 | | - ] |
114 | | - ); |
| 112 | + $status = true; |
| 113 | + |
| 114 | + if ($fields & self::DISPLAY_NAME_FIELD) { |
| 115 | + $status =& $this->dataQuery->update( |
| 116 | + Query::UPDATE_DISPLAY_NAME, [ |
| 117 | + Query::NAME_PARAM => $user->name, |
| 118 | + Query::UID_PARAM => $user->uid |
| 119 | + ] |
| 120 | + ); |
| 121 | + } |
| 122 | + if ($fields & self::PASSWORD_FIELD) { |
| 123 | + $status =& $this->dataQuery->update( |
| 124 | + Query::UPDATE_PASSWORD, [ |
| 125 | + Query::PASSWORD_PARAM => $user->password, |
| 126 | + Query::UID_PARAM => $user->uid |
| 127 | + ] |
| 128 | + ); |
| 129 | + } |
| 130 | + if ($fields & self::EMAIL_FIELD) { |
| 131 | + $status =& $this->dataQuery->update( |
| 132 | + Query::UPDATE_EMAIL, [ |
| 133 | + Query::EMAIL_PARAM => $user->email, |
| 134 | + Query::UID_PARAM => $user->uid |
| 135 | + ] |
| 136 | + ); |
| 137 | + } |
| 138 | + if ($fields & self::QUOTA_FIELD) { |
| 139 | + $status =& $this->dataQuery->update( |
| 140 | + Query::UPDATE_QUOTA, [ |
| 141 | + Query::QUOTA_PARAM => $user->quota, |
| 142 | + Query::UID_PARAM => $user->uid |
| 143 | + ] |
| 144 | + ); |
| 145 | + } |
| 146 | + |
| 147 | + return $status; |
115 | 148 | } |
116 | 149 | } |
0 commit comments