| 1 | <?php |
|---|
| 2 | |
|---|
| 3 | class Logics_User extends Logics_Base |
|---|
| 4 | { |
|---|
| 5 | |
|---|
| 6 | |
|---|
| 7 | |
|---|
| 8 | protected $imanage = null; |
|---|
| 9 | |
|---|
| 10 | public function setImanage(Imanage $imanage) |
|---|
| 11 | { |
|---|
| 12 | $this->imanage = $imanage; |
|---|
| 13 | } |
|---|
| 14 | |
|---|
| 15 | |
|---|
| 16 | |
|---|
| 17 | |
|---|
| 18 | |
|---|
| 19 | |
|---|
| 20 | |
|---|
| 21 | |
|---|
| 22 | public function updateSettings(User $aUser) |
|---|
| 23 | { |
|---|
| 24 | $result = new Logics_Result(); |
|---|
| 25 | $result->aUser = $aUser; |
|---|
| 26 | |
|---|
| 27 | if ($errors = $this->validateModel($aUser)) { |
|---|
| 28 | return $result->setErrors($errors); |
|---|
| 29 | } |
|---|
| 30 | |
|---|
| 31 | $aUser->save(); |
|---|
| 32 | if (!$aUser->private_flag) { |
|---|
| 33 | $request = new Request(); |
|---|
| 34 | if ($requests = $request->select("request_id", $aUser->id)) { |
|---|
| 35 | foreach ($requests as $aRequest) { |
|---|
| 36 | $aFollower = new Follower(); |
|---|
| 37 | $aFollower->save(array( |
|---|
| 38 | "user_id" => $aRequest->user_id, |
|---|
| 39 | "follow_id" => $aRequest->request_id, |
|---|
| 40 | "created_at" => now() |
|---|
| 41 | )); |
|---|
| 42 | |
|---|
| 43 | $aRequest->delete(); |
|---|
| 44 | } |
|---|
| 45 | } |
|---|
| 46 | } |
|---|
| 47 | |
|---|
| 48 | return $result; |
|---|
| 49 | } |
|---|
| 50 | |
|---|
| 51 | |
|---|
| 52 | |
|---|
| 53 | |
|---|
| 54 | |
|---|
| 55 | |
|---|
| 56 | |
|---|
| 57 | public function uploadIcon($userId, $resource) |
|---|
| 58 | { |
|---|
| 59 | $result = new Logics_Result(); |
|---|
| 60 | |
|---|
| 61 | if ($this->imanage->validate($resource)) { |
|---|
| 62 | $aUser = new User($userId); |
|---|
| 63 | if ($aUser->isActive()) { |
|---|
| 64 | if ($aUser->image !== DEFAULT_IMAGE_NAME) { |
|---|
| 65 | $this->imanage->delete($aUser->image); |
|---|
| 66 | } |
|---|
| 67 | |
|---|
| 68 | $aUser->save(array("image" => $this->imanage->upload($resource))); |
|---|
| 69 | $result->aUser = $aUser; |
|---|
| 70 | } else { |
|---|
| 71 | throw new Exception_UserNotFound(__METHOD__); |
|---|
| 72 | } |
|---|
| 73 | } else { |
|---|
| 74 | $result->setErrors(array("サイズが大きすぎるか、非対応のフォーマットです")); |
|---|
| 75 | } |
|---|
| 76 | |
|---|
| 77 | return $result; |
|---|
| 78 | } |
|---|
| 79 | |
|---|
| 80 | |
|---|
| 81 | |
|---|
| 82 | |
|---|
| 83 | |
|---|
| 84 | |
|---|
| 85 | |
|---|
| 86 | |
|---|
| 87 | public function destroy($userId) |
|---|
| 88 | { |
|---|
| 89 | $result = new Logics_Result(); |
|---|
| 90 | $aUser = new User($userId); |
|---|
| 91 | |
|---|
| 92 | if ($aUser->isSelected()) { |
|---|
| 93 | $or = new Sabel_Db_Condition_Or(); |
|---|
| 94 | $or->add(C::create(C::EQUAL, "user_id", $aUser->id)); |
|---|
| 95 | $or->add(C::create(C::EQUAL, "request_id", $aUser->id)); |
|---|
| 96 | $request = new Request(); |
|---|
| 97 | $request->delete($or); |
|---|
| 98 | |
|---|
| 99 | $or = new Sabel_Db_Condition_Or(); |
|---|
| 100 | $or->add(C::create(C::EQUAL, "user_id", $aUser->id)); |
|---|
| 101 | $or->add(C::create(C::EQUAL, "follow_id", $aUser->id)); |
|---|
| 102 | $follower = new Follower(); |
|---|
| 103 | $follower->delete($or); |
|---|
| 104 | |
|---|
| 105 | $status = new Status(); |
|---|
| 106 | $status->delete("user_id", $userId); |
|---|
| 107 | |
|---|
| 108 | $aUser->save(array("delete_flag" => true)); |
|---|
| 109 | } |
|---|
| 110 | |
|---|
| 111 | return $result; |
|---|
| 112 | } |
|---|
| 113 | } |
|---|