Changeset 25 for trunk/DNSDB.pm
- Timestamp:
- 11/02/09 16:40:07 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/DNSDB.pm
r24 r25 26 26 &addDomain &delDomain &domainName 27 27 &addGroup &delGroup &getChildren &groupName 28 &addUser &delUser 28 &addUser &delUser &userFullName 29 29 &getSOA &getRecLine &getDomRecs 30 30 &addRec &updateRec &delRec … … 38 38 &addDomain &delDomain &domainName 39 39 &addGroup &delGroup &getChildren &groupName 40 &addUser &delUser 40 &addUser &delUser &userFullName 41 41 &getSOA &getRecLine &getDomRecs 42 42 &addRec &updateRec &delRec … … 442 442 my $pass = shift; 443 443 return ('FAIL',"Missing password") if !defined($pass); 444 445 444 my $state = shift; 446 445 return ('FAIL',"Need account status") if !defined($state); 447 my $fname = shift || ''; 446 447 my $type = shift || 'u'; # create limited users by default - fwiw, not sure yet how this will interact with ACLs 448 449 my $fname = shift || $username; 448 450 my $lname = shift || ''; 451 my $phone = shift || ''; # not going format-check 449 452 450 453 my $user_id; … … 458 461 eval { 459 462 # insert the user... 460 my $sth = $dbh->prepare("INSERT INTO users ( email,group_id,password,status) VALUES (?,?,?,?)");461 $sth->execute($username,$group,$pass,$state);462 die "user fail\n";463 my $sth = $dbh->prepare("INSERT INTO users (group_id,username,password,firstname,lastname,phone,type,status) ". 464 "VALUES (?,?,?,?,?,?,?,?)"); 465 $sth->execute($group,$username,$pass,$fname,$lname,$phone,$type,$state); 463 466 464 467 # get the ID... … … 466 469 $sth->execute($username); 467 470 ($user_id) = $sth->fetchrow_array(); 471 472 ##fixme: add another table to hold name/email for log table? 468 473 469 474 # once we get here, we should have suceeded. … … 484 489 # 485 490 sub delUser { 491 my $dbh = shift; 492 return ('FAIL',"Need database handle") if !$dbh; 493 my $userid = shift; 494 return ('FAIL',"Missing userid") if !defined($userid); 495 496 my $sth = $dbh->prepare("delete from users where user_id=?"); 497 $sth->execute($userid); 498 499 return ('FAIL',"Couldn't remove user: ".$sth->errstr) if $sth->err; 500 501 return ('OK','OK'); 502 486 503 } # end delUser 504 505 506 ## DNSDB::userFullName() 507 # Return a pretty string! 508 # Takes a user_id and optional printf-ish string to indicate which pieces where: 509 # %u for the username 510 # %f for the first name 511 # %l for the last name 512 # All other text in the passed string will be left as-is. 513 ##fixme: need a "smart" option too, so that missing/null/blank first/last names don't give funky output 514 sub userFullName { 515 $errstr = ''; 516 my $dbh = shift; 517 my $userid = shift; 518 my $fullformat = shift || '%f %l (%u)'; 519 my $sth = $dbh->prepare("select username,firstname,lastname from users where user_id=?"); 520 $sth->execute($userid); 521 my ($uname,$fname,$lname) = $sth->fetchrow_array(); 522 $errstr = $DBI::errstr if !$uname; 523 524 $fullformat =~ s/\%u/$uname/g; 525 $fullformat =~ s/\%f/$fname/g; 526 $fullformat =~ s/\%l/$lname/g; 527 528 return $fullformat; 529 } # end userFullName 487 530 488 531
Note:
See TracChangeset
for help on using the changeset viewer.