Skip to content

Commit c479994

Browse files
committed
Complete profile updating
1 parent a4a78d2 commit c479994

File tree

4 files changed

+503
-20
lines changed

4 files changed

+503
-20
lines changed

src/controllers/User/Update.php

Lines changed: 196 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,16 @@ public function &run(Router &$router, View &$view, array &$args) {
5353

5454
if ( $model->profile ) {
5555

56-
$model->biography = $model->profile->getBiography();
57-
$model->facebook_username = $model->profile->getFacebookUsername();
56+
$model->biography = $model->profile->getBiography();
57+
$model->facebook_username = $model->profile->getFacebookUsername();
58+
$model->github_username = $model->profile->getGitHubUsername();
59+
$model->instagram_username = $model->profile->getInstagramUsername();
60+
$model->phone = $model->profile->getPhone();
61+
$model->reddit_username = $model->profile->getRedditUsername();
62+
$model->skype_username = $model->profile->getSkypeUsername();
63+
$model->steam_id = $model->profile->getSteamId();
64+
$model->twitter_username = $model->profile->getTwitterUsername();
65+
$model->website = $model->profile->getWebsite();
5866

5967
}
6068

@@ -88,6 +96,39 @@ public function &run(Router &$router, View &$view, array &$args) {
8896
isset($data['facebook_username']) ? $data['facebook_username'] : null
8997
);
9098

99+
$model->github_username = (
100+
isset($data['github_username']) ? $data['github_username'] : null
101+
);
102+
103+
$model->instagram_username = (
104+
isset($data['instagram_username']) ?
105+
$data['instagram_username'] : null
106+
);
107+
108+
$model->phone = (
109+
isset($data['phone']) ? $data['phone'] : null
110+
);
111+
112+
$model->reddit_username = (
113+
isset($data['reddit_username']) ? $data['reddit_username'] : null
114+
);
115+
116+
$model->skype_username = (
117+
isset($data['skype_username']) ? $data['skype_username'] : null
118+
);
119+
120+
$model->steam_id = (
121+
isset($data['steam_id']) ? $data['steam_id'] : null
122+
);
123+
124+
$model->twitter_username = (
125+
isset($data['twitter_username']) ? $data['twitter_username'] : null
126+
);
127+
128+
$model->website = (
129+
isset($data['website']) ? $data['website'] : null
130+
);
131+
91132
// process input
92133

93134
if ($model->username !== Authentication::$user->getUsername()) {
@@ -221,6 +262,130 @@ public function &run(Router &$router, View &$view, array &$args) {
221262

222263
}
223264

265+
if (
266+
$model->github_username !== $model->profile->getGitHubUsername()
267+
) {
268+
269+
// github username change request
270+
271+
if (strlen($model->github_username) >
272+
$model->github_username_max_len
273+
) {
274+
$model->github_username_error = ['red', 'TOO_LONG'];
275+
} else {
276+
$model->profile->setGitHubUsername($model->github_username);
277+
$model->github_username_error = ['green', 'CHANGE_SUCCESS'];
278+
$profile_changed = true;
279+
}
280+
281+
}
282+
283+
if (
284+
$model->instagram_username !== $model->profile->getInstagramUsername()
285+
) {
286+
287+
// instagram username change request
288+
289+
if (strlen($model->instagram_username) >
290+
$model->instagram_username_max_len
291+
) {
292+
$model->instagram_username_error = ['red', 'TOO_LONG'];
293+
} else {
294+
$model->profile->setInstagramUsername($model->instagram_username);
295+
$model->instagram_username_error = ['green', 'CHANGE_SUCCESS'];
296+
$profile_changed = true;
297+
}
298+
299+
}
300+
301+
if ($model->phone !== $model->profile->getPhone()) {
302+
303+
// phone change request
304+
305+
if (strlen($model->phone) > $model->phone_max_len) {
306+
$model->phone_error = ['red', 'TOO_LONG'];
307+
} else {
308+
$model->profile->setPhone($model->phone);
309+
$model->phone_error = ['green', 'CHANGE_SUCCESS'];
310+
$profile_changed = true;
311+
}
312+
313+
}
314+
315+
if ($model->reddit_username !== $model->profile->getRedditUsername()) {
316+
317+
// reddit username change request
318+
319+
if (strlen($model->reddit_username) >
320+
$model->reddit_username_max_len
321+
) {
322+
$model->reddit_username_error = ['red', 'TOO_LONG'];
323+
} else {
324+
$model->profile->setRedditUsername($model->reddit_username);
325+
$model->reddit_username_error = ['green', 'CHANGE_SUCCESS'];
326+
$profile_changed = true;
327+
}
328+
329+
}
330+
331+
if ($model->skype_username !== $model->profile->getSkypeUsername()) {
332+
333+
// skype username change request
334+
335+
if (strlen($model->skype_username) > $model->skype_username_max_len) {
336+
$model->skype_username_error = ['red', 'TOO_LONG'];
337+
} else {
338+
$model->profile->setSkypeUsername($model->skype_username);
339+
$model->skype_username_error = ['green', 'CHANGE_SUCCESS'];
340+
$profile_changed = true;
341+
}
342+
343+
}
344+
345+
if ($model->steam_id !== $model->profile->getSteamId()) {
346+
347+
// steam id change request
348+
349+
if (strlen($model->steam_id) > $model->steam_id_max_len) {
350+
$model->steam_id_error = ['red', 'TOO_LONG'];
351+
} else {
352+
$model->profile->setSteamId($model->steam_id);
353+
$model->steam_id_error = ['green', 'CHANGE_SUCCESS'];
354+
$profile_changed = true;
355+
}
356+
357+
}
358+
359+
if ($model->twitter_username !== $model->profile->getTwitterUsername()) {
360+
361+
// steam id change request
362+
363+
if (strlen($model->twitter_username) >
364+
$model->twitter_username_max_len
365+
) {
366+
$model->twitter_username_error = ['red', 'TOO_LONG'];
367+
} else {
368+
$model->profile->setTwitterUsername($model->twitter_username);
369+
$model->twitter_username_error = ['green', 'CHANGE_SUCCESS'];
370+
$profile_changed = true;
371+
}
372+
373+
}
374+
375+
if ($model->website !== $model->profile->getWebsite()) {
376+
377+
// steam id change request
378+
379+
if (strlen($model->website) > $model->website_max_len) {
380+
$model->website_error = ['red', 'TOO_LONG'];
381+
} else {
382+
$model->profile->setWebsite($model->website);
383+
$model->website_error = ['green', 'CHANGE_SUCCESS'];
384+
$profile_changed = true;
385+
}
386+
387+
}
388+
224389
if ($profile_changed) {
225390
$model->profile->save();
226391
}
@@ -230,19 +395,35 @@ public function &run(Router &$router, View &$view, array &$args) {
230395
Authentication::$user->getId(),
231396
getenv('REMOTE_ADDR'),
232397
json_encode([
233-
'username_error' => $model->username_error,
234-
'email_error' => $model->email_error,
235-
'display_name_error' => $model->display_name_error,
236-
'biography_error' => $model->biography_error,
237-
'facebook_username_error' => $model->facebook_username_error,
238-
'user_id' => Authentication::$user->getId(),
239-
'username' => $model->username,
240-
'email_1' => $model->email_1,
241-
'email_2' => $model->email_2,
242-
'display_name' => $display_name,
243-
'profile_changed' => $profile_changed,
244-
'biography' => $model->biography,
245-
'facebook_username' => $model->facebook_username,
398+
'username_error' => $model->username_error,
399+
'email_error' => $model->email_error,
400+
'display_name_error' => $model->display_name_error,
401+
'biography_error' => $model->biography_error,
402+
'facebook_username_error' => $model->facebook_username_error,
403+
'github_username_error' => $model->github_username_error,
404+
'instagram_username_error' => $model->instagram_username_error,
405+
'phone_error' => $model->phone_error,
406+
'reddit_username_error' => $model->reddit_username_error,
407+
'skype_username_error' => $model->skype_username_error,
408+
'steam_id_error' => $model->steam_id_error,
409+
'twitter_username_error' => $model->twitter_username_error,
410+
'website_error' => $model->website_error,
411+
'user_id' => Authentication::$user->getId(),
412+
'username' => $model->username,
413+
'email_1' => $model->email_1,
414+
'email_2' => $model->email_2,
415+
'display_name' => $display_name,
416+
'profile_changed' => $profile_changed,
417+
'biography' => $model->biography,
418+
'facebook_username' => $model->facebook_username,
419+
'github_username' => $model->github_username,
420+
'instagram_username' => $model->instagram_username,
421+
'phone' => $model->phone,
422+
'reddit_username' => $model->reddit_username,
423+
'skype_username' => $model->skype_username,
424+
'steam_id' => $model->steam_id,
425+
'twitter_username' => $model->twitter_username,
426+
'website' => $model->website,
246427
])
247428
);
248429

src/libraries/UserProfile.php

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,4 +322,36 @@ public function setFacebookUsername($value) {
322322
$this->facebook_username = $value;
323323
}
324324

325+
public function setGitHubUsername($value) {
326+
$this->github_username = $value;
327+
}
328+
329+
public function setInstagramUsername($value) {
330+
$this->instagram_username = $value;
331+
}
332+
333+
public function setPhone($value) {
334+
$this->phone = $value;
335+
}
336+
337+
public function setRedditUsername($value) {
338+
$this->reddit_username = $value;
339+
}
340+
341+
public function setSkypeUsername($value) {
342+
$this->skype_username = $value;
343+
}
344+
345+
public function setSteamId($value) {
346+
$this->steam_id = $value;
347+
}
348+
349+
public function setTwitterUsername($value) {
350+
$this->twitter_username = $value;
351+
}
352+
353+
public function setWebsite($value) {
354+
$this->website = $value;
355+
}
356+
325357
}

src/models/User/Update.php

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
class Update extends Model {
88

9+
const MAX_LEN = 255; // table design: varchar(255)
10+
911
public $display_name_1;
1012
public $display_name_2;
1113
public $display_name_error;
@@ -22,10 +24,42 @@ class Update extends Model {
2224

2325
public $biography;
2426
public $biography_error;
25-
public $biography_max_len = 255; // table design: varchar(255)
27+
public $biography_max_len = self::MAX_LEN;
2628

2729
public $facebook_username;
2830
public $facebook_username_error;
29-
public $facebook_username_max_len = 255; // table design: varchar(255)
31+
public $facebook_username_max_len = self::MAX_LEN;
32+
33+
public $github_username;
34+
public $github_username_error;
35+
public $github_username_max_len = self::MAX_LEN;
36+
37+
public $instagram_username;
38+
public $instagram_username_error;
39+
public $instagram_username_max_len = self::MAX_LEN;
40+
41+
public $phone;
42+
public $phone_error;
43+
public $phone_max_len = self::MAX_LEN;
44+
45+
public $reddit_username;
46+
public $reddit_username_error;
47+
public $reddit_username_max_len = self::MAX_LEN;
48+
49+
public $skype_username;
50+
public $skype_username_error;
51+
public $skype_username_max_len = self::MAX_LEN;
52+
53+
public $steam_id;
54+
public $steam_id_error;
55+
public $steam_id_max_len = self::MAX_LEN;
56+
57+
public $twitter_username;
58+
public $twitter_username_error;
59+
public $twitter_username_max_len = self::MAX_LEN;
60+
61+
public $website;
62+
public $website_error;
63+
public $website_max_len = self::MAX_LEN;
3064

3165
}

0 commit comments

Comments
 (0)