Changeset 10172
- Timestamp:
- 2008-07-27 12:10:38 (4 months ago)
- Files:
-
- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Authentication/Store.pm (modified) (3 diffs)
- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Authentication/User.pm (modified) (2 diffs)
- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Root.pm (modified) (1 diff)
- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/User.pm (modified) (5 diffs)
- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/User/EditProfile.pm (modified) (1 diff)
- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/User/Preferences.pm (modified) (1 diff)
- mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Model/User.pm (added)
- mb_server/branches/TemplateToolkit/lib/UserPreference.pm (modified) (2 diffs)
- mb_server/branches/TemplateToolkit/root/user/profile.tt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Authentication/Store.pm
r9942 r10172 4 4 use warnings; 5 5 6 use MusicBrainz::Server::Authentication::User;7 use MusicBrainz;8 use UserStuff;9 10 sub can { 1; }11 12 6 sub new 13 7 { 14 8 my ($class, $config, $app, $realm) = @_; 15 16 9 bless { }, $class; 17 10 } … … 20 13 { 21 14 my ($self, $authinfo, $c) = @_; 22 23 my $mb = $c->mb; 24 25 my $us = UserStuff->new($mb->{DBH}); 26 my $user = $us->newFromName($authinfo->{username}); 27 28 $user ? new MusicBrainz::Server::Authentication::User($user) : undef; 15 return $c->model('User')->load_user({ username => $authinfo->{username} }); 29 16 } 30 17 … … 32 19 { 33 20 my ($self, $c, $user) = @_; 34 35 my $uo = $user->get_object; 36 return $uo->GetName; 21 return $user->id; 37 22 } 38 23 39 24 sub from_session 40 25 { 41 my ($self, $c, $frozenUser) = @_; 42 43 return $self->find_user({ username => $frozenUser }, $c); 44 } 45 46 sub user_support 47 { 48 my $self = shift; 26 my ($self, $c, $frozen_user) = @_; 27 return $c->model('User')->load_user({ id => $frozen_user }); 49 28 } 50 29 mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Authentication/User.pm
r9937 r10172 4 4 use warnings; 5 5 6 use base qw/Catalyst::Authentication::User/; 6 use UserPreference; 7 8 use base qw(Catalyst::Authentication::User); 9 10 __PACKAGE__->mk_accessors(qw( 11 biography 12 homepage 13 id 14 password 15 type 16 username 17 18 email 19 email_verification_date 20 21 has_public_subscriptions 22 subscriber_count 23 24 member_since 25 accepted_non_autoedits 26 accepted_autoedits 27 edits_voted_down 28 edits_failed 29 )); 7 30 8 31 sub new 9 32 { 10 33 my ($class, $user) = @_; 11 bless { user => $user }, $class; 34 35 return undef 36 unless ref $user; 37 38 bless { 39 biography => $user->GetBio, 40 homepage => $user->GetWebURL, 41 id => $user->GetId, 42 password => $user->GetPassword, 43 type => $user->GetUserType, 44 username => $user->GetName, 45 46 has_public_subscriptions => UserPreference::get_for_user('subscriptions_public', $user), 47 subscriber_count => scalar $user->GetSubscribers, 48 49 email_verification_date => $user->GetEmailConfirmDate, 50 email => $user->GetEmail, 51 52 member_since => $user->GetMemberSince, 53 accepted_non_autoedits => $user->GetModsAccepted, 54 accepted_autoedits => $user->GetAutoModsAccepted, 55 edits_voted_down => $user->GetModsRejected, 56 edits_failed => $user->GetModsFailed, 57 58 _u => $user, 59 }, $class; 12 60 } 13 61 14 sub get 15 { 16 my ($self, $what) = @_; 17 18 if($what eq "password") 19 { 20 return $self->{user}->GetPassword; 21 } elsif ($what eq "name") { 22 return $self->{user}->GetName; 23 } 24 } 25 26 sub get_object 62 sub get_user 27 63 { 28 64 my $self = shift; 29 $self->{ user};65 $self->{_u}; 30 66 } 31 67 … … 35 71 } 36 72 37 sub username38 {39 shift->get('name');40 }41 42 73 1; mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Root.pm
r10171 r10172 137 137 use UserPreference; 138 138 139 my $prefs = UserPreference->newFromUser($c->mb->{DBH}, $c->user-> get_object);139 my $prefs = UserPreference->newFromUser($c->mb->{DBH}, $c->user->id); 140 140 $prefs->load; 141 141 mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/User.pm
r10170 r10172 263 263 if ($c->form_posted && $form->validate($c->req->params)) 264 264 { 265 if ($form->value('old_password') eq $c->user-> get_object->GetPassword)266 { 267 $c->user->get_ object->ChangePassword( $form->value('old_password'),265 if ($form->value('old_password') eq $c->user->password) 266 { 267 $c->user->get_user->ChangePassword( $form->value('old_password'), 268 268 $form->value('new_password'), 269 269 $form->value('confirm_new_password') ); … … 288 288 sub profile : Local 289 289 { 290 my ($self, $c, $userName) = @_; 291 292 my $mb = $c->mb; 293 294 my $us = UserStuff->new($mb->{DBH}); 290 my ($self, $c, $user_name) = @_; 291 295 292 my $user; 296 293 297 if ($ userName)298 { 299 $user = $ us->newFromName($userName);294 if ($c->user_exists) 295 { 296 $user = $c->user; 300 297 } 301 298 else 302 299 { 303 if ($ c->user_exists)304 { 305 $user = $c-> user->get_object;300 if ($user_name) 301 { 302 $user = $c->model('User')->load_user({ username => $user_name }); 306 303 } 307 304 else … … 312 309 } 313 310 314 if ($c->user_exists && $c->user-> get_object->GetName eq $user->GetName)311 if ($c->user_exists && $c->user->id eq $user->id) 315 312 { 316 313 $c->stash->{viewing_own_profile} = 1; 317 314 } 318 315 319 die "The user with username '" . $user Name . "' could not be found"316 die "The user with username '" . $user_name . "' could not be found" 320 317 unless $user; 321 318 322 $c->stash->{profile} = { 323 name => $user->GetName, 324 type => $user->GetUserType, 325 email => { 326 address => $user->GetEmail, 327 verified_at => $user->GetEmailConfirmDate, 328 }, 329 homepage => $user->GetWebURL, 330 biography => $user->GetBio, 331 public_subscriptions => UserPreference::get_for_user("subscriptions_public", $user), 332 subscriber_count => scalar $user->GetSubscribers, 333 334 member_since => $user->GetMemberSince, 335 accepted_non_autoedits => $user->GetModsAccepted, 336 accepted_autoedits => $user->GetAutoModsAccepted, 337 edits_voted_down => $user->GetModsRejected, 338 other_failed_edits => $user->GetModsFailed, 339 }; 319 $c->stash->{profile} = $user; 340 320 341 321 $c->stash->{template} = 'user/profile.tt'; 342 343 $c->stash->{filter} = sub { \&date };344 322 } 345 323 … … 366 344 sub preferences : Local 367 345 { 346 my ($self, $c) = @_; 347 348 my $user = $c->user; 349 368 350 use MusicBrainz::Server::Form::User::Preferences; 369 351 370 my ($self, $c) = @_; 371 372 die "You must be logged in" unless $c->user_exists; 373 374 my $form = MusicBrainz::Server::Form::User::Preferences->new($c->user->get_object->GetName); 352 my $form = MusicBrainz::Server::Form::User::Preferences->new($user->id); 375 353 $c->stash->{form} = $form; 376 354 … … 390 368 { 391 369 my ($self, $c) = @_; 392 my $mb = $c->mb; 393 my $us = UserStuff->new($mb->{DBH}); 394 my $user; 395 396 $user = $c->user->get_object; 397 my ($nag, $days) = $us->NagCheck(); 398 399 $c->stash->{donateinfo} = { 400 'nag' => 1, 401 'days' => 1 402 }; 403 $c->stash->{template} = 'user/donate.tt'; 370 die "Not implemented"; 404 371 } 405 372 mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/User/EditProfile.pm
r10116 r10172 55 55 return unless defined $item; 56 56 57 use Switch; 58 switch($field->name) 59 { 60 return $item->GetEmail case ('email'); 61 return $item->GetWebURL case('homepage'); 62 return $item->GetBio case('biography'); 63 } 57 return $item->get($field->name); 64 58 } 65 59 mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/User/Preferences.pm
r10116 r10172 188 188 } 189 189 190 =head2 init_item 191 192 Load the user preferences for a given user id. We pass the user id as 193 the users name. 194 195 =cut 196 197 sub init_item { 198 my $self = shift; 199 my $id = $self->item_id; 200 201 return unless defined $id; 190 sub init_item 191 { 192 my ($self, $id) = @_; 202 193 203 194 my $mb = new MusicBrainz; 204 195 $mb->Login(); 205 196 206 my $us = new UserStuff($mb->{DBH}); 207 my $user = $us->newFromName($id); 208 209 my $prefs = UserPreference->newFromUser ($user); 210 $prefs->load; 211 197 my $prefs = UserPreference->newFromUser($mb->{DBH}, $id); 212 198 return $prefs; 213 199 } mb_server/branches/TemplateToolkit/lib/UserPreference.pm
r10170 r10172 380 380 sub newFromUser 381 381 { 382 my ($class, $dbh, $user) = @_; 383 384 my $uid = $user->GetId 385 or croak "No user id could be found"; 386 387 my $mb = new MusicBrainz(); 388 $mb->Login(); 382 my ($class, $dbh, $uid) = @_; 389 383 390 384 bless { 391 385 uid => $uid, 392 DBH => $mb->{dbh}, 393 mb => $mb, 386 DBH => $dbh, 394 387 prefs => {}, 395 388 }, $class; … … 408 401 my $uid = $self->{uid}; 409 402 410 my $sql = Sql->new($self->{ mb}->{DBH});403 my $sql = Sql->new($self->{DBH}); 411 404 my $rows = $sql->SelectListOfLists( 412 405 "SELECT name, value FROM moderator_preference WHERE moderator = ?", mb_server/branches/TemplateToolkit/root/user/profile.tt
r10170 r10172 54 54 [% END %] 55 55 56 [% IF profile.email .verified_at%]57 (verified [% user_date(profile.email .verified_at) %])56 [% IF profile.email_verification_date %] 57 (verified [% user_date(profile.email_verification_date) %]) 58 58 [% ELSE %] 59 59 [% IF viewing_own_profile %](<em>unverified!</em>)[% END %] … … 86 86 [% WRAPPER property name="Member Since" %] 87 87 [% IF profile.name == "Rob" %]The Dawn of the project 88 [% ELSIF profile.name == "aCiD2" %]9 months after someone did your mum89 88 [% ELSIF profile.is_special %]N/A 90 89 [% ELSIF profile.charter %]charter member 91 [% ELSE %][% profile.member_since | mb_date%]90 [% ELSE %][% user_date(profile.member_since) %] 92 91 [% END %] 93 92 [% END %] 94 93 [% profile.accepted_non_autoedits WRAPPER property name="Accepted Non-autoedits" %] 95 [% profile.accepted_autoedits WRAPPER property name="Autoedits" %]96 [% profile.edits_voted_down WRAPPER property name="Edits Voted Down" %]97 [% profile. other_failed_editsWRAPPER property name="Edits Failed" %]94 [% profile.accepted_autoedits WRAPPER property name="Autoedits" %] 95 [% profile.edits_voted_down WRAPPER property name="Edits Voted Down" %] 96 [% profile.edits_failed WRAPPER property name="Edits Failed" %] 98 97 </dl> 99 98 [% END %]