/[transports]/trunk/lib/Transports/Model/User.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/Transports/Model/User.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1 by dpavlin, Thu May 4 15:12:03 2006 UTC revision 17 by dpavlin, Fri May 26 14:02:18 2006 UTC
# Line 22  column email => Line 22  column email =>
22  column password =>,  column password =>,
23      type is 'text',      type is 'text',
24      label is 'Password',      label is 'Password',
25        is mandatory,
26      render_as 'password';      render_as 'password';
27    
28  package Transports::Model::User;  package Transports::Model::User;
# Line 29  use base qw/Transports::Record/; Line 30  use base qw/Transports::Record/;
30    
31  # Your model-specific methods go here.  # Your model-specific methods go here.
32    
33    =head2 password_is STRING
34    
35    Returns true if and only if the current user's password matches STRING
36    
37    =cut
38    
39    
40    sub password_is {
41            my $self = shift;
42            my $string = shift || return;
43            warn "password_is ", $self->_value('password'), " == $string\n";
44            return 1 if ($self->_value('password') eq $string);
45            return 0;
46    }
47    
48    =head2 password
49    
50    Never display a password
51    
52    =cut
53    
54    sub password {
55            return '*****';
56    }
57    
58    =head2 current_user_can
59    
60    Allows the current user to see all their own attributes and
61    everyone else to see their username.
62    
63    Allows the current user to update any of their own attributes
64    except whether or not their email has been confirmed.
65    
66    Passes everything else off to the superclass.
67    
68    =cut
69    
70    
71    sub current_user_can {
72        my $self  = shift;
73        my $right = shift;
74        my %args  = (@_);
75        #Carp::confess if ($right eq 'read' and not $args{'column'});
76        if ( $right eq 'read'
77            and $self->id == $self->current_user->id )
78        {
79            return 1;
80        } elsif ( $right eq 'read' and $args{'column'} eq 'name' ) {
81            return (1);
82    
83        } elsif ( $right eq 'update'
84            and $self->id == $self->current_user->id
85            and $args{'column'} ne 'email_confirmed' )
86        {
87            return (1);
88        }
89    
90        return $self->SUPER::current_user_can( $right, %args );
91    }
92    
93  1;  1;
94    

Legend:
Removed from v.1  
changed lines
  Added in v.17

  ViewVC Help
Powered by ViewVC 1.1.26