1 package Memories::User;
2 use base qw(Memories::DBI Maypole::Model::CDBI::Plain);
3 __PACKAGE__->columns(All => qw/id name password/);
4 __PACKAGE__->has_many(photos => "Memories::Photo");
6 sub register :Exported {
8 my $login = $r->params->{name};
9 my $pass = $r->params->{password};
10 $r->template("frontpage");
13 # Do we already exist?
14 if (!$login) { $r->template("login"); $r->message("You didn't enter a user name"); return; }
15 my ($user) = $class->search(name => $login);
16 if ($user) { $r->template("login"); $r->message("User name already exists"); return; }
17 $user = $class->create({name => $login, password => $pass });
19 $r->login_user($user->id);
25 my $user = $r->objects->[0];
26 my $page = $r->params->{page} || 1;
27 my $pager = Class::DBI::Pager::_pager("Memories::Photo",
28 Memories->config->{photos_per_page}, $page);
29 $r->{template_args}{photos} = [$pager->search(uploader =>
30 $user->id,{order_by => "uploaded desc"}) ];
31 $r->{template_args}{pager} = $pager;
32 $r->{template_args}{albums} = [$user->albums(privacy => 0)];
37 sub edit_albums :Exported {
39 $r->{template} = "view";
41 my $user = $r->objects->[0];
42 return unless $r->user and $r->user->id == $user->id;
43 if ($r->{params}{create}) {
44 $user->add_to_albums({
45 privacy => !!($r->{params}{new_privacy}),
46 name => $r->{params}{new_name}
48 } elsif ($r->{params}{changes}) {
49 for my $album ($user->albums) { #XXX
50 warn "Setting $album privacy to ".
51 $r->{params}{"privacy_".$album->id};
52 $album->privacy(!!$r->{params}{"privacy_".$album->id});
55 my @to_delete = map /(\d+)/,
56 grep /delete_\d+/, keys %{$r->{params}};
58 my $album = Memories::Album->retrieve($_);
59 if ($album and $album->user->id == $user->id) {