Apache-DnsZone

 view release on metacpan or  search on metacpan

lib/Apache/DnsZone/DB/Oracle.pm  view on Meta::CPAN

    my $self = shift;
    my $id = shift;
    return $self->{'dbh'}->selectrow_array("select domains.domain, soa.auth_ns from domains, soa where domains.id = soa.domain and domains.id = ?", undef, $id);
    # returns both domain and nameserver (used in resolver_setup)
}

sub get_auth_ns {
    my $self = shift;
    my $id = shift;
    return $self->{'dbh'}->selectrow_array("select auth_ns from soa where domain = ?", undef, $id);
}

sub get_authns_serial {
    my $self = shift;
    my $dom_id = shift;
    return $self->{'dbh'}->selectrow_array("select auth_ns, serial from soa where domain = ?", undef, $dom_id);
}

sub get_user_info {
    my $self = shift;
    my $username = shift;
    return $self->{'dbh'}->selectrow_array("select users.id, users.email, users.lang, languages.lang from users,languages where users.username = ? and users.lang = languages.id", undef, $username);
}

sub get_user_id {
    my $self = shift;
    my $username = shift;
    return $self->{'dbh'}->selectrow_array("select users.id from users where users.username = ?", undef, $username);
}

sub get_user_lang_id {
    my $self = shift;
    my $uid = shift;
    return $self->{'dbh'}->selectrow_array("select users.lang from users where users.id = ?", undef, $uid);
}

sub get_user_lang {
    my $self = shift;
    my $username = shift;
    return $self->{'dbh'}->selectrow_array("select languages.lang from users, languages where users.username = ? and users.lang = languages.id", undef, $username);
}

sub set_user_lang_email {
    my $self = shift;
    my $uid = shift;
    my $lang_id = shift;
    my $email = shift;
    eval {
	my $sth = $self->{'dbh'}->prepare("update users set lang = ?, email = ? where id = ?");
	$sth->execute($lang_id, $email, $uid);
	$sth->finish();
	$self->{'dbh'}->commit();
    };
    if ($@) {
	$self->{'dbh'}->rollback();
	return 0;
    }
    return 1;
}

sub set_user_password {
    my $self = shift;
    my $uid = shift;
    my $password = shift;
    eval {
	my $sth = $self->{'dbh'}->prepare("update users set password = ? where id = ?");
	$sth->execute($password, $uid);
	$sth->finish();
	$self->{'dbh'}->commit();
    }; 
    if ($@) {
	$self->{'dbh'}->rollback();
	return 0;
    }
    return 1;
}

sub get_domain_count {
    my $self = shift;
    my $uid = shift;
    return $self->{'dbh'}->selectrow_array("select count(id) from domains where owner = ?", undef, $uid);
}

sub get_one_domain_id {
    my $self = shift;
    my $uid = shift;
    return $self->{'dbh'}->selectrow_array("select id from domains where owner = ?", undef, $uid);
}

sub is_valid_lang {
    my $self = shift;
    my $lang_id = shift;
    return $self->{'dbh'}->selectrow_array("select 1 from languages where id = ?", undef, $lang_id);
}

sub is_valid_abbrev {
    my $self = shift;
    my $lang_abbrev = shift;
    return $self->{'dbh'}->selectrow_array("select 1 from languages where abbrev = ?", undef, $lang_abbrev);
}

sub get_lang_from_abbrev {
    my $self = shift;
    my $lang_abbrev = shift;
    return $self->{'dbh'}->selectrow_array("select lang from languages where abbrev = ?", undef, $lang_abbrev);
}

sub lang_select_box {
    my $self = shift;
    my $uid = shift;
    my $lang_id = shift || 0;
    if ($lang_id == 0) {
	$lang_id = $self->get_user_lang_id($uid);
    }
    my $lang_select = qq{<select name="lang">\n};
    my $sth_lang = $self->{'dbh'}->prepare("select id,lang,language from languages order by language asc");
    $sth_lang->execute();
    while (my ($l_id, $l_lang, $l_language) = $sth_lang->fetchrow_array()) {
	$lang_select .= qq{<option value="$l_id"};
	if ($lang_id == $l_id) {
	    $lang_select .= qq{ selected};
	}
	$lang_select .= qq{>$l_language ($l_lang)</option>\n};
    }
    $sth_lang->finish();
    $lang_select .= qq{</select>\n};
    return $lang_select;
}

sub update_password {
    my $self = shift;
    my $uid = shift;
    my $password = shift;
    eval {
	my $sth_password_update = $self->{'dbh'}->prepare("update users set password = ? where id = ?");
	$sth_password_update->execute($password, $uid);
	$sth_password_update->finish();
	$self->{'dbh'}->commit();
    };
    if ($@) {
	$self->{'dbh'}->rollback();
	return 0;
    }

    return 1;
}

sub domain_stat {
    my $self = shift;
    my $dom_id = shift;
    return $self->{'dbh'}->selectrow_array("select domain,owner from domains where id = ?", undef, $dom_id);
}

sub get_max_record_count {
    my $self = shift;
    my $dom_id = shift;
    return $self->{'dbh'}->selectrow_array("select A_count, AAAA_count, CNAME_count, MX_count, NS_count, PTR_count, TXT_count from rec_count where domain = ?", undef, $dom_id);
}

sub get_a_count {
    my $self = shift;
    my $dom_id = shift;
    return $self->{'dbh'}->selectrow_array("select count(id) from records_A where domain = ?", undef, $dom_id);
}

sub does_A_exist {
    my $self = shift;
    my $dom_id = shift;
    my $host = shift;
    return $self->{'dbh'}->selectrow_array("select count(id) from records_A where domain = ? and name = ?", undef, $dom_id, $host)
}

sub is_duplicate_A {
    my $self = shift;
    my $dom_id = shift;
    my $host = shift;
    my $address = shift;
    return $self->{'dbh'}->selectrow_array("select count(id) from records_A where domain = ? and name = ? and address = ?", undef, $dom_id, $host, $address)
}

sub get_aaaa_count {
    my $self = shift;
    my $dom_id = shift;
    return $self->{'dbh'}->selectrow_array("select count(id) from records_AAAA where domain = ?", undef, $dom_id);
}

sub does_AAAA_exist {
    my $self = shift;
    my $dom_id = shift;
    my $host = shift;
    return $self->{'dbh'}->selectrow_array("select count(id) from records_AAAA where domain = ? and name = ?", undef, $dom_id, $host)
}

sub is_duplicate_AAAA {
    my $self = shift;
    my $dom_id = shift;
    my $host = shift;



( run in 1.315 second using v1.01-cache-2.11-cpan-5a3173703d6 )