Audio-DB

 view release on metacpan or  search on metacpan

DB/Util/SystemConfig.pm  view on Meta::CPAN

    $self->print_navigation($self->build_nav_link(-class=>'admin',-action=>'display_playlist_options',
						  -text=>'Global Playlist Options'));
  }
  
  print start_div({-class=>'configoptions'});
  print h4($self->build_nav_link(-class=>'admin',-action=>'delete_all_playlists',
			     -text=>'Delete All Playlists'));
}

sub add_user {
  my $self = shift;
  if (param('submit')) {
    $self->print_navigation($self->build_nav_link(-class=>'admin',-action=>'display_user_options',
						  -text=>'User Configuration'),
			    'Add A New User (Results)');
    $self->add_entry(-table       => 'users',
		     -success_msg => span({-class=>'name'},param('first_name') 
					  . ' ' . param('last_name')) . 
		     ' has been succesfully added to the system with the following parameters:',
		     -detailed => 'true');
  } else {
    $self->print_navigation($self->build_nav_link(-class=>'admin',-action=>'display_user_options',
						  -text=>'User Configuration'),
			    $self->build_nav_link(-class=>'admin',-action=>'add_user',
						  -text=>'Add A New User'));
    $self->print_add_form();
  }
}


sub edit_users {
  my $self = shift;
  if (param('submit')) {
    $self->print_navigation($self->build_nav_link(-class=>'admin',-action=>'display_user_options',
						  -text=>'User Configuration'),
			    'Edit Users (Results)');
    $self->process_edit_form();
  } else {
    $self->print_navigation($self->build_nav_link(-class=>'admin',-action=>'display_user_options',
						  -text=>'User Configuration'),
			    $self->build_nav_link(-class=>'admin',-action=>'edit_users',
						  -text=>'Edit Users'));
    $self->print_edit_form();
  }
}

sub print_add_form {
  my $self = shift;
  # Print out the form
  
  print div({-class=>'actionbyline'},"Use this form to add new users to the Music Repository");    
  print start_div({-class=>'actioncontent'});
  print startform(),
    start_table(),
      TR(td('first name'),td(textfield({-name=>'first_name'}))),
	TR(td('last name'),td(textfield({-name=>'last_name'}))),
	  TR(td('email'),td(textfield({-name=>'email'}))),
	    TR(td('username'),td(textfield({-name=>'username'}))),
	      TR(td('password'),td(textfield({-name=>'password'}))),
		TR(td('priviledges'),
		   td(popup_menu({-name=>'privs',-values=>[qw/user admin overlord/]}))),
		  TR(td({-colspan=>2,-align=>'right'},
			submit(-name=>'submit',-label=>'Add New User'))),
			  end_form,
			    end_table;
  print end_div;
}

sub print_edit_form {
  my $self = shift;
  my @cols = qw/First Last Email Username Password Priviledges/;
  my $dbh = $self->{dbh};
  my $sth = $dbh->prepare(qq{select * from users});
  print div({-class=>'actionbyline'},
	    "Use this form to edit the information of all users simultaneously.");
  print start_div({-class=>'actioncontent'});
  print startform(),
    start_table();
  print TR(td(\@cols));
  $sth->execute();
  while (my $h = $sth->fetchrow_hashref) {
    print 
      hidden(-name=>'user_id',-value=>$h->{user_id});
    print
      TR(td(textfield({-name=>'first_name',-value=>$h->{first_name},-size=>15})),
	 td(textfield({-name=>'last_name',-value=>$h->{last_name},-size=>15})),
	 td(textfield({-name=>'email',-value=>$h->{email},-size=>20})),
	 td(textfield({-name=>'username',-value=>$h->{username},-size=>10})),
	 td(textfield({-name=>'password',-value=>$h->{password},-size=>10})),
	 td(popup_menu({-name=>'privs',-values=>[qw/user admin overlord/],
			-default=>$h->{privs}})));
  }
  print end_table;
  print submit(-name=>'submit',-label=>'Update Users');
  print end_div;
}


sub process_edit_form {
  my $self = shift;
  my $dbh = $self->{dbh};
  # iterate over each param...
  my @fields = qw/first_name last_name email username password privs/; 
  my @params = param();
  my $params = { id         => [ param('user_id') ],
		 first_name => [ param('first_name') ],
		 last_name  => [ param('last_name') ],
		 email      => [ param('email') ],
		 username   => [ param('username') ],
		 password   => [ param('password') ],
		 privs      => [ param('privs') ]  };
  
  # Yuck, there has to be a better way
  my $count = 0;
  my $result;
  foreach my $id (@{$params->{id}}) {
    my @vals;
    foreach (@fields) {
      push (@vals,$_ . "=" . $dbh->quote($params->{$_}[$count]));
    }

    $result = $dbh->do("update users set "
			  . join(",",@vals)
			  . " where user_id=$id");
    $count++;
  } 
  # This is kind of bogus - only looks at the last record updated.
  if ($result) {
    print div({-class=>'success'},"The users have been succesfully updated.");
  } else {
    $self->print_sql_error($dbh->errstr);
  }
}


sub user_summary {
  my $self = shift;
  $self->print_navigation($self->build_nav_link(-class=>'admin',-action=>'display_user_options',
						-text=>'User Configuration'),
			  $self->build_nav_link(-class=>'admin',-action=>'user_summary',
						-text=>'View All Users'));
  my $dbh = $self->{dbh};
  my $sth = $dbh->prepare(qq{select * from users ORDER BY last_name});
  $sth->execute();
  
  my @cols = ('First','Last','Email','Username','Status','Joined','Last Login','Songs Played');
  my @keys = ('first_name','last_name','email','username','privs','joined','last_access','songs_played');
  
  my $rows = [];
  while (my $h = $sth->fetchrow_hashref) {



( run in 0.893 second using v1.01-cache-2.11-cpan-364913b4093 )