Changeset 10172

Show
Ignore:
Timestamp:
2008-07-27 12:10:38 (4 months ago)
Author:
acid2
Message:

Changing the way the user system works to be more consistant with the current codebase

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Authentication/Store.pm

    r9942 r10172  
    44use warnings; 
    55 
    6 use MusicBrainz::Server::Authentication::User; 
    7 use MusicBrainz; 
    8 use UserStuff; 
    9  
    10 sub can { 1; } 
    11  
    126sub new 
    137{ 
    148    my ($class, $config, $app, $realm) = @_; 
    15  
    169    bless { }, $class; 
    1710} 
     
    2013{ 
    2114    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} }); 
    2916} 
    3017 
     
    3219{ 
    3320    my ($self, $c, $user) = @_; 
    34  
    35     my $uo = $user->get_object; 
    36     return $uo->GetName; 
     21    return $user->id; 
    3722} 
    3823 
    3924sub from_session 
    4025{ 
    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 }); 
    4928} 
    5029 
  • mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Authentication/User.pm

    r9937 r10172  
    44use warnings; 
    55 
    6 use base qw/Catalyst::Authentication::User/; 
     6use UserPreference; 
     7 
     8use 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)); 
    730 
    831sub new 
    932{ 
    1033    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; 
    1260} 
    1361 
    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 
     62sub get_user 
    2763{ 
    2864    my $self = shift; 
    29     $self->{user}; 
     65    $self->{_u}; 
    3066} 
    3167 
     
    3571} 
    3672 
    37 sub username 
    38 { 
    39     shift->get('name'); 
    40 } 
    41  
    42731; 
  • mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/Root.pm

    r10171 r10172  
    137137        use UserPreference; 
    138138 
    139         my $prefs = UserPreference->newFromUser($c->mb->{DBH}, $c->user->get_object); 
     139        my $prefs = UserPreference->newFromUser($c->mb->{DBH}, $c->user->id); 
    140140        $prefs->load; 
    141141 
  • mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Controller/User.pm

    r10170 r10172  
    263263    if ($c->form_posted && $form->validate($c->req->params)) 
    264264    { 
    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'), 
    268268                                                  $form->value('new_password'), 
    269269                                                  $form->value('confirm_new_password') ); 
     
    288288sub profile : Local 
    289289{ 
    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 
    295292    my $user; 
    296293     
    297     if ($userName
    298     { 
    299         $user = $us->newFromName($userName)
     294    if ($c->user_exists
     295    { 
     296        $user = $c->user
    300297    } 
    301298    else 
    302299    { 
    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 })
    306303        } 
    307304        else 
     
    312309    } 
    313310 
    314     if ($c->user_exists && $c->user->get_object->GetName eq $user->GetName
     311    if ($c->user_exists && $c->user->id eq $user->id
    315312    { 
    316313        $c->stash->{viewing_own_profile} = 1; 
    317314    } 
    318315 
    319     die "The user with username '" . $userName . "' could not be found" 
     316    die "The user with username '" . $user_name . "' could not be found" 
    320317        unless $user; 
    321318 
    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; 
    340320 
    341321    $c->stash->{template} = 'user/profile.tt'; 
    342  
    343     $c->stash->{filter} = sub { \&date }; 
    344322} 
    345323 
     
    366344sub preferences : Local 
    367345{ 
     346    my ($self, $c) = @_; 
     347 
     348    my $user  = $c->user; 
     349 
    368350    use MusicBrainz::Server::Form::User::Preferences; 
    369351 
    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); 
    375353    $c->stash->{form} = $form; 
    376354 
     
    390368{ 
    391369    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"; 
    404371} 
    405372 
  • mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/User/EditProfile.pm

    r10116 r10172  
    5555    return unless defined $item; 
    5656 
    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); 
    6458} 
    6559 
  • mb_server/branches/TemplateToolkit/lib/MusicBrainz/Server/Form/User/Preferences.pm

    r10116 r10172  
    188188} 
    189189 
    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; 
     190sub init_item 
     191
     192    my ($self, $id) = @_; 
    202193 
    203194    my $mb = new MusicBrainz; 
    204195    $mb->Login(); 
    205196 
    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); 
    212198    return $prefs; 
    213199} 
  • mb_server/branches/TemplateToolkit/lib/UserPreference.pm

    r10170 r10172  
    380380sub newFromUser 
    381381{ 
    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) = @_; 
    389383 
    390384    bless { 
    391385        uid => $uid, 
    392         DBH => $mb->{dbh}, 
    393         mb  => $mb, 
     386        DBH => $dbh, 
    394387        prefs => {}, 
    395388    }, $class; 
     
    408401    my $uid = $self->{uid}; 
    409402 
    410     my $sql = Sql->new($self->{mb}->{DBH}); 
     403    my $sql = Sql->new($self->{DBH}); 
    411404    my $rows = $sql->SelectListOfLists( 
    412405        "SELECT name, value FROM moderator_preference WHERE moderator = ?", 
  • mb_server/branches/TemplateToolkit/root/user/profile.tt

    r10170 r10172  
    5454      [% END %] 
    5555       
    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) %]) 
    5858      [% ELSE %] 
    5959        [% IF viewing_own_profile %](<em>unverified!</em>)[% END %] 
     
    8686   [% WRAPPER property name="Member Since" %] 
    8787     [% IF profile.name == "Rob" %]The Dawn of the project 
    88      [% ELSIF profile.name == "aCiD2" %]9 months after someone did your mum 
    8988     [% ELSIF profile.is_special %]N/A 
    9089     [% ELSIF profile.charter %]charter member 
    91      [% ELSE %][% profile.member_since | mb_date %] 
     90     [% ELSE %][% user_date(profile.member_since) %] 
    9291     [% END %] 
    9392   [% END %] 
    9493   [% 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_edits WRAPPER 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" %] 
    9897 </dl> 
    9998[% END %]