chore: import upstream snapshot with attribution

This commit is contained in:
wehub-resource-sync
2026-07-13 13:12:17 +08:00
commit cf8edb9f21
44281 changed files with 1655134 additions and 0 deletions
+11
View File
@@ -0,0 +1,11 @@
---- Changes since 1.380 ----
First version of this module, for configuring the OpenLDAP server and managing its database.
---- Changes since 1.400 ----
Added an option to create an example LDAP group, and made the example user a person.
---- Changes since 1.440 ----
The protocols served by the LDAP server, such as SSL and non-encrypted, can now be set on the OpenLDAP Server Configuration page. This is only possible on Redhat and Debian-derived systems though, as the protocols are configured in the init script.
Fixed a bug that prevented browsing of the LDAP database in SSL mode, thanks to Paul R. Ganci.
---- Changes since 1.470 ----
Updated the module to support the new OpenLDAP LDIF-format configuration files, as seen on Ubuntu 8.10.
---- Changes since 1.510 ----
Fixed numerous bugs in editing the new LDIF-format access control rules.
+127
View File
@@ -0,0 +1,127 @@
#!/usr/local/bin/perl
# Show the details of one access control rule
require './ldap-server-lib.pl';
&local_ldap_server() == 1 || &error($text{'slapd_elocal'});
$access{'acl'} || &error($text{'acl_ecannot'});
&ReadParse();
# Get ACLs
if (&get_config_type() == 1) {
$conf = &get_config();
@access = &find("access", $conf);
$hasorder = 0;
}
else {
$defdb = &get_default_db();
$conf = &get_ldif_config();
@access = &find_ldif("olcAccess", $conf, $defdb);
$hasorder = 1;
}
# Page header
if ($in{'new'}) {
&ui_print_header(undef, $text{'eacl_title1'}, "", "eacl");
$p = { 'what' => '*',
'by' => [ ] };
}
else {
&ui_print_header(undef, $text{'eacl_title2'}, "", "eacl");
$acl = $access[$in{'idx'}];
$p = &parse_ldap_access($acl);
}
# Form header
print &ui_form_start("acl_save.cgi", "post");
print &ui_hidden("new", $in{'new'});
print &ui_hidden("idx", $in{'idx'});
print &ui_table_start($text{'eacl_header'}, undef, 2);
# Rule ordering
if ($hasorder && !$in{'new'}) {
print &ui_table_row($text{'eacl_order'},
$p->{'order'} eq '' ? $text{'eacl_noorder'} : $p->{'order'});
}
# Granting to what object
$what = $p->{'what'} eq '*' || $p->{'what'} eq '' ? 1 : 0;
if ($p->{'what'} =~ /^dn(\.([^=]+))?="(.*)"$/i ||
$p->{'what'} =~ /^dn(\.([^=]+))?=(.*)$/i) {
$dn = $3;
$style = $2;
if ($dn eq "") {
$what = 2;
}
}
print &ui_table_row($text{'eacl_what'},
&ui_radio_table("what", $what,
[ [ 1, $text{'eacl_what1'} ],
[ 2, $text{'eacl_what2'} ],
[ 0, $text{'eacl_what0'},
&ui_textbox("what_dn", $dn, 30)." ".
$text{'eacl_mtype'}." ".
&ui_select("what_style", $style,
[ [ '', $text{'default'} ],
map { [ $_, $text{'eacl_'.$_} ] }
@acl_dn_styles ]) ] ])."\n".
&ui_checkbox("filter_on", 1, $text{'eacl_filter'}, $p->{'filter'})." ".
&ui_textbox("filter", $p->{'filter'}, 40)."<br>\n".
&ui_checkbox("attrs_on", 1, $text{'eacl_attrs'}, $p->{'attrs'})." ".
&ui_textbox("attrs", $p->{'attrs'}, 40) );
# Access rights table
@tds = ( "width=40% nowrap", "width=30%", "width=30%" );
$wtable = &ui_columns_start([ $text{'eacl_who'},
$text{'eacl_access'},
$text{'eacl_control'} ], 100, 0, \@tds);
$i = 0;
foreach $b (@{$p->{'by'}}, { }, { }, { }) {
$kwho = $b->{'who'} eq 'self' || $b->{'who'} eq 'users' ||
$b->{'who'} eq 'anonymous' || $b->{'who'} eq '*' ||
$b->{'who'} eq '';
$kacc = !$b->{'access'} ? 'read' :
&indexof($b->{'access'}, @acl_access_levels) >= 0 ?
$b->{'access'} : undef;
$wtable .= &ui_columns_row([
# Who are we granting?
&ui_select("wmode_$i",
$kwho ? $b->{'who'} : 'other',
[ [ '', "&nbsp;" ],
[ '*', $text{'eacl_every'} ],
[ 'self', $text{'eacl_self'} ],
[ 'users', $text{'eacl_users'} ],
[ 'anonymous', $text{'eacl_anonymous'} ],
[ 'other', $text{'eacl_other'} ] ],
1, 0, 0, 0,
"style='width:45%' onChange='form.who_$i.disabled = (form.wmode_$i.value != \"other\")'").
&ui_textbox("who_$i", $kwho ? "" : $b->{'who'}, 50,
$kwho, undef, "style='width:45%'"),
# What access level? Show textbox if complex
$kacc ? &ui_select("access_$i", $kacc,
[ map { [ $_, $text{'access_l'.$_} ] }
@acl_access_levels ], 1, 0, 0, 0,
"style='width:90%'")
: &ui_textbox("access_$i", $b->{'access'}, 20,
0, undef, "style='width:90%'"),
# Additional attrs
&ui_textbox("control_$i", join(" ", @{$b->{'control'}}), 30,
0, undef, "style='width:90%'"),
], \@tds);
$i++;
}
$wtable .= &ui_columns_end();
print &ui_table_row(undef, $wtable, 2);
# Form and page end
print &ui_table_end();
if ($in{'new'}) {
print &ui_form_end([ [ undef, $text{'create'} ] ]);
}
else {
print &ui_form_end([ [ undef, $text{'save'} ],
[ 'delete', $text{'delete'} ] ]);
}
&ui_print_footer("edit_acl.cgi", $text{'acl_return'});
+130
View File
@@ -0,0 +1,130 @@
#!/usr/local/bin/perl
# Create, update or delete one access control rule
require './ldap-server-lib.pl';
&error_setup($text{'eacl_err'});
&local_ldap_server() == 1 || &error($text{'slapd_elocal'});
$access{'acl'} || &error($text{'acl_ecannot'});
&ReadParse();
# Get the current rule
&lock_slapd_files();
if (&get_config_type() == 1) {
$conf = &get_config();
@access = &find("access", $conf);
$hasorder = 0;
}
else {
$defdb = &get_default_db();
$conf = &get_ldif_config();
@access = &find_ldif("olcAccess", $conf, $defdb);
$hasorder = 1;
}
# Get the ACL object
if (!$in{'new'}) {
$acl = $access[$in{'idx'}];
$p = &parse_ldap_access($acl);
}
else {
$p = { };
}
if ($in{'delete'}) {
# Just take out of access list
@access = grep { $_ ne $acl } @access;
}
else {
# Validate and store inputs, starting with object
if ($in{'what'} == 1) {
$p->{'what'} = '*';
}
elsif ($in{'what'} == 2) {
$p->{'what'} =
'dn'.($in{'what_style'} ? '.'.$in{'what_style'} : '').
'=""';
}
else {
$in{'what_dn'} =~ /^\S+=\S.*$/ || &error($text{'eacl_edn'});
$p->{'what'} =
'dn'.($in{'what_style'} ? '.'.$in{'what_style'} : '').
'='.$in{'what_dn'};
}
# Object filter and attribute list
delete($p->{'filter'});
if ($in{'filter_on'}) {
$in{'filter'} =~ /^\S+$/ || &error($text{'eacl_efilter'});
$p->{'filter'} = $in{'filter'};
}
delete($p->{'attrs'});
if ($in{'attrs_on'}) {
$in{'attrs'} =~ /^\S+$/ || &error($text{'eacl_eattrs'});
$p->{'attrs'} = $in{'attrs'};
}
# Each granted user
@by = ( );
for($i=0; defined($in{"wmode_$i"}); $i++) {
next if ($in{"wmode_$i"} eq "");
local $by = { };
# Who are we granting
if ($in{"wmode_$i"} eq "other") {
# Other DN
$in{"who_$i"} =~ /^\S+=\S.*$/ ||
&error(&text('eacl_ewho', $i+1));
$by->{'who'} = $in{"who_$i"};
}
else {
# Just selected
$by->{'who'} = $in{"wmode_$i"};
}
# Access level
$in{"access_$i"} =~ /^\S+$/ ||
&error(&text('eacl_eaccess', $i+1));
$by->{'access'} = $in{"access_$i"};
# Additional attributes
$by->{'control'} = [ &split_quoted_string($in{"control_$i"}) ];
push(@by, $by);
}
$p->{'by'} = \@by;
# Set order to end of list, if we are using orders
if ($hasorder && $in{'new'}) {
$maxorder = -1;
foreach $oa (@access) {
$op = &parse_ldap_access($oa);
if ($op->{'order'} > $maxorder) {
$maxorder = $op->{'order'};
}
}
$p->{'order'} = $maxorder + 1;
}
# Add to access directive list
if ($in{'new'}) {
$acl = { 'name' => 'access',
'values' => [ ] };
push(@access, $acl);
}
&store_ldap_access($acl, $p);
}
# Write out access directives
if (&get_config_type() == 1) {
&save_directive($conf, "access", @access);
}
else {
&save_ldif_directive($conf, "olcAccess", $defdb, @access);
}
&flush_file_lines();
&unlock_slapd_files();
# Log and return
&webmin_log($in{'delete'} ? "delete" : $in{'new'} ? "create" : "modify",
"access", $p->{'what'});
&redirect("edit_acl.cgi");
+24
View File
@@ -0,0 +1,24 @@
do 'ldap-server-lib.pl';
@acl_functions = ( &get_config_type() == 2 ? 'ldif' : 'slapd',
'schema', 'acl', 'browser', 'create', 'start', 'apply' );
# acl_security_form(&options)
# Output HTML for editing security options for the acl module
sub acl_security_form
{
foreach my $f (@acl_functions) {
print &ui_table_row($text{'acl_'.$f},
&ui_yesno_radio($f, $_[0]->{$f}));
}
}
# acl_security_save(&options)
# Parse the form for security options for the acl module
sub acl_security_save
{
foreach my $f (@acl_functions) {
$_[0]->{$f} = $in{$f};
}
}
+45
View File
@@ -0,0 +1,45 @@
#!/usr/local/bin/perl
# Create a whole new object
require './ldap-server-lib.pl';
&error_setup($text{'oadd_err'});
&ReadParse();
$ldap = &connect_ldap_db();
ref($ldap) || &error($ldap);
# Validate inputs
$in{'dn1'} =~ /^\S+$/ || &error($text{'oadd_edn1'});
$in{'dn2'} =~ /\S/ || &error($text{'oadd_edn2'});
@classes = split(/\r?\n/, $in{'classes'});
@classes || &error($text{'oadd_eclasses'});
foreach $c (@classes) {
$c =~ /^\S+$/ || &error(&text('oadd_eclass', $c));
}
push(@attrs, "objectClass", \@classes);
for($i=0; defined($in{"name_$i"}); $i++) {
next if ($in{"name_$i"} eq "");
$in{"name_$i"} =~ /^\S+$/ || &error(&text('oadd_ename', $i+1));
push(@attrs, $in{"name_$i"}, [ split(/\r?\n/, $in{"value_$i"}) ]);
}
$dn = $in{'dn1'}."=".$in{'dn2'};
$dn .= ", $in{'base'}" if ($in{'base'});
# Check for a clash
$rv = $ldap->search(base => $dn,
filter => '(objectClass=*)',
scope => 'base');
if ($rv && !$rv->code) {
($clash) = $rv->all_entries;
$clash && &error(&text('oadd_eclash', "<tt>$dn</tt>"));
}
# Create the object
$rv = $ldap->add($dn, attr => \@attrs);
if (!$rv || $rv->code) {
&error(&text('oadd_eadd', "<tt>$dn</tt>",
&ldap_error($rv)));
}
&webmin_log('create', 'dn', $dn);
&redirect("edit_browser.cgi?base=".&urlize($dn));
+35
View File
@@ -0,0 +1,35 @@
#!/usr/local/bin/perl
# Add a new LDAP attribute
require './ldap-server-lib.pl';
&error_setup($text{'add_err'});
$access{'browser'} || &error($text{'browser_ecannot'});
&ReadParse();
$ldap = &connect_ldap_db();
ref($ldap) || &error($ldap);
# Get the base object
$rv = $ldap->search(base => $in{'base'},
filter => '(objectClass=*)',
scope => 'base');
if (!$rv || $rv->code) {
&error(&ldap_error($rv));
}
($bo) = $rv->all_entries;
$bo || &error(&text('save_ebase', "<tt>$in{'base'}</tt>"));
$in{'add'} =~ /^\S+$/ || &error($text{'add_eadd'});
$in{'value'} =~ /\S/ || &error($text{'add_evalue'});
# Add the value
$rv = $ldap->modify($bo->dn(),
add => { $in{'add'} => $in{'value'} });
if (!$rv || $rv->code) {
&error(&text('add_emodify', "<tt>".$bo->dn()."</tt>",
"<tt>$in{'add'}</tt>",
&ldap_error($rv)));
}
# Return to object
&webmin_log('create', 'attr', $in{'add'}, { 'dn' => $in{'base'},
'value' => $in{'value'} });
&redirect("edit_browser.cgi?base=".&urlize($in{'base'})."&mode=attrs");
+82
View File
@@ -0,0 +1,82 @@
#!/usr/local/bin/perl
# Show a form for adding a new object
require './ldap-server-lib.pl';
&ReadParse();
$ldap = &connect_ldap_db();
ref($ldap) || &error($ldap);
if ($in{'clone'}) {
# Get original object
$rv = $ldap->search(base => $in{'base'},
filter => '(objectClass=*)',
scope => 'base');
if (!$rv || $rv->code) {
&error(&text('oadd_eget', "<tt>$in{'base'}</tt>",
&ldap_error($rv)));
}
($bo) = $rv->all_entries;
if ($in{'base'} =~ /^([^=]+)=([^,]+)[, ]*(.*)$/) {
$dn1 = $1;
$dn2 = $2;
$base = $3;
}
@classes = $bo->get_value("objectClass");
foreach $a ($bo->attributes()) {
next if ($a eq "objectClass");
local @av = $bo->get_value($a);
push(@attrs, [ $a, @av == 1 ? $av[0] : \@av ]);
}
push(@attrs, [ ], [ ]);
}
else {
# Under some object
$base = $in{'base'};
$dn1 = "cn";
for($i=0; $i<$config{'attr_count'}; $i++) {
push(@attrs, [ ]);
}
}
&ui_print_header(undef, $text{'oadd_title'}, "", "oadd");
print &ui_form_start("add.cgi", "post");
print &ui_table_start($text{'oadd_header'}, undef, 2);
# New object
print &ui_table_row($text{'oadd_dn'},
&ui_textbox("dn1", $dn1, 10)."=".&ui_textbox("dn2", $dn2, 40));
# Parent object
if ($base) {
print &ui_hidden("base", $base);
print &ui_table_row($text{'oadd_base'},
"<tt>$base</tt>");
}
# Object classes
print &ui_table_row($text{'oadd_classes'},
&ui_textarea("classes", join("\n", @classes), 4, 40));
# Other attributes
$i = 0;
$atable = &ui_columns_start([ $text{'browser_name'}, $text{'browser_value'} ]);
foreach $a (@attrs) {
$atable .= &ui_columns_row([
&ui_textbox("name_$i", $a->[0], 30),
ref($a->[1]) ?
&ui_textarea("value_$i", join("\n", @{$a->[1]}),
scalar(@{$a->[1]}), 50) :
&ui_textbox("value_$i", $a->[1], 50),
]);
$i++;
}
$atable .= &ui_columns_end();
print &ui_table_row($text{'oadd_attrs'},
$atable);
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'create'} ] ]);
&ui_print_footer("edit_browser.cgi?base=".&urlize($in{'base'}),
$text{'browser_return'});
+12
View File
@@ -0,0 +1,12 @@
#!/usr/local/bin/perl
# Apply the current config
require './ldap-server-lib.pl';
&error_setup($text{'apply_err'});
$access{'apply'} || &error($text{'apply_ecannot'});
$err = &apply_configuration();
&error($err) if ($err);
&webmin_log('apply');
&redirect("");
+50
View File
@@ -0,0 +1,50 @@
do 'ldap-server-lib.pl';
# backup_config_files()
# Returns files and directories that can be backed up
sub backup_config_files
{
local @rv;
if (&local_ldap_server() == 1) {
push(@rv, $config{'config_file'});
push(@rv, map { $_->{'file'} } &list_schema_files());
}
return @rv;
}
# pre_backup(&files)
# Called before the files are actually read
sub pre_backup
{
return undef;
}
# post_backup(&files)
# Called after the files are actually read
sub post_backup
{
return undef;
}
# pre_restore(&files)
# Called before the files are restored from a backup
sub pre_restore
{
return undef;
}
# post_restore(&files)
# Called after the files are restored from a backup
sub post_restore
{
if (&local_ldap_server() == 1) {
return &apply_configuration();
}
else {
return undef;
}
}
1;
+23
View File
@@ -0,0 +1,23 @@
#!/usr/local/bin/perl
# Enable or disable the LDAP server at boot
require './ldap-server-lib.pl';
&error_setup($text{'bootup_err'});
&local_ldap_server() == 1 || &error($text{'slapd_elocal'});
$access{'start'} || &error($text{'bootup_ecannot'});
&ReadParse();
&foreign_require("init", "init-lib.pl");
$iname = $config{'init_name'} || $module_name;
if ($in{'boot'}) {
$pidfile = &get_ldap_server_pidfile();
&init::enable_at_boot($iname, "Start OpenLDAP server",
"$config{'slapd'} 2>&1 </dev/null",
"kill `cat $pidfile`");
}
else {
&init::disable_at_boot($iname);
}
&webmin_log("boot", undef, $in{'boot'});
&redirect("");
+17
View File
@@ -0,0 +1,17 @@
do 'ldap-server-lib.pl';
sub cgi_args
{
my ($cgi) = @_;
if ($cgi eq 'edit_browser.cgi') {
# Defaults to top of tree
return '';
}
elsif ($cgi eq 'edit_sfile.cgi' || $cgi eq 'view_sfile.cgi') {
# First schema file, if possible
my @files = &list_schema_files();
return @files ? 'file='.&urlize($files[0]->{'file'}) : 'none';
}
return undef;
}
+7
View File
@@ -0,0 +1,7 @@
config_file=/etc/ldap/slapd.conf
schema_dir=/etc/ldap/schema
slapd=slapd
ldap_user=ldap
browse_max=100
attr_count=6
ldapadd=ldapadd
+11
View File
@@ -0,0 +1,11 @@
config_file=/etc/ldap/slapd.conf
schema_dir=/etc/ldap/schema
slapd=slapd
ldap_user=ldap
browse_max=100
start_cmd=/etc/init.d/ldap start
stop_cmd=/etc/init.d/ldap stop
apply_cmd=/etc/init.d/ldap restart
init_name=ldap
attr_count=6
ldapadd=ldapadd
+12
View File
@@ -0,0 +1,12 @@
config_file=/etc/openldap/slapd.d
schema_dir=/etc/openldap/schema
slapd=slapd
ldap_user=ldap
browse_max=100
start_cmd=systemctl start slapd
stop_cmd=systemctl stop slapd
apply_cmd=systemctl restart slapd
init_name=slapd
data_dir=/var/lib/ldap
attr_count=6
ldapadd=ldapadd
+12
View File
@@ -0,0 +1,12 @@
config_file=/etc/openldap/slapd.d
schema_dir=/etc/openldap/schema
slapd=slapd
ldap_user=ldap
browse_max=100
start_cmd=systemctl start slapd
stop_cmd=systemctl stop slapd
apply_cmd=systemctl restart slapd
init_name=slapd
data_dir=/var/lib/ldap
attr_count=6
ldapadd=ldapadd
+12
View File
@@ -0,0 +1,12 @@
config_file=/etc/openldap/slapd.d
schema_dir=/etc/openldap/schema
slapd=slapd
ldap_user=ldap
browse_max=100
start_cmd=systemctl start slapd
stop_cmd=systemctl stop slapd
apply_cmd=systemctl restart slapd
init_name=slapd
data_dir=/var/lib/ldap
attr_count=6
ldapadd=ldapadd
@@ -0,0 +1,12 @@
config_file=/etc/openldap/slapd.d
schema_dir=/etc/openldap/schema
slapd=slapd
ldap_user=ldap
browse_max=100
start_cmd=systemctl start slapd
stop_cmd=systemctl stop slapd
apply_cmd=systemctl restart slapd
init_name=slapd
data_dir=/var/lib/ldap
attr_count=6
ldapadd=ldapadd
+12
View File
@@ -0,0 +1,12 @@
config_file=/etc/openldap/slapd.d
schema_dir=/etc/openldap/schema
slapd=slapd
ldap_user=ldap
browse_max=100
start_cmd=systemctl start slapd
stop_cmd=systemctl stop slapd
apply_cmd=systemctl restart slapd
init_name=slapd
data_dir=/var/lib/ldap
attr_count=6
ldapadd=ldapadd
+12
View File
@@ -0,0 +1,12 @@
config_file=/etc/openldap/slapd.d
schema_dir=/etc/openldap/schema
slapd=slapd
ldap_user=ldap
browse_max=100
start_cmd=systemctl start slapd
stop_cmd=systemctl stop slapd
apply_cmd=systemctl restart slapd
init_name=slapd
data_dir=/var/lib/ldap
attr_count=6
ldapadd=ldapadd
@@ -0,0 +1,12 @@
config_file=/etc/openldap/slapd.d
schema_dir=/etc/openldap/schema
slapd=slapd
ldap_user=ldap
browse_max=100
start_cmd=/etc/init.d/slapd start
stop_cmd=/etc/init.d/slapd stop
apply_cmd=/etc/init.d/slapd restart
init_name=slapd
data_dir=/var/lib/ldap
attr_count=6
ldapadd=ldapadd
@@ -0,0 +1,12 @@
config_file=/etc/openldap/slapd.d
schema_dir=/etc/openldap/schema
slapd=slapd
ldap_user=ldap
browse_max=100
start_cmd=systemctl start slapd
stop_cmd=systemctl stop slapd
apply_cmd=systemctl restart slapd
init_name=slapd
data_dir=/var/lib/ldap
attr_count=6
ldapadd=ldapadd
+12
View File
@@ -0,0 +1,12 @@
config_file=/etc/openldap/slapd.d
schema_dir=/etc/openldap/schema
slapd=slapd
ldap_user=ldap
browse_max=100
start_cmd=systemctl start slapd
stop_cmd=systemctl stop slapd
apply_cmd=systemctl restart slapd
init_name=slapd
data_dir=/var/lib/ldap
attr_count=6
ldapadd=ldapadd
@@ -0,0 +1,12 @@
config_file=/etc/openldap/slapd.d
schema_dir=/etc/openldap/schema
slapd=slapd
ldap_user=ldap
browse_max=100
start_cmd=/etc/init.d/ldap start
stop_cmd=/etc/init.d/ldap stop
apply_cmd=/etc/init.d/ldap restart
init_name=ldap
data_dir=/var/lib/ldap
attr_count=6
ldapadd=ldapadd
@@ -0,0 +1,12 @@
config_file=/etc/openldap/slapd.d
schema_dir=/etc/openldap/schema
slapd=slapd
ldap_user=ldap
browse_max=100
start_cmd=systemctl start slapd
stop_cmd=systemctl stop slapd
apply_cmd=systemctl restart slapd
init_name=slapd
data_dir=/var/lib/ldap
attr_count=6
ldapadd=ldapadd
+11
View File
@@ -0,0 +1,11 @@
config_file=/etc/ldap/slapd.d
schema_dir=/etc/ldap/schema
slapd=slapd
ldap_user=openldap
browse_max=100
start_cmd=/etc/init.d/slapd start
stop_cmd=/etc/init.d/slapd stop
apply_cmd=/etc/init.d/slapd restart
init_name=slapd
attr_count=6
ldapadd=ldapadd
+11
View File
@@ -0,0 +1,11 @@
config_file=/etc/ldap/slapd.d
schema_dir=/etc/ldap/schema
slapd=slapd
ldap_user=ldap
browse_max=100
start_cmd=/etc/init.d/slapd start
stop_cmd=/etc/init.d/slapd stop
apply_cmd=/etc/init.d/slapd restart
init_name=slapd
attr_count=6
ldapadd=ldapadd
+11
View File
@@ -0,0 +1,11 @@
config_file=/etc/ldap/slapd.conf
schema_dir=/etc/ldap/schema
slapd=slapd
ldap_user=ldap
browse_max=100
start_cmd=/etc/init.d/slapd start
stop_cmd=/etc/init.d/slapd stop
apply_cmd=/etc/init.d/slapd restart
init_name=slapd
attr_count=6
ldapadd=ldapadd
+10
View File
@@ -0,0 +1,10 @@
config_file=/usr/local/etc/openldap/slapd.conf
schema_dir=/usr/local/etc/openldap/schema
slapd=/usr/local/libexec/slapd
ldap_user=ldap
browse_max=100
attr_count=6
start_cmd=/usr/local/etc/rc.d/slapd start
stop_cmd=/usr/local/etc/rc.d/slapd stop
apply_cmd=/usr/local/etc/rc.d/slapd restart
ldapadd=ldapadd
+11
View File
@@ -0,0 +1,11 @@
config_file=/usr/local/etc/openldap/slapd.conf
schema_dir=/usr/local/etc/openldap/schema
slapd=/usr/local/libexec/slapd
ldap_user=ldap
browse_max=100
attr_count=6
start_cmd=/usr/local/etc/rc.d/slapd forcestart
stop_cmd=/usr/local/etc/rc.d/slapd forcestop
apply_cmd=/usr/local/etc/rc.d/slapd onerestart
init_name=slapd
ldapadd=ldapadd
+11
View File
@@ -0,0 +1,11 @@
config_file=/etc/openldap/slapd.conf
schema_dir=/etc/openldap/schema
slapd=slapd
ldap_user=ldap
browse_max=100
start_cmd=/etc/rc./init.d/ldap start
stop_cmd=/etc/rc./init.d/ldap stop
apply_cmd=/etc/rc./init.d/ldap restart
init_name=ldap
attr_count=6
ldapadd=ldapadd
@@ -0,0 +1,11 @@
config_file=/etc/openldap/slapd.d
schema_dir=/etc/openldap/schema
slapd=/usr/lib/openldap/slapd
ldap_user=ldap
browse_max=100
start_cmd=systemctl start ldap
stop_cmd=systemctl stop ldap
apply_cmd=systemctl restart ldap
init_name=ldap
attr_count=6
ldapadd=ldapadd
+9
View File
@@ -0,0 +1,9 @@
config_file=/etc/openldap/slapd.conf
schema_dir=/etc/openldap/schema
slapd=/usr/libexec/slapd
ldap_user=ldap
browse_max=100
data_dir=/var/lib/openladp-data
attr_count=6
ldapadd=ldapadd
+12
View File
@@ -0,0 +1,12 @@
config_file=/etc/openldap/slapd.conf
schema_dir=/etc/openldap/schema
slapd=slapd
ldap_user=ldap
browse_max=100
start_cmd=/etc/init.d/ldap start
stop_cmd=/etc/init.d/ldap stop
apply_cmd=/etc/init.d/ldap restart
init_name=ldap
data_dir=/var/lib/ldap
attr_count=6
ldapadd=ldapadd
+12
View File
@@ -0,0 +1,12 @@
config_file=/etc/openldap/slapd.d
schema_dir=/etc/openldap/schema
slapd=slapd
ldap_user=ldap
browse_max=100
start_cmd=systemctl start slapd.service
stop_cmd=systemctl stop slapd.service
apply_cmd=systemctl restart slapd.service
init_name=slapd
data_dir=/var/lib/ldap
attr_count=6
ldapadd=ldapadd
+8
View File
@@ -0,0 +1,8 @@
config_file=/opt/csw/etc/openldap/slapd.conf
alt_config_file=/opt/csw/etc/openldap/slapd.conf.default
schema_dir=/opt/csw/etc/openldap/schema
slapd=/opt/csw/libexec/slapd
ldap_user=ldap
browse_max=100
attr_count=6
ldapadd=ldapadd
+11
View File
@@ -0,0 +1,11 @@
config_file=/etc/openldap/slapd.d
schema_dir=/etc/openldap/schema
slapd=/usr/lib/openldap/slapd
ldap_user=ldap
browse_max=100
start_cmd=/etc/init.d/ldap start
stop_cmd=/etc/init.d/ldap stop
apply_cmd=/etc/init.d/ldap restart
init_name=ldap
attr_count=6
ldapadd=ldapadd
+11
View File
@@ -0,0 +1,11 @@
schema_dir=/etc/ldap/schema
apply_cmd=/etc/init.d/ldap restart
start_cmd=/etc/init.d/ldap start
ldap_user=ldap
slapd=slapd
init_name=ldap
config_file=/etc/ldap/slapd.conf
stop_cmd=/etc/init.d/ldap stop
attr_count=6
browse_max=100
ldapadd=ldapadd
+11
View File
@@ -0,0 +1,11 @@
config_file=/etc/openldap/slapd.conf
schema_dir=/etc/openldap/schema
slapd=slapd
ldap_user=ldap
browse_max=100
start_cmd=/etc/rc./init.d/ldap start
stop_cmd=/etc/rc./init.d/ldap stop
apply_cmd=/etc/rc./init.d/ldap restart
init_name=ldap
attr_count=6
ldapadd=ldapadd
+24
View File
@@ -0,0 +1,24 @@
line1=Options for Webmin connection to LDAP server,11
server=LDAP server hostname,3,This system,Remote system
port=LDAP server port,3,Detect automatically
user=Login for LDAP server,3,Detect automatically
pass=Password for LDAP server,3,Detect automatically
ssl=Use encryption with LDAP server?,1,-Detect automatically,1-Yes,2-Yes TLS,0-No
line4=LDAP server options,11
slapd=Full path to OpenLDAP server program,8
ldapadd=Full path to <tt>ldapadd</tt> command,8
config_file=OpenLDAP server configuration file or directory,8
schema_dir=OpenLDAP schema directory,7
ldap_user=User OpenLDAP server runs as,5
init_name=OpenLDAP server boot script name,3,Same as module name
data_dir=OpenLDAP database directory,3,Not known
line2=User interface settings,11
browse_max=Maximum number of sub-objects to display,3,Unlimited
attr_count=Number of attribute fields for new objects,0
line3=LDAP server commands,11
start_cmd=Command to start LDAP server,3,Just run <tt>slapd</tt>
stop_cmd=Command to stop LDAP server,3,Just kill process
apply_cmd=Command to apply configuration,3,Just stop and re-start
+19
View File
@@ -0,0 +1,19 @@
line1=Opcions del servidor LDAP,11
server=Nom de host del servidor LDAP,3,Aquest sistema,Sistema remot
port=Port del servidor LDAP,3,Detecta'l automàticament
user=Usuari del servidor LDAP,3,Detecta'l automàticament
pass=Contrasenya del servidor LDAP,3,Detecta-la automàticament
ssl=Utilitza xifratge TLS amb el servidor LDAP,1,-Detecta-ho automàticament,1-Sí,2-Sí TLS,0-No
slapd=Camí complet del programa servidor OpenLDAP,8
config_file=Fitxer o directori de configuració OpenLDAP,8
schema_dir=Directori d'esquemes OpenLDAP,7
ldap_user=Usuari sota el qual s'executa OpenLDAP,5
init_name=Nom del script d'inici d'OpenLDAP,3,Igual que el nom del mòdul
data_dir=Directori de la base de dades OpenLDAP,3,Desconegut
line2=Configuració de la interfície d'usuari,11
browse_max=Nombre màxim de subobjectes a mostrar,3,Il·limitat
attr_count=Nombre de camps d'atribut dels nous objectes,0
line3=Ordres del servidor LDAP,11
start_cmd=Ordre per iniciar el servidor LDAP,3,Executa <tt>slapd</tt>
stop_cmd=Ordre per aturar el servidor LDAP,3,Mata el procés
apply_cmd=Ordre per aplicar la configuració,3,Atura i reinicia
+19
View File
@@ -0,0 +1,19 @@
line1=LDAP&#45;Server Optionen,11
server=LDAP&#45;Server Hostname,3,Dieses System,Entferntes System
port=LDAP&#45;Server&#45;Port,3,Automatisch erkennen
user=Login für LDAP&#45;Server,3,Automatisch erkennen
pass=Passwort für LDAP&#45;Server,3,Automatisch erkennen
ssl=Verwendet Verschlüsselung mit LDAP&#45;Server?,1,-Automatisch erkennen,1-Ja,2-Ja TLS,0-Nein
slapd=Voller Pfad zum OpenLDAP&#45;Server&#45;Programm,8
config_file=OpenLDAP&#45;Server&#45;Konfigurationsdatei oder Verzeichnis,8
schema_dir=OpenLDAP&#45;Schema&#45;Verzeichnis,7
ldap_user=Benutzer führt OpenLDAP&#45;Server aus als,5
init_name=OpenLDAP&#45;Server Boot&#45;Skript Name,3,Wie Modulnamen
data_dir=OpenLDAP&#45;Datenbank&#45;Verzeichnis,3,Nicht bekannt
line2=Einstellungen der Benutzeroberfläche,11
browse_max=Maximale Anzahl an anzuzeigende Unterobjekte,3,Unbegrenzt
attr_count=Anzahl der Attributfelder für neue Objekte,0
line3=LDAP&#45;Server Befehl,11
start_cmd=Befehl zum Stoppen des LDAP&#45;Server,3,Nur <tt>slapd</tt> ausführen
stop_cmd=Befehl zum Stoppen des LDAP&#45;Server,3,Nur Prozess töten
apply_cmd=Befehl zum Anwenden der Konfiguration,3,Nur Stoppen und Neustarten
View File
+18
View File
@@ -0,0 +1,18 @@
line1=LDAP server opties,11
server=LDAP server hostnaam,3,Dit systeem,Remote systeem
port=LDAP server poort,3,Automatisch detecteren
user=Inlog voor LDAP server,3,Detecteer automatisch
pass=Wachtwoord voor LDAP server,3,Automatisch detecteren
ssl=Gebruik versleuteling met de LDAP server?,1,-Detecteer automatisch,1-Ja,2-Ja met TLS,0-Nee
slapd=Volledig pad naar het OpenLDAP server programma,8
config_file=OpenLDAP server configuratie file of directory,8
schema_dir=OpenLDAP schema directory,7
ldap_user=Gebruiker OpenLDAP server werkt als,5
init_name=OpenLDAP server boot script naam,3,Zelfde als module naam
data_dir=OpenLDAP database directory,3,Onbekend
line2=Gebruiker interface instellingen,11
browse_max=Maximaal aantal sub-objecten om te laten zien,3,Ongelimiteerd
line3=LDAP server opdrachten,11
start_cmd=Opdracht om de LDAP server te starten,3,Gewoon uitvoeren <tt>slapd</tt>
stop_cmd=Opdracht om de LDAP server te stoppen,3,Gewoon het proces killen
apply_cmd=Opdracht om de configuratie toe te voegen,3,Gewoon stoppen en herstarten
+19
View File
@@ -0,0 +1,19 @@
line1=Innstillinger for LDAP tjener,11
server=LDAP tjener vertsnavn,3,Dette systemet,Eksternt system
port=LDAP tjener port,3,Oppdage automatisk
user=Brukernavn for LDAP tjener,3,Oppdage automatisk
pass=Passord for LDAP tjener,3,Oppdage automatisk
ssl=Bruk kryptering med LDAP tjeneren?,1,-Oppdag automatisk,1-Ja,2-Ja TLS,0-Nei
slapd=Full sti til OpenLDAP tjener-program,8
config_file=Fil eller katalog for OpenLDAP tjenerkonfigurasjon,8
schema_dir=OpenLDAP skjema-katalog,7
ldap_user=Bruker OpenLDAP tjeneren kjører som,5
init_name=Navn på oppstartsscript for LDAP tjener,3,Samme som modulens navn
data_dir=OpenLDAP databasekatalog,3,Ikke kjent
line2=Innstillinger for brukergrensesnitt,11
browse_max=Maks. antall under-objekter som skal vises,3,Ubegrenset
attr_count=Antall attributt-felter for nye objekter,0
line3=LDAP tjener kommandoer,11
start_cmd=Kommando for å starte LDAP tjener,3,Bare kjør <tt>slapd</tt>
stop_cmd=Kommando for å stoppe LDAP tjener,3,Bare stopp prosessen
apply_cmd=Kommando for å ta i bruk konfigurasjon,3,Bare stopp og omstart
+18
View File
@@ -0,0 +1,18 @@
line1=Opções do servidor LDAP,11
server=Nome do servidor LDAP,3,Este sistema,Sistema remoto
port=Porta do servidor LDAP,3,Detectar automaticamente
user=Login para o servidor LDAP,3,Detectar automaticamente
pass=Senha para o servidor LDAP,3,Detectar automaticamente
ssl=Usar criptografia com o servidor LDAP?,1,-Detectar automaticamente,1-Sim,2-Sim TLS,0-Não
slapd=Caminho completo para o programa do servidor OpenLDAP,8
config_file=Arquivo ou diretório de configuração do servidor OpenLDAP,8
schema_dir=Diretório de schema do OpenLDAP,7
ldap_user=Usuário que o OpenLDAP executa como,5
init_name=Nome do script de boot do servidor OpenLDAP,3,Igual ao nome do módulo
data_dir=Diretório da base de dados OpenLDAP,3,Desconhecido
line2=Configurações da interface de usuário,11
browse_max=Número máximo de sub-objetos para exibir,3,Ilimitado
line3=Comandos do servidor LDAP,11
start_cmd=Comando para iniciar o servidor LDAP,3,Apenas execute <tt>slapd</tt>
stop_cmd=Comando para encerrar o servidor LDAP,3,Apenas mate o processo
apply_cmd=Comando para aplicar a configuração,3,Apenas pare e re-inicie
+107
View File
@@ -0,0 +1,107 @@
#!/usr/local/bin/perl
# Actually create a new base DN
require './ldap-server-lib.pl';
&ReadParse();
&error_setup($text{'create_err'});
$access{'create'} || &error($text{'create_ecannot'});
$ldap = &connect_ldap_db();
ref($ldap) || &error($ldap);
# Validate inputs
if ($in{'mode'} == 0) {
$in{'domain'} =~ /^[a-z0-9\.\-]+$/ || &error($text{'create_edom'});
@p = split(/\./, $in{'domain'});
$dn = join(", ", map { "dc=$_" } @p);
}
else {
$in{'dn'} =~ /^\S+=\S+/ || &error($text{'create_edn'});
$dn = $in{'dn'};
}
# Work out class for the DN
$schema = $ldap->schema();
@allocs = map { $_->{'name'} }
grep { $_->{'structural'} }
$schema->all_objectclasses();
@ocs = ( );
foreach my $poc ("top", "domain") {
if (&indexof($poc, @allocs) >= 0) {
push(@ocs, $poc);
}
}
@ocs || &error(&text('create_eoc'));
# Do it, while showing the user
&ui_print_unbuffered_header(undef, $text{'create_title'}, "");
# Create the DN
print &text('create_doingdn', "<tt>".&html_escape($dn)."</tt>"),"<br>\n";
@attrs = ( "objectClass", \@ocs );
if (&indexof("domain", @ocs) >= 0) {
# Domain class needs dc
if ($dn =~ /^([^=]+)=([^, ]+)/) {
push(@attrs, $1, $2);
}
}
$rv = $ldap->add($dn, attr => \@attrs);
if (!$rv || $rv->code) {
print &text('create_edoingdn', &ldap_error($rv)),"<p>\n";
}
else {
print $text{'create_done'},"<p>\n";
$ok = 1;
}
if ($ok && $in{'example'}) {
# Add the example user/alias
if ($in{'example'} == 1 || $in{'example'} == 2) {
# User
$edn = "uid=example, ".$dn;
@attrs = ( "cn", "Example user",
"sn", "Example user",
"uid", "example",
"uidNumber", 9999,
"gidNumber", 9999,
"loginShell", "/bin/sh",
"homeDirectory", "/home/example",
"objectClass", [ "posixAccount", "person" ],
"userPassword", "*LK*" );
if ($in{'example'} == 2) {
# With mail
push(@attrs, "mail", "example\@example.com");
}
}
elsif ($in{'example'} == 3) {
# Virtuser
# XXX not sure about these .. is there any standard?
$edn = "cn=example\@example.com, ".$dn;
@attrs = ( "mail", "example\@example.com",
"mailForwardingAddress", "example\@somewhere.com",
"objectClass", [ "top" ] );
}
elsif ($in{'example'} == 4) {
# Unix group
$edn = "cn=example, ".$dn;
@attrs = ( "cn", "example",
"gidNumber", 9999,
"memberUid", "example",
"objectClass", [ "posixGroup" ] );
}
print &text('create_doingex',
"<tt>".&html_escape($edn)."</tt>"),"<br>\n";
$rv = $ldap->add($edn, attr => \@attrs);
if (!$rv || $rv->code) {
print &text('create_edoingex', &ldap_error($rv)),"<p>\n";
}
else {
print $text{'create_done'},"<p>\n";
}
}
if ($ok) {
&webmin_log("create", undef, $dn);
}
&ui_print_footer("", $text{'index_return'});
+8
View File
@@ -0,0 +1,8 @@
slapd=1
ldif=1
schema=1
acl=1
browser=1
create=1
start=1
apply=1
+41
View File
@@ -0,0 +1,41 @@
#!/usr/local/bin/perl
# Delete a bunch of access control rules
require './ldap-server-lib.pl';
&error_setup($text{'dacl_err'});
&local_ldap_server() == 1 || &error($text{'slapd_elocal'});
$access{'acl'} || &error($text{'acl_ecannot'});
&ReadParse();
# Filter out un-wanted rules
&lock_slapd_files();
if (&get_config_type() == 1) {
$conf = &get_config();
@access = &find("access", $conf);
}
else {
$defdb = &get_default_db();
$conf = &get_ldif_config();
@access = &find_ldif("olcAccess", $conf, $defdb);
}
%d = map { $_, 1 } split(/\0/, $in{'d'});
keys(%d) || &error($text{'dacl_enone'});
for($i=0; $i<@access; $i++) {
push(@newaccess, $access[$i]) if (!$d{$i});
}
# Save them
if (&get_config_type() == 1) {
&save_directive($conf, "access", @newaccess);
}
else {
&save_ldif_directive($conf, "olcAccess", $defdb, @newaccess);
}
&flush_file_lines();
&unlock_slapd_files();
&webmin_log("delete", "accesses", scalar(keys(%d)));
&redirect("edit_acl.cgi");
+38
View File
@@ -0,0 +1,38 @@
#!/usr/local/bin/perl
# Remove several LDAP attributes
require './ldap-server-lib.pl';
&error_setup($text{'delete_err'});
$access{'browser'} || &error($text{'browser_ecannot'});
&ReadParse();
$ldap = &connect_ldap_db();
ref($ldap) || &error($ldap);
@d = split(/\0/, $in{'d'});
@d || &error($text{'delete_enone'});
# Get the base object
$rv = $ldap->search(base => $in{'base'},
filter => '(objectClass=*)',
scope => 'base');
if (!$rv || $rv->code) {
&error(&ldap_error($rv));
}
($bo) = $rv->all_entries;
$bo || &error(&text('save_ebase', "<tt>$in{'base'}</tt>"));
# Delete the attributes
$rv = $ldap->modify($bo->dn(),
delete => \@d);
if (!$rv || $rv->code) {
&error(&text('delete_emodify', "<tt>".$bo->dn()."</tt>", scalar(@d),
&ldap_error($rv)));
}
# Return to object
if (@d == 1) {
&webmin_log('delete', 'attr', $d[0], { 'dn' => $in{'base'} });
}
else {
&webmin_log('delete', 'attrs', scalar(@d), { 'dn' => $in{'base'} });
}
&redirect("edit_browser.cgi?base=".&urlize($in{'base'})."&mode=attrs");
+43
View File
@@ -0,0 +1,43 @@
#!/usr/local/bin/perl
# Move an access control rule down (later)
require './ldap-server-lib.pl';
&local_ldap_server() == 1 || &error($text{'slapd_elocal'});
$access{'acl'} || &error($text{'acl_ecannot'});
&ReadParse();
&lock_slapd_files();
if (&get_config_type() == 1) {
# Move down in old-style config
$conf = &get_config();
@access = &find("access", $conf);
($access[$in{'idx'}+1], $access[$in{'idx'}]) =
($access[$in{'idx'}], $access[$in{'idx'}+1]);
&save_directive($conf, "access", @access);
&flush_file_lines($config{'config_file'});
}
else {
# Move down in LDIF config
$defdb = &get_default_db();
$conf = &get_ldif_config();
@access = &find_ldif("olcAccess", $conf, $defdb);
($access[$in{'idx'}+1], $access[$in{'idx'}]) =
($access[$in{'idx'}], $access[$in{'idx'}+1]);
if ($access[$in{'idx'}]->{'values'}->[0] =~ /^\{\d+\}to/ &&
$access[$in{'idx'}+1]->{'values'}->[0] =~ /^\{\d+\}to/) {
# Swap indexes too
($access[$in{'idx'}]->{'values'}->[0],
$access[$in{'idx'}+1]->{'values'}->[0]) =
($access[$in{'idx'}+1]->{'values'}->[0],
$access[$in{'idx'}]->{'values'}->[0]);
}
&save_ldif_directive($conf, "olcAccess", $defdb, @access);
&flush_file_lines();
}
&unlock_slapd_files();
&webmin_log("down", "access", $p->{'what'});
&redirect("edit_acl.cgi");
+24
View File
@@ -0,0 +1,24 @@
#!/usr/local/bin/perl
# Move a schema include down (later)
require './ldap-server-lib.pl';
&local_ldap_server() == 1 || &error($text{'slapd_elocal'});
$access{'schema'} || &error($text{'schema_ecannot'});
&ReadParse();
# Find it includes
&lock_slapd_files();
$conf = &get_config();
@incs = &find_value("include", $conf);
$idx = &indexof($in{'file'}, @incs);
$idx > 0 || &error($text{'schema_emove'});
# Move up
($incs[$idx+1], $incs[$idx]) = ($incs[$idx], $incs[$idx+1]);
&save_directive($conf, "include", @incs);
&flush_file_lines($config{'config_file'});
&unlock_slapd_files();
&webmin_log("sup", undef, $in{'file'});
&redirect("edit_schema.cgi");
+66
View File
@@ -0,0 +1,66 @@
#!/usr/local/bin/perl
# List all access control settings from ldap server config
require './ldap-server-lib.pl';
&local_ldap_server() == 1 || &error($text{'slapd_elocal'});
$access{'acl'} || &error($text{'acl_ecannot'});
&ui_print_header(undef, $text{'acl_title'}, "", "acl");
# Get ACLs
if (&get_config_type() == 1) {
$conf = &get_config();
@access = &find("access", $conf);
$hasorder = 0;
}
else {
$defdb = &get_default_db();
$conf = &get_ldif_config();
@access = &find_ldif("olcAccess", $conf, $defdb);
@access = sort {
$pa = &parse_ldap_access($a);
$pb = &parse_ldap_access($b);
$pa->{'order'} <=> $pb->{'order'} } @access;
$hasorder = 1;
}
@crlinks = ( &ui_link("acl_form.cgi?new=1",$text{'acl_add'}) );
if (@access) {
# Show table of ACLs
print &ui_form_start("delete_acls.cgi", "post");
@links = ( &select_all_link("d"), &select_invert_link("d"), @crlinks );
print &ui_links_row(\@links);
@tds = ( "width=5", "width=30%", "width=65%", "width=5%" );
print &ui_columns_start([ "",
$text{'acl_what'},
$text{'acl_who'},
$hasorder ? ( $text{'acl_order'} ) : ( ),
$text{'acl_move'} ],
100, 0, \@tds);
$i = 0;
foreach $a (@access) {
$mover = &ui_up_down_arrows(
"up_acl.cgi?idx=$i",
"down_acl.cgi?idx=$i",
$i > 0,
$i < @access-1);
$p = &parse_ldap_access($a);
print &ui_checked_columns_row([
&ui_link("acl_form.cgi?idx=$i",$p->{'whatdesc'}),
$p->{'bydesc'},
$hasorder ? ( $p->{'order'} ) : ( ),
$mover,
], \@tds, "d", $i);
$i++;
}
print &ui_columns_end();
print &ui_links_row(\@links);
print &ui_form_end([ [ undef, $text{'acl_delete'} ] ]);
}
else {
# None yet, meaning defaults
print "<b>$text{'acl_none'}</b><p>\n";
print &ui_links_row(\@crlinks);
}
&ui_print_footer("", $text{'index_return'});
+274
View File
@@ -0,0 +1,274 @@
#!/usr/local/bin/perl
# Show the LDAP server's data tree
require './ldap-server-lib.pl';
&ui_print_header(undef, $text{'browser_title'}, "", "browser");
$access{'browser'} || &error($text{'browser_ecannot'});
&ReadParse();
# Connect to LDAP server, or die trying
$ldap = &connect_ldap_db();
if (!ref($ldap)) {
print &text('browser_econn', $ldap),"<p>\n";
&ui_print_footer("", $text{'index_return'});
exit;
}
# Work out the base (current navigation level)
if ($in{'goparent'}) {
$base = $in{'parent'};
}
elsif (!$in{'base'}) {
$base = &get_ldap_base();
}
else {
$base = $in{'base'};
}
# Show current base (with option to change), and parent button
$formno = 0;
print &ui_form_start("edit_browser.cgi"),"\n";
print "<b>$text{'browser_base'}</b>\n";
print &ui_textbox("base", $base, 60)," ",&ui_submit($text{'browser_ok'}),"\n";
$parent = $base;
$parent =~ s/^[^,]+,\s*//;
if ($parent =~ /\S/) {
print &ui_hidden("parent", $parent),"\n";
print "&nbsp;&nbsp;\n";
print &ui_submit($text{'browser_parent'}, "goparent"),"\n";
}
print &ui_form_end();
$formno++;
# Show list of objects under the base, and its attributes
if ($in{'search'}) {
$filter = '(|'.join('', map { '('.$_.'=*'.$in{'search'}.'*)' }
@search_attrs).')';
}
else {
$filter = '(objectClass=*)';
}
$rv = $ldap->search(base => $base,
filter => $filter,
scope => 'one',
sizelimit => int($config{'browse_max'}),
);
@subs = sort { lc($a->dn()) cmp lc($b->dn()) } $rv->all_entries;
if ($rv->code && !@subs) {
# Search failed
print &text('browser_esearch', $rv->error),"<p>\n";
}
else {
# Start tabs for layout
$in{'mode'} ||= @subs || $in{'search'} ? "subs" : "attrs";
@tabs = ( [ 'subs', $text{'browser_subs'} ],
[ 'attrs', $text{'browser_attrs'} ] );
print &ui_tabs_start(\@tabs, "browser", $in{'mode'}, 1);
# Show sub-objects, if any
print &ui_tabs_start_tab("browser", "subs");
@crlinks = ( "<a href='add_form.cgi?base=".
&urlize($base)."'>$text{'browser_sadd'}</a>" );
if ($rv->code || ($in{'search'} && !@subs)) {
# Too many to show
if (@subs && $in{'search'}) {
# Too many results
print &text('browser_toomany2', "<i>$in{'search'}</i>",
$config{'browse_max'}),"<p>\n";
}
elsif (@subs) {
# No search, many sub-objects
print &text('browser_toomany',
$config{'browse_max'}),"<p>\n";
}
else {
# No matches
print &text('browser_nomatch',
"<i>$in{'search'}</i>"),"<p>\n";
}
&show_search_form($text{'browser_search'});
print &ui_links_row(\@crlinks);
}
elsif (@subs) {
# Search result, so show form
if ($in{'search'}) {
&show_search_form($text{'browser_search2'});
}
# Can show some
@tds = ( "width=90%", "width=10%" );
if ($in{'rename'}) {
# Rename form
print &ui_form_start("rename_browser.cgi", "post");
print &ui_hidden("old", $in{'rename'});
}
else {
# Delete sub-objects form
print &ui_form_start("sdelete_browser.cgi", "post");
@tds = ( "width=5", @tds );
@links = ( &select_all_link("d", $formno),
&select_invert_link("d", $formno),
@crlinks,
);
}
print &ui_hidden("base", $base);
print &ui_links_row(\@links);
print &ui_columns_start([ $in{'rename'} ? ( ) : ( "" ),
$text{'browser_sub'},
$text{'browser_acts'},
], 100, 0, \@tds);
foreach $dn (@subs) {
$link = "<a href='edit_browser.cgi?base=".
&urlize($dn->dn())."'>".
&html_escape($dn->dn())."</a>";
@alinks = ( "<a href='edit_browser.cgi?base=".
&urlize($base)."&mode=subs".
"&rename=".&urlize($dn->dn()).
"'>$text{'browser_rename'}</a>" );
if ($in{'rename'} eq $dn->dn()) {
# Renaming this one
@alinks = ( "<a href='edit_browser.cgi?base=".
&urlize($base)."&mode=subs".
"'>$text{'browser_cancel'}</a>" );
print &ui_columns_row([
&ui_textbox("rename", $dn->dn(), 70),
&ui_links_row(\@alinks) ], \@tds);
}
elsif ($in{'rename'}) {
# Display, no delete
print &ui_columns_row([
$link,&ui_links_row(\@alinks) ], \@tds);
}
else {
# Rename or select for delete
print &ui_checked_columns_row([
$link, &ui_links_row(\@alinks) ],
\@tds, "d", $dn->dn());
}
}
print &ui_columns_end();
print &ui_links_row(\@links);
print &ui_form_end([ [ undef,
$in{'rename'} ? $text{'browser_rsave'}
: $text{'browser_sdelete'} ] ]);
$formno++;
}
else {
# Nothing to show
print "<i>$text{'browser_subnone'}</i><p>\n";
print &ui_links_row(\@crlinks);
}
print &ui_tabs_end_tab();
# Show attributes
print &ui_tabs_start_tab("browser", "attrs");
$rv2 = $ldap->search(base => $base,
filter => '(objectClass=*)',
scope => 'base');
($bo) = $rv2->all_entries;
@attrs = sort { lc($a) cmp lc($b) } $bo->attributes();
if (@attrs) {
# Show all attributes
@tds = ( "valign=top width=45%", "valign=top width=45%",
"width=5% valign=top" );
if ($in{'edit'}) {
# Editing form
print &ui_form_start("save_browser.cgi", "post");
print &ui_hidden("edit", $in{'edit'});
}
elsif ($in{'add'}) {
# Add form
print &ui_form_start("add_browser.cgi", "post");
}
else {
# Deleting form
print &ui_form_start("delete_browser.cgi", "post");
@links = ( &select_all_link("d", $formno),
&select_invert_link("d", $formno),
"<a href='edit_browser.cgi?base=".
&urlize($bo->dn())."&add=1&mode=attrs'>".
"$text{'browser_add'}</a>",
"<a href='add_form.cgi?base=".
&urlize($base)."&clone=1'>".
"$text{'browser_clone'}</a>" );
@tds = ( "width=5", @tds );
}
print &ui_hidden("base", $bo->dn());
print &ui_hidden("mode", "attrs");
print &ui_links_row(\@links);
print &ui_columns_start([
$in{'edit'} || $in{'add'} ? ( ) : ( "" ),
$text{'browser_name'},
$text{'browser_value'},
$text{'browser_acts'} ], 100, 0, \@tds);
foreach $a (@attrs) {
@v = $bo->get_value($a);
@alinks = ( "<a href='edit_browser.cgi?base=".
&urlize($bo->dn())."&mode=attrs".
"&edit=$a'>$text{'browser_edit'}</a>" );
@cols = ( $a, join(", ", @v),
&ui_links_row(\@alinks),
);
if ($in{'edit'} eq $a) {
# Edit this one
@alinks = ( "<a href='edit_browser.cgi?base=".
&urlize($bo->dn())."&mode=attrs".
"'>$text{'browser_cancel'}</a>" );
print &ui_columns_row([
$a, &ui_textarea("value", join("\n", @v),
scalar(@v)+1, 60),
&ui_links_row(\@alinks),
], \@tds);
}
elsif ($in{'edit'} || $in{'add'}) {
# Display, no delete
print &ui_columns_row(\@cols, \@tds);
}
else {
# Edit or select for delete
print &ui_checked_columns_row(
\@cols, \@tds, "d", $a);
}
}
if ($in{'add'}) {
# Show row to add an attribute
@alinks = ( "<a href='edit_browser.cgi?base=".
&urlize($bo->dn())."&mode=attrs".
"'>$text{'browser_cancel'}</a>" );
print &ui_columns_row([
&ui_textbox("add", undef, 20),
&ui_textbox("value", undef, 60),
&ui_links_row(\@alinks),
], \@tds);
}
print &ui_columns_end();
print &ui_links_row(\@links);
print &ui_form_end([ [ undef, $in{'edit'} ? $text{'save'} :
$in{'add'} ? $text{'create'} :
$text{'browser_delete'} ] ]);
$formno++;
}
else {
print "<i>$text{'browser_attrnone'}</i><p>\n";
print &ui_links_row(\@links);
}
print &ui_tabs_end_tab();
print &ui_tabs_end(1);
}
$ldap->disconnect();
&ui_print_footer("", $text{'index_return'});
sub show_search_form
{
local ($msg) = @_;
print &ui_form_start("edit_browser.cgi");
print &ui_hidden("base", $base);
print "<b>$msg</b>\n";
print &ui_textbox("search", $in{'search'}, 40),"\n";
print &ui_submit($text{'browser_sok'}),"<p>\n";
print &ui_form_end();
$formno++;
}
+37
View File
@@ -0,0 +1,37 @@
#!/usr/local/bin/perl
# Show a form for creating a new base DN for something
require './ldap-server-lib.pl';
&ui_print_header(undef, $text{'create_title'}, "");
$access{'create'} || &error($text{'create_ecannot'});
print $text{'create_desc'},"<p>\n";
print &ui_form_start("create.cgi", "post");
print &ui_table_start($text{'create_header'}, undef, 2);
# Domain or DN
$dn = &get_ldap_base();
$dom = &get_system_hostname();
if ($dom =~ /^([^\.]+)\.([^\.]+\.\S+)$/) {
$dom = $2; # Just domain name
}
print &ui_table_row($text{'create_dn'},
&ui_radio_table("mode", 0,
[ [ 0, $text{'create_dn0'}, &ui_textbox("domain", $dom, 50) ],
[ 1, $text{'create_dn1'}, &ui_textbox("dn", $dn, 50) ] ]));
# Example to create
print &ui_table_row($text{'create_example'},
&ui_radio("example", 0,
[ [ 0, $text{'no'} ],
[ 1, $text{'create_unix'} ],
[ 2, $text{'create_mail'} ],
[ 4, $text{'create_group'} ],
[ 3, $text{'create_virt'} ] ]));
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'create'} ] ]);
&ui_print_footer("", $text{'index_return'});
+114
View File
@@ -0,0 +1,114 @@
#!/usr/local/bin/perl
# Show local LDAP server configuration options, from LDIF format config
require './ldap-server-lib.pl';
&local_ldap_server() == 1 || &error($text{'slapd_elocal'});
$access{'slapd'} || &error($text{'slapd_ecannot'});
&ui_print_header(undef, $text{'slapd_title'}, "", "slapd");
$conf = &get_ldif_config();
print &ui_form_start("save_ldif.cgi", "post");
print &ui_hidden_table_start($text{'slapd_header'}, "width=100%", 2,
"basic", 1);
# Top-level DN
$defdb = &get_default_db();
$suffix = &find_ldif_value("olcSuffix", $conf, $defdb);
print &ui_table_row($text{'slapd_suffix'},
&ui_textbox('suffix', $suffix, 60));
# Admin login
$rootdn = &find_ldif_value("olcRootDN", $conf, $defdb);
print &ui_table_row($text{'slapd_rootdn'},
&ui_textbox('rootdn', $rootdn, 60));
# Admin password
$rootpw = &find_ldif_value("olcRootPW", $conf, $defdb);
if ($rootpw =~ /^{crypt}(.*)/i) {
$rootmode = 1;
$rootcrypt = $1;
}
elsif ($rootpw =~ /^{sha1}(.*)/i) {
$rootmode = 2;
$rootsha1 = $1;
}
elsif ($rootpw =~ /^{ssha}(.*)/i) {
$rootmode = 4;
$rootssha = $1;
}
elsif ($rootpw =~ /^{[a-z0-9]+}(.*)/i) {
$rootmode = 3;
$rootenc = $rootpw;
}
else {
$rootmode = 0;
$rootplain = $rootpw;
}
# Current password
print &ui_table_row($text{'slapd_rootpw'},
$rootmode == 1 ? &text('slapd_root1', $rootcrypt) :
$rootmode == 2 ? &text('slapd_root2', $rootsha1) :
$rootmode == 3 ? &text('slapd_root3', $rootenc) :
$rootmode == 4 ? &text('slapd_root4', $rootssha) :
$rootplain eq '' ? $text{'slapd_noroot'} :
$rootplain);
# Set to new
print &ui_table_row($text{'slapd_rootchange'},
&ui_opt_textbox('rootchange', undef, 30,
$text{'slapd_leave'}, $text{'slapd_set'}));
# Cache size
$dbcachesize = &find_ldif_value("olcDbCachesize", $conf, $defdb);
print &ui_table_row($text{'slapd_dbcachesize'},
&ui_opt_textbox("dbcachesize", $dbcachesize, 10, $text{'default'}));
# Size limit
$sizelimit = &find_ldif_value("olcSizeLimit", $conf, $defdb);
print &ui_table_row($text{'slapd_sizelimit'},
&ui_opt_textbox('sizelimit', $sizelimit, 10, $text{'default'}." (500)"));
print &ui_hidden_table_end("basic");
# SSL section
print &ui_hidden_table_start($text{'slapd_header2'}, "width=100%", 2,
"ssl", 0);
# Protocols to serve
if (&can_get_ldap_protocols()) {
$protos = &get_ldap_protocols();
@protos = sort { $a cmp $b } keys %$protos;
print &ui_table_row($text{'slapd_protos'},
&ui_select("protos",
[ grep { $protos->{$_} } @protos ],
[ map { [ $_, $text{'slapd_'.$_} ] } @protos ],
scalar(@protos), 1));
}
# SSL file options
$anycert = 0;
$confdb = &get_config_db();
foreach $s ([ 'olcTLSCertificateFile', 'cert' ],
[ 'olcTLSCertificateKeyFile', 'key' ],
[ 'olcTLSCACertificateFile', 'ca' ]) {
$cert = &find_ldif_value($s->[0], $conf, $confdb);
print &ui_table_row($text{'slapd_'.$s->[1]},
&ui_opt_textbox($s->[1], $cert, 50, $text{'slapd_none'}).
&file_chooser_button($s->[1]));
$anycert = 1 if ($cert);
}
print &ui_hidden_table_end("ssl");
print &ui_form_end([ [ undef, $text{'save'} ] ]);
# SSL setup button
print &ui_hr();
print &ui_buttons_start();
print &ui_buttons_row("gencert_form.cgi", $text{'slapd_gencert'},
$text{'slapd_gencertdesc'}.
($anycert ? "<b>$text{'slapd_gencertwarn'}</b>" : ""));
print &ui_buttons_end();
&ui_print_footer("", $text{'index_return'});
+81
View File
@@ -0,0 +1,81 @@
#!/usr/local/bin/perl
# Select which schema files are included
require './ldap-server-lib.pl';
&local_ldap_server() == 1 || &error($text{'slapd_elocal'});
$access{'schema'} || &error($text{'schema_ecannot'});
&ui_print_header(undef, $text{'schema_title'}, "", "schema");
# Get included schemas
if (&get_config_type() == 1) {
$conf = &get_config();
foreach $i (&find_value("include", $conf)) {
if ($i =~ /^(.*)\// && $1 eq $config{'schema_dir'}) {
$incs{$i} = ++$n;
}
}
$editable = 1;
}
# Show a table of all known schema files, with checkboxes
if (&get_config_type() == 1) {
print $text{'schema_pagedesc'},"<p>\n";
}
else {
print $text{'schema_pagedesc2'},"<p>\n";
}
@tds = ( $editable ? ( "width=5" ) : ( ),
"width=20%", "width=65%", "width=10%", "width=5% nowrap" );
print &ui_form_start("save_schema.cgi", "post");
print &ui_columns_start([ $editable ? ( "" ) : ( ),
$text{'schema_file'},
$text{'schema_desc'},
$text{'schema_act'},
$editable ? ( $text{'schema_move'} ) : ( ) ],
100, 0, \@tds);
@files = sort { &schema_sorter } &list_schema_files();
for($i=0; $i<@files; $i++) {
$s = $files[$i];
@acts = ( &ui_link("view_sfile.cgi?file=".&urlize($s->{'file'}), $text{'schema_view'}),
&ui_link("edit_sfile.cgi?file=".&urlize($s->{'file'}), $text{'schema_edit'}) );
if ($incs{$s->{'file'}}) {
$mover = &ui_up_down_arrows(
"up_schema.cgi?file=".&urlize($s->{'file'}),
"down_schema.cgi?file=".&urlize($s->{'file'}),
$i > 1,
$i && $i < @files-1 && $incs{$files[$i+1]->{'file'}});
}
else {
$mover = "";
}
if ($editable) {
# With move / enable checkbox
print &ui_checked_columns_row(
[ $s->{'name'},
$s->{'desc'} || $s->{'file'},
&ui_links_row(\@acts),
$mover,
],
\@tds, "d", $s->{'file'}, $incs{$s->{'file'}},
$s->{'name'} eq 'core');
}
else {
# View files only
push(@acts, &ui_link("import_sfile.cgi?file=".&urlize($s->{'file'}),
$text{'schema_import'}));
print &ui_columns_row(
[ $s->{'name'},
$s->{'desc'} || $s->{'file'},
&ui_links_row(\@acts) ], \@tds);
}
}
print &ui_columns_end();
print &ui_form_end($editable ? [ [ undef, $text{'save'} ] ] : [ ]);
&ui_print_footer("", $text{'index_return'});
sub schema_sorter
{
return ($incs{$a->{'file'}} || 999) <=> ($incs{$b->{'file'}} || 999);
}
+32
View File
@@ -0,0 +1,32 @@
#!/usr/local/bin/perl
# Show a schema file for editing
require './ldap-server-lib.pl';
&local_ldap_server() == 1 || &error($text{'slapd_elocal'});
$access{'schema'} || &error($text{'schema_ecannot'});
&ReadParse();
&is_under_directory($config{'schema_dir'}, $in{'file'}) ||
&error($text{'schema_edir'});
&ui_print_header(undef, $text{'schema_etitle'}, "");
print $text{'schema_edesc'},"<p>\n";
print &ui_form_start("save_sfile.cgi", "form-data");
print &ui_hidden("file", $in{'file'});
print &ui_table_start($text{'schema_eheader'}, "width=100%", 2);
# Filename
print &ui_table_row($text{'schema_path'},
"<tt>".&html_escape($in{'file'})."</tt>");
# Contents
print &ui_table_row(undef,
&ui_textarea("data", &read_file_contents($in{'file'}), 20, 80,
undef, 0, "style='width:100%'"), 2);
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ] ]);
&ui_print_footer("edit_schema.cgi", $text{'schema_return'});
+130
View File
@@ -0,0 +1,130 @@
#!/usr/local/bin/perl
# Show local LDAP server configuration options
require './ldap-server-lib.pl';
&local_ldap_server() == 1 || &error($text{'slapd_elocal'});
$access{'slapd'} || &error($text{'slapd_ecannot'});
&ui_print_header(undef, $text{'slapd_title'}, "", "slapd");
$conf = &get_config();
@tds = ( "width=30%" );
print &ui_form_start("save_slapd.cgi", "post");
print &ui_hidden_table_start($text{'slapd_header'}, "width=100%", 2,
"basic", 1,\@tds);
# Top-level DN
$suffix = &find_value('suffix', $conf);
print &ui_table_row($text{'slapd_suffix'},
&ui_textbox('suffix', $suffix, 60));
# Admin login
$rootdn = &find_value('rootdn', $conf);
print &ui_table_row($text{'slapd_rootdn'},
&ui_textbox('rootdn', $rootdn, 60));
# Admin password
$rootpw = &find_value('rootpw', $conf);
if ($rootpw =~ /^{crypt}(.*)/i) {
$rootmode = 1;
$rootcrypt = $1;
}
elsif ($rootpw =~ /^{sha1}(.*)/i) {
$rootmode = 2;
$rootsha1 = $1;
}
elsif ($rootpw =~ /^{ssha}(.*)/i) {
$rootmode = 4;
$rootssha = $1;
}
elsif ($rootpw =~ /^{[a-z0-9]+}(.*)/i) {
$rootmode = 3;
$rootenc = $rootpw;
}
else {
$rootmode = 0;
$rootplain = $rootpw;
}
# Current password
print &ui_table_row($text{'slapd_rootpw'},
$rootmode == 1 ? &text('slapd_root1', $rootcrypt) :
$rootmode == 2 ? &text('slapd_root2', $rootsha1) :
$rootmode == 3 ? &text('slapd_root3', $rootenc) :
$rootmode == 4 ? &text('slapd_root4', $rootssha) :
$rootplain eq '' ? $text{'slapd_noroot'} :
$rootplain);
# Set to new
print &ui_table_row($text{'slapd_rootchange'},
&ui_opt_textbox('rootchange', undef, 30,
$text{'slapd_leave'}, $text{'slapd_set'}));
# Cache sizes
$cachesize = &find_value('cachesize', $conf);
print &ui_table_row($text{'slapd_cachesize'},
&ui_opt_textbox("cachesize", $cachesize, 10, $text{'default'}));
$dbcachesize = &find_value('dbcachesize', $conf);
print &ui_table_row($text{'slapd_dbcachesize'},
&ui_opt_textbox("dbcachesize", $dbcachesize, 10, $text{'default'}));
# Access control options
$allowdir = &find("allow", $conf);
@allow = $allowdir ? @{$allowdir->{'values'}} : ( );
print &ui_table_row($text{'slapd_allow'},
&ui_select("allow", \@allow,
[ map { [ $_, $text{'slapd_'.$_} ] }
( 'bind_v2', 'bind_anon_cred',
'bind_anon_dn', 'update_anon' ) ], 4, 1, 1));
# Size and time limits
$sizelimit = &find_value('sizelimit', $conf);
print &ui_table_row($text{'slapd_sizelimit'},
&ui_opt_textbox('sizelimit', $sizelimit, 10, $text{'default'}." (500)"));
$timelimit = &find_value('timelimit', $conf);
print &ui_table_row($text{'slapd_timelimit'},
&ui_opt_textbox('timelimit', $timelimit, 10,
$text{'default'}." (3600 $text{'slapd_secs'})").
" ".$text{'slapd_secs'});
print &ui_hidden_table_end("basic");
# SSL section
print &ui_hidden_table_start($text{'slapd_header2'}, "width=100%", 2,
"ssl", 0, \@tds);
# Protocols to serve
if (&can_get_ldap_protocols()) {
$protos = &get_ldap_protocols();
@protos = sort { $a cmp $b } keys %$protos;
print &ui_table_row($text{'slapd_protos'},
&ui_select("protos",
[ grep { $protos->{$_} } @protos ],
[ map { [ $_, $text{'slapd_'.$_} ] } @protos ],
scalar(@protos), 1));
}
# SSL file options
$anycert = 0;
foreach $s ([ 'TLSCertificateFile', 'cert' ],
[ 'TLSCertificateKeyFile', 'key' ],
[ 'TLSCACertificateFile', 'ca' ]) {
$cert = &find_value($s->[0], $conf);
print &ui_table_row($text{'slapd_'.$s->[1]},
&ui_opt_textbox($s->[1], $cert, 50, $text{'slapd_none'}).
&file_chooser_button($s->[1]));
$anycert = 1 if ($cert);
}
print &ui_hidden_table_end("ssl");
print &ui_form_end([ [ undef, $text{'save'} ] ]);
# SSL setup button
print &ui_hr();
print &ui_buttons_start();
print &ui_buttons_row("gencert_form.cgi", $text{'slapd_gencert'},
$text{'slapd_gencertdesc'}.
($anycert ? "<b>$text{'slapd_gencertwarn'}</b>" : ""));
print &ui_buttons_end();
&ui_print_footer("", $text{'index_return'});
+44
View File
@@ -0,0 +1,44 @@
#!/usr/local/bin/perl
# Actually generate the cert
require './ldap-server-lib.pl';
&local_ldap_server() == 1 || &error($text{'slapd_elocal'});
$access{'slapd'} || &error($text{'slapd_ecannot'});
&foreign_require("webmin", "webmin-lib.pl");
&ReadParse();
&error_setup($text{'gencert_err'});
$conf = &get_config();
# Work out dest files
if ($in{'dest_def'}) {
$keyfile = &find_value("TLSCertificateKeyFile", $conf);
$certfile = &find_value("TLSCertificateFile", $conf);
$keyfile =~ /^\// || &error($text{'gencert_epath'});
$certfile =~ /^\// || &error($text{'gencert_epath'});
}
else {
# In some dir
-d $in{'dest'} || &error($text{'gencert_edest'});
$keyfile = $in{'dest'}."/ldap.key";
$certfile = $in{'dest'}."/ldap.cert";
}
# Do it
$err = &webmin::parse_ssl_key_form(\%in, $keyfile,
$certfile eq $keyfile ? undef : $certfile);
&error($err) if ($err);
# Make readable by LDAP user
&set_ownership_permissions($config{'ldap_user'}, undef, undef,
$keyfile, $certfile);
# Update config to use them
&lock_slapd_files();
&save_directive($conf, "TLSCertificateFile", $certfile);
&save_directive($conf, "TLSCertificateKeyFile", $keyfile);
&flush_file_lines($config{'config_file'});
&unlock_slapd_files();
&webmin_log("gencert");
&redirect("");
+46
View File
@@ -0,0 +1,46 @@
#!/usr/local/bin/perl
# Show a form for certificate generation
require './ldap-server-lib.pl';
&local_ldap_server() == 1 || &error($text{'slapd_elocal'});
$access{'slapd'} || &error($text{'slapd_ecannot'});
&foreign_require("webmin", "webmin-lib.pl");
&ui_print_header(undef, $text{'gencert_title'}, "");
print $text{'gencert_desc'},"<p>\n";
print &ui_form_start(&get_config_type() == 1 ? "gencert.cgi"
: "gencert_ldif.cgi", "post");
print &ui_table_start($text{'gencert_header'}, undef, 2, [ "width=30%" ]);
# Generic key options
print &webmin::show_ssl_key_form(
&get_display_hostname(), undef,
"LDAP server on ".&get_display_hostname());
# Destination files
if (&get_config_type() == 1) {
$conf = &get_config();
$cert = &find_value("TLSCertificateFile", $conf);
}
else {
$conf = &get_ldif_config();
$cert = &find_ldif_value(
"olcTLSCertificateFile", $conf, &get_config_db());
}
if ($cert) {
print &ui_table_row($text{'gencert_dest'},
&ui_opt_textbox("dest", undef, 40, $text{'gencert_same'},
$text{'gencert_dir'}));
}
else {
print &ui_table_row($text{'gencert_dest2'},
&ui_textbox("dest", &get_config_dir(), 40));
}
print &ui_table_end();
print &ui_form_end([ [ "", $text{'gencert_create'} ] ]);
&ui_print_footer("", $text{'index_return'});
+43
View File
@@ -0,0 +1,43 @@
#!/usr/local/bin/perl
# Actually generate the cert, and update the LDIF format config file
require './ldap-server-lib.pl';
&local_ldap_server() == 1 || &error($text{'slapd_elocal'});
$access{'slapd'} || &error($text{'slapd_ecannot'});
&foreign_require("webmin", "webmin-lib.pl");
&ReadParse();
&error_setup($text{'gencert_err'});
$conf = &get_ldif_config();
$confdb = &get_config_db();
# Work out dest files
if ($in{'dest_def'}) {
$keyfile = &find_ldif_value("olcTLSCertificateKeyFile", $conf, $confdb);
$certfile = &find_ldif_value("olcTLSCertificateFile", $conf, $confdb);
}
else {
# In some dir
-d $in{'dest'} || &error($text{'gencert_edest'});
$keyfile = $in{'dest'}."/ldap.key";
$certfile = $in{'dest'}."/ldap.cert";
}
# Do it
$err = &webmin::parse_ssl_key_form(\%in, $keyfile,
$certfile eq $keyfile ? undef : $certfile);
&error($err) if ($err);
# Make readable by LDAP user
&set_ownership_permissions($config{'ldap_user'}, undef, undef,
$keyfile, $certfile);
# Update config to use them
&lock_slapd_files();
&save_ldif_directive($conf, "olcTLSCertificateFile", $confdb, $certfile);
&save_ldif_directive($conf, "olcTLSCertificateKeyFile", $confdb, $keyfile);
&flush_file_lines();
&unlock_slapd_files();
&webmin_log("gencert");
&redirect("");
+1
View File
@@ -0,0 +1 @@
<header> التحكم في الوصول LDAP </header> بشكل افتراضي ، يسمح خادم LDAP لأي عميل يمكنه الاتصال بقراءة جميع الكائنات والسمات في قاعدة البيانات. ومع ذلك ، يمكن للمستخدم الإداري فقط إجراء التحديثات. قد لا يكون هذا مثاليًا للشبكات التي لديها مستخدمين يتمتعون بمستويات مختلفة من الثقة ، لذلك يتيح لك OpenLDAP منح مستويات وصول مختلفة للمستخدمين المختلفين في أجزاء مختلفة من قاعدة البيانات. <p style=";text-align:right;direction:rtl"> تسرد هذه الصفحة جميع قواعد التحكم في الوصول المحددة حاليًا ، إن وجدت. لإنشاء قاعدة جديدة ، انقر فوق الارتباط <b>إضافة قاعدة جديدة للتحكم في الوصول</b> . لإزالة عدة قواعد مرة واحدة ، حدد المربعات المجاورة لها واضغط على زر <b>حذف القواعد المحددة</b> . لتغيير ترتيب القواعد ، استخدم السهمين لأعلى ولأسفل على الجانب الأيمن من الجدول. <p style=";text-align:right;direction:rtl"> كما هو الحال مع معظم تغييرات تهيئة خادم LDAP الأخرى ، لن تسري قواعد التحكم في الوصول حتى يتم النقر على زر <b>تطبيق التهيئة</b> في الصفحة الرئيسية للوحدة النمطية. <p style=";text-align:right;direction:rtl"><footer>
+1
View File
@@ -0,0 +1 @@
<header> LDAP контрол на достъпа </header> По подразбиране LDAP сървърът позволява на всеки клиент, който може да се свърже, да чете всички обекти и атрибути в базата данни. Само административният потребител може да извършва актуализации. Това може да не е идеално за мрежи, които имат потребители с различни нива на доверие, така че OpenLDAP ви позволява да предоставите различни нива на достъп на различни потребители в различни части на базата данни. <p> Тази страница изброява всички правила за контрол на достъпа, които понастоящем са дефинирани, ако има такива. За да създадете нова, щракнете върху връзката <b>Добавяне на ново правило за контрол на достъпа</b> . За да премахнете няколко правила наведнъж, поставете отметка в квадратчетата до тях и натиснете бутона <b>Изтрий избраните правила</b> . За да промените подреждането на правилата, използвайте стрелките нагоре и надолу от дясната страна на таблицата. <p> Както при повечето други промени в конфигурацията на LDAP сървъра, правилата за контрол на достъпа няма да влязат в сила, докато не се натисне бутона <b>Приложи конфигурация</b> на главната страница на модула. <p><footer>
+22
View File
@@ -0,0 +1,22 @@
<header>Control d'Accés LDAP</header>
Per defecte, un servidor LDAP permet que qualsevol client s'hi connecti per
llegir tots els objectes i atributs de la base de dades. No obstant, només
l'usuari d'administració pot efectuar actualitzacions. Això pot no ser l'ideal
per xarxes que tenen usuaris amb diferents nivells de fiabilitat, així que
OpenLDAP permet concedir nivells d'accés variables a diferents usuaris sobre
diferents parts de la base de dades. <p>
Aquesta pàgina llista totes les regles de control d'accés definides actualment,
si n'hi ha. Per crear-ne una de nova, fes clic a l'enllaç <b>Afegeix una nova
regla de control d'accés</b>. Per eliminar diverses regles de cop, marca les
caselles del costat i fes clic al botó <b>Suprimeix les Regles
Seleccionades</b>. Per canviar l'ordenació de les regles, utilitza les fletxes
amunt i avall del cantó dret de la taula. <b>
Com en la majoria d'altres canvis de la configuració LDAP, les regles de
control d'accés no tindran efecte fins que es faci clic al botó <b>Aplica la
Configuració</b> de la pàgina principal del mòdul. <p>
<footer>
+1
View File
@@ -0,0 +1 @@
<header> Řízení přístupu LDAP </header> Ve výchozím nastavení umožňuje server LDAP každému klientovi, který se může připojit, číst všechny objekty a atributy v databázi. Aktualizace však může provádět pouze administrátor. To nemusí být ideální pro sítě, které mají uživatele s různou úrovní důvěryhodnosti, takže OpenLDAP vám umožňuje udělit různým uživatelům různé úrovně přístupu v různých částech databáze. <p> Na této stránce jsou uvedena všechna aktuálně definovaná pravidla řízení přístupu, pokud existují. Chcete-li vytvořit nový, klikněte na odkaz <b>Přidat nové pravidlo řízení přístupu</b> . Chcete-li odstranit několik pravidel najednou, zaškrtněte políčka vedle nich a stiskněte tlačítko <b>Odstranit vybraná pravidla</b> . Chcete-li změnit pořadí pravidel, použijte šipky nahoru a dolů na pravé straně stolu. <p> Stejně jako u většiny ostatních změn konfigurace serveru LDAP se pravidla řízení přístupu projeví až po kliknutí na tlačítko <b>Použít konfiguraci</b> na hlavní stránce modulu. <p><footer>
+1
View File
@@ -0,0 +1 @@
<header> LDAP adgangskontrol </header> Som standard tillader en LDAP-server enhver klient, der kan oprette forbindelse til at læse alle objekter og attributter i databasen. Imidlertid er det kun den administrative bruger, der kan udføre opdateringer. Dette er muligvis ikke ideelt til netværk, der har brugere med forskellige tillidsniveauer, så OpenLDAP giver dig mulighed for at give forskellige adgangsniveauer til forskellige brugere på forskellige dele af databasen. <p> Denne side viser alle adgangskontrolregler, der i øjeblikket er defineret, hvis nogen. For at oprette en ny skal du klikke på linket <b>Tilføj en ny adgangskontrolregel</b> . For at fjerne flere regler på én gang skal du markere afkrydsningsfelterne ved siden af dem og trykke på knappen <b>Slet valgte regler</b> . For at ændre rækkefølgen af regler skal du bruge pil op og ned i højre side af tabellen. <p> Som med de fleste andre LDAP-serverkonfigurationsændringer, får adgangskontrolregler ikke virkning, før der klikkes på knappen <b>Anvend konfiguration</b> på modulets hovedside. <p><footer>
+1
View File
@@ -0,0 +1 @@
<header>LDAP-Zugriffskontrolle</header>Standardmäßig erlaubt ein LDAP-Server jedem Client, der sich verbinden kann, alle Objekte und Attribute in der Datenbank zu lesen. Allerdings kann nur der administrative Benutzer Updates durchführen. Dies ist möglicherweise nicht ideal für Netzwerke mit Benutzern, die unterschiedliche Vertrauensstufen haben, daher ermöglicht OpenLDAP, verschiedene Zugriffsebenen für verschiedene Benutzer auf verschiedenen Teilen der Datenbank zu gewähren.<p>Diese Seite listet alle aktuell definierten Zugriffskontrollregeln auf, falls vorhanden. Um eine neue zu erstellen, klicken Sie auf den Link <b>Neue Zugriffskontrollregel hinzufügen</b>. Um mehrere Regeln auf einmal zu entfernen, aktivieren Sie die Kontrollkästchen neben den entsprechenden Regeln und klicken Sie auf die Schaltfläche <b>Ausgewählte Regeln löschen</b>. Um die Reihenfolge der Regeln zu ändern, verwenden Sie die Pfeile nach oben und unten auf der rechten Seite der Tabelle.<p>Wie bei den meisten anderen LDAP-Server-Konfigurationsänderungen treten Zugriffskontrollregeln erst in Kraft, wenn die Schaltfläche <b>Konfiguration anwenden</b> auf der Hauptseite des Moduls geklickt wird.<p><footer>
+1
View File
@@ -0,0 +1 @@
<header>LDAP-Zugriffskontrolle</header>Standardmäßig erlaubt ein LDAP-Server jedem Client, der sich verbinden kann, alle Objekte und Attribute in der Datenbank zu lesen. Allerdings kann nur der administrative Benutzer Updates durchführen. Dies ist möglicherweise nicht ideal für Netzwerke mit Benutzern, die unterschiedliche Vertrauensstufen haben, daher ermöglicht OpenLDAP, verschiedene Zugriffsebenen für verschiedene Benutzer:innen auf verschiedenen Teilen der Datenbank zu gewähren.<p>Diese Seite listet alle aktuell definierten Zugriffskontrollregeln auf, falls vorhanden. Um eine neue zu erstellen, klicken Sie auf den Link <b>Neue Zugriffskontrollregel hinzufügen</b>. Um mehrere Regeln auf einmal zu entfernen, aktivieren Sie die Kontrollkästchen neben den entsprechenden Regeln und klicken Sie auf die Schaltfläche <b>Ausgewählte Regeln löschen</b>. Um die Reihenfolge der Regeln zu ändern, verwenden Sie die Pfeile nach oben und unten auf der rechten Seite der Tabelle.<p>Wie bei den meisten anderen LDAP-Server-Konfigurationsänderungen treten Zugriffskontrollregeln erst in Kraft, wenn die Schaltfläche <b>Konfiguration anwenden</b> auf der Hauptseite des Moduls geklickt wird.<p><footer>
+1
View File
@@ -0,0 +1 @@
<header> Έλεγχος πρόσβασης LDAP </header> Από προεπιλογή, ένας διακομιστής LDAP επιτρέπει σε κάθε πελάτη που μπορεί να συνδεθεί για να διαβάσει όλα τα αντικείμενα και τα χαρακτηριστικά στη βάση δεδομένων. Ωστόσο, μόνο ο διαχειριστής χρήστης μπορεί να πραγματοποιήσει ενημερώσεις. Αυτό μπορεί να μην είναι ιδανικό για δίκτυα με χρήστες με διαφορετικά επίπεδα εμπιστοσύνης, επομένως το OpenLDAP σάς επιτρέπει να παραχωρείτε διαφορετικά επίπεδα πρόσβασης σε διαφορετικούς χρήστες σε διαφορετικά μέρη της βάσης δεδομένων. <p> Σε αυτήν τη σελίδα αναφέρονται όλοι οι κανόνες ελέγχου πρόσβασης που έχουν καθοριστεί αυτήν τη στιγμή, εάν υπάρχουν. Για να δημιουργήσετε ένα νέο, κάντε κλικ στο σύνδεσμο <b>Προσθήκη νέου κανόνα ελέγχου πρόσβασης</b> . Για να καταργήσετε πολλούς κανόνες ταυτόχρονα, επιλέξτε τα πλαίσια δίπλα τους και πατήστε το <b>κουμπί Διαγραφή επιλεγμένων κανόνων</b> . Για να αλλάξετε τη σειρά των κανόνων, χρησιμοποιήστε τα πάνω και κάτω βέλη στη δεξιά πλευρά του πίνακα. <p> Όπως συμβαίνει με τις περισσότερες άλλες αλλαγές διαμόρφωσης διακομιστή LDAP, οι κανόνες ελέγχου πρόσβασης δεν θα τεθούν σε ισχύ έως ότου πατηθεί το κουμπί <b>Εφαρμογή διαμόρφωσης</b> στην κύρια σελίδα της μονάδας. <p><footer>
+1
View File
@@ -0,0 +1 @@
<header> Control de acceso LDAP </header> Por defecto, un servidor LDAP permite que cualquier cliente que pueda conectarse lea todos los objetos y atributos de la base de datos. Sin embargo, solo el usuario administrativo puede realizar actualizaciones. Sin embargo, esto puede no ser ideal para redes que tienen usuarios con diferentes niveles de confianza, por lo que OpenLDAP le permite otorgar niveles de acceso variables a diferentes usuarios en diferentes partes de la base de datos. <p> Esta página enumera todas las reglas de control de acceso definidas actualmente, si las hay. Para crear uno nuevo, haga clic en el enlace <b>Agregar una nueva regla de control de acceso</b> . Para eliminar varias reglas a la vez, marque las casillas junto a ellas y presione el botón <b>Eliminar reglas seleccionadas</b> . Para cambiar el orden de las reglas, use las flechas hacia arriba y hacia abajo en el lado derecho de la tabla. <p> Al igual que con la mayoría de los otros cambios de configuración del servidor LDAP, las reglas de control de acceso no tendrán efecto hasta que se haga clic en el botón <b>Aplicar configuración</b> en la página principal del módulo. <p><footer>
+1
View File
@@ -0,0 +1 @@
<header> LDAP Sarbide Kontrol </header> Lehenespenez, LDAP zerbitzari batek datu-baseko objektu eta atributu guztiak irakurtzeko konekta dezakeen edozein bezero uzten du. Hala ere, erabiltzaile administratzaileak eguneratzeak bakarrik egin ditzake. Baliteke hori ez izatea konfiantza maila desberdinak dituzten erabiltzaileentzat, beraz OpenLDAPek datu baseko atal desberdinetako erabiltzaileei sarbide maila desberdinak ematea ahalbidetzen du. <p> Orrialde honetan gaur egun zehaztutako sarbide kontrolen arauak agertzen dira, halakorik badago. Berria sortzeko, egin klik <b>Gehitu sarbide-kontrolerako arau</b> estekan. Hainbat arau aldi berean ezabatzeko, markatu ondoko laukiak eta sakatu <b>Ezabatu hautatutako arauak</b> botoia. Arauen ordena aldatzeko, erabili mahaiaren eskuinaldean gorantz eta behera geziak. <p> LDAP zerbitzariaren beste konfigurazio aldaketa gehienekin gertatzen den bezala, sarbide kontrol arauak ez du indarrean sartuko <b>Aplikatu konfigurazioa</b> botoiaren moduluaren orrialde nagusian klik egin arte. <p><footer>
+1
View File
@@ -0,0 +1 @@
<header> کنترل دسترسی LDAP </header> به طور پیش فرض ، یک سرور LDAP به هر مشتری که می تواند وصل شود اجازه می دهد تا همه اشیاء و ویژگی های موجود در پایگاه داده را بخواند. با این حال ، فقط کاربر اداری می تواند به روز رسانی ها را انجام دهد. این ممکن است برای شبکه هایی که دارای کاربرانی با سطح اطمینان مختلف هستند ، ایده آل نباشد ، بنابراین OpenLDAP به شما امکان می دهد سطح دسترسی های مختلفی را به کاربران مختلف در بخش های مختلف پایگاه داده اعطا کنید. <p style=";text-align:right;direction:rtl"> در این صفحه کلیه قوانین کنترل دسترسی که در حال حاضر تعریف شده اند لیست می کند. برای ایجاد مورد جدید ، روی <b>افزودن قانون کنترل دسترسی جدید</b> کلیک کنید. برای حذف چندین قانون به طور هم زمان ، کادرهای کنار آنها را علامت بزنید و دکمه <b>Delete Selected Rules را</b> بزنید. برای تغییر ترتیب قوانین ، از فلش های بالا و پایین در سمت راست جدول استفاده کنید. <p style=";text-align:right;direction:rtl"> مانند سایر تغییرات پیکربندی سرور LDAP ، قوانین کنترل دسترسی تا زمانی که دکمه <b>Apply Configuration</b> روی صفحه اصلی ماژول کلیک نشوند ، از بین نمی روند. <p style=";text-align:right;direction:rtl"><footer>
+1
View File
@@ -0,0 +1 @@
<header> LDAP-käyttöoikeudet </header> Oletusarvoisesti LDAP-palvelin antaa jokaiselle asiakkaalle, joka voi muodostaa yhteyden, lukea kaikki tietokannan objektit ja määritteet. Vain järjestelmänvalvojan käyttäjä voi kuitenkin suorittaa päivityksiä. Tämä ei välttämättä ole ihanteellinen verkoille, joilla on käyttäjiä, joilla on erilainen luottamustaso, joten OpenLDAP antaa sinun myöntää vaihtelevia käyttöoikeustasoja eri käyttäjille tietokannan eri osissa. <p> Tällä sivulla on luettelo kaikista tällä hetkellä määritellyistä käyttöoikeussääntöistä, jos sellaisia on. Luo uusi napsauttamalla <b>Lisää uusi käyttöoikeussääntö</b> -linkkiä. Jos haluat poistaa useita sääntöjä kerralla, valitse niiden vieressä olevat ruudut ja paina <b>Poista valitut säännöt</b> -painiketta. Jos haluat muuttaa sääntöjen järjestystä, käytä taulukon oikealla puolella olevia ylä- ja alanuolia. <p> Kuten useimmissa muissa LDAP-palvelimen kokoonpanomuutoksissa, pääsynhallintasäännöt eivät tule voimaan, ennen kuin <b>napsauta</b> moduulin pääsivulla <b>Käytä kokoonpano</b> -painiketta. <p><footer>
+1
View File
@@ -0,0 +1 @@
<header> Contrôle d&#39;accès LDAP </header> Par défaut, un serveur LDAP permet à tout client qui peut se connecter de lire tous les objets et attributs de la base de données. Cependant, seul l&#39;utilisateur administratif peut effectuer des mises à jour. Cela peut ne pas être idéal pour les réseaux qui ont des utilisateurs avec différents niveaux de confiance, donc OpenLDAP vous permet d&#39;accorder différents niveaux d&#39;accès à différents utilisateurs sur différentes parties de la base de données. <p> Cette page répertorie toutes les règles de contrôle d&#39;accès actuellement définies, le cas échéant. Pour en créer un nouveau, cliquez sur le lien <b>Ajouter une nouvelle règle de contrôle d&#39;accès</b> . Pour supprimer plusieurs règles à la fois, cochez les cases en regard et cliquez sur le bouton <b>Supprimer les règles sélectionnées</b> . Pour modifier l&#39;ordre des règles, utilisez les flèches haut et bas sur le côté droit du tableau. <p> Comme pour la plupart des autres modifications de configuration du serveur LDAP, les règles de contrôle d&#39;accès ne prendront effet que lorsque le bouton <b>Appliquer la configuration</b> sera cliqué sur la page principale du module. <p><footer>
+1
View File
@@ -0,0 +1 @@
<header> LDAP kontrola pristupa </header> LDAP poslužitelj prema zadanom omogućuje bilo kojem klijentu koji se može povezati za čitanje svih objekata i atributa u bazi podataka. Međutim, ažuriranja može obavljati samo administrator. No to možda nije idealno za mreže koje imaju korisnike s različitim razinama povjerenja, pa vam OpenLDAP omogućava dodijeliti različite razine pristupa različitim korisnicima u različitim dijelovima baze podataka. <p> Ova stranica navodi sva trenutno definirana pravila kontrole pristupa, ako ih ima. Da biste stvorili novu, kliknite vezu <b>Dodaj novo pravilo kontrole pristupa</b> . Da biste uklonili nekoliko pravila odjednom, potvrdite okvire pored njih i pritisnite gumb <b>Izbriši odabrana pravila</b> . Da biste promijenili redoslijed pravila, upotrijebite strelice gore i dolje na desnoj strani tablice. <p> Kao i kod većine ostalih promjena konfiguracije LDAP poslužitelja, pravila kontrole pristupa neće stupiti na snagu dok se na glavnoj stranici modula ne klikne gumb <b>Primijeni konfiguraciju</b> . <p><footer>
+20
View File
@@ -0,0 +1,20 @@
<header>LDAP Access Control</header>
By default, an LDAP server allows any client that can connect to read all
objects and attributes in the database. However, only the administrative user
can perform updates. This may not be ideal for networks that have users with
different levels of trust though, so OpenLDAP allows you to grant varying
access levels to different users on different parts of the database. <p>
This page lists all access controls rules currently defined, if any. To create a
new one, click the <b>Add a new access control rule</b> link. To remove several
rules at once, check the boxes next to them and hit the <b>Delete Selected
Rules</b> button. To change the ordering of rules, use the up and down arrows
on the right-hand side of the table. <p>
As with most other LDAP server configuration changes, access control rules will
not take effect until the <b>Apply Configuration</b> button is clicked on the
module's main page. <p>
<footer>
+1
View File
@@ -0,0 +1 @@
<header> LDAP hozzáférés-vezérlés </header> Alapértelmezés szerint az LDAP-kiszolgáló lehetővé teszi az ügyfelek számára, hogy csatlakozhassanak az adatbázisban található összes objektum és attribútum olvasásához. A frissítéseket azonban csak az adminisztrátori felhasználó végezheti el. Ez valószínűleg nem ideális azokhoz a hálózatokhoz, amelyekben a felhasználók különböző szintű megbízhatósággal rendelkeznek, így az OpenLDAP lehetővé teszi, hogy változó hozzáférési szinteket biztosítson az adatbázis különböző részein található különböző felhasználók számára. <p> Ez az oldal felsorolja az összes hozzáférés-vezérlő szabályt, amely jelenleg definiált, ha van. Új létrehozásához kattintson az <b>Új hozzáférés-vezérlő szabály hozzáadása</b> linkre. Több szabály egyszerre történő eltávolításához jelölje be a mellette lévő négyzeteket, és nyomja meg a <b>Kiválasztott szabályok törlése</b> gombot. A szabályok sorrendjének megváltoztatásához használja a fel és le nyilakat a táblázat jobb oldalán. <p> A legtöbb más LDAP-kiszolgáló konfigurációs változtatásához hasonlóan, a hozzáférés-vezérlési szabályok csak akkor lépnek hatályba, ha a <b>Configuration Apply</b> gombra kattintanak a modul főoldalán. <p><footer>
+1
View File
@@ -0,0 +1 @@
<header> Controllo degli accessi LDAP </header> Per impostazione predefinita, un server LDAP consente a qualsiasi client in grado di connettersi di leggere tutti gli oggetti e gli attributi nel database. Tuttavia, solo l&#39;utente amministrativo può eseguire aggiornamenti. Questo potrebbe non essere l&#39;ideale per le reti che hanno utenti con diversi livelli di fiducia, quindi OpenLDAP consente di concedere livelli di accesso variabili a diversi utenti su diverse parti del database. <p> Questa pagina elenca tutte le regole di controllo degli accessi attualmente definite, se presenti. Per crearne uno nuovo, fai clic sul link <b>Aggiungi una nuova regola di controllo di accesso</b> . Per rimuovere più regole contemporaneamente, seleziona le caselle accanto a esse e premi il pulsante <b>Elimina regole selezionate</b> . Per modificare l&#39;ordine delle regole, utilizzare le frecce su e giù sul lato destro della tabella. <p> Come con la maggior parte delle altre modifiche alla configurazione del server LDAP, le regole di controllo dell&#39;accesso non avranno effetto fino a quando non si fa clic sul pulsante <b>Applica configurazione</b> sulla pagina principale del modulo. <p><footer>
+1
View File
@@ -0,0 +1 @@
<header> LDAPアクセス制御</header>デフォルトでは、LDAPサーバーは、接続できるすべてのクライアントに、データベース内のすべてのオブジェクトと属性の読み取りを許可します。ただし、更新を実行できるのは管理ユーザーのみです。これは、異なる信頼レベルのユーザーがいるネットワークには理想的ではない可能性があるため、OpenLDAPでは、データベースの異なる部分の異なるユーザーにさまざまなアクセスレベルを付与できます。 <p>このページには、現在定義されているすべてのアクセス制御ルールがリストされます(存在する場合)。 <b>新しいアクセスコントロール</b>を作成するには、[ <b>新しいアクセス制御ルールの追加</b> ]リンクをクリックします。複数のルールを一度に削除するには、それらの隣にあるボックスをチェックして、 <b>[選択したルール</b><b>削除]</b>ボタンをクリックします。ルールの順序を変更するには、テーブルの右側にある上矢印と下矢印を使用します。 <p>他のほとんどのLDAPサーバー構成の変更と同様に、モジュールのメインページで[ <b>構成</b><b>適用</b> ]ボタンをクリックするまで、アクセス制御ルールは有効になりません。 <p><footer>
+1
View File
@@ -0,0 +1 @@
<header> LDAP 액세스 제어 </header> 기본적으로 LDAP 서버는 연결할 수있는 모든 클라이언트가 데이터베이스의 모든 객체와 속성을 읽도록 허용합니다. 그러나 관리 사용자 만 업데이트를 수행 할 수 있습니다. 그러나 신뢰 수준이 다른 사용자가있는 네트워크에는 적합하지 않을 수 있으므로 OpenLDAP을 사용하면 데이터베이스의 다른 부분에있는 다른 사용자에게 다양한 액세스 수준을 부여 할 수 있습니다. <p> 이 페이지에는 현재 정의 된 모든 액세스 제어 규칙이 나열됩니다 (있는 경우). 새로 작성하려면 <b>새 액세스 제어 규칙 추가</b> 링크를 클릭하십시오. 여러 규칙을 한 번에 제거하려면 옆에있는 확인란을 선택하고 <b>선택한 규칙 삭제</b> 버튼을 누르십시오. 규칙 순서를 변경하려면 표 오른쪽에있는 위쪽 및 아래쪽 화살표를 사용하십시오. <p> 대부분의 다른 LDAP 서버 구성 변경과 마찬가지로 모듈의 기본 페이지에서 <b>Apply Configuration (구성 적용)</b> 버튼을 클릭 할 때까지 액세스 제어 규칙이 <b>적용</b> 되지 않습니다. <p><footer>
+1
View File
@@ -0,0 +1 @@
<header> Kawalan Akses LDAP </header> Secara lalai, pelayan LDAP membolehkan setiap pelanggan yang dapat menyambung membaca semua objek dan atribut dalam pangkalan data. Walau bagaimanapun, hanya pengguna pentadbiran yang boleh melakukan kemas kini. Ini mungkin tidak sesuai untuk rangkaian yang memiliki pengguna dengan tingkat kepercayaan yang berbeda, jadi OpenLDAP membolehkan anda memberikan tahap akses yang berbeza-beza kepada pengguna yang berlainan di bahagian pangkalan data yang berlainan. <p> Halaman ini menyenaraikan semua peraturan kawalan akses yang ditentukan sekarang, jika ada. Untuk membuat yang baru, klik pautan <b>Tambah peraturan kawalan akses baru</b> . Untuk membuang beberapa peraturan sekaligus, tandai kotak di sebelahnya dan tekan butang <b>Padam Peraturan yang Dipilih</b> . Untuk mengubah susunan peraturan, gunakan anak panah atas dan bawah di sebelah kanan meja. <p> Seperti kebanyakan perubahan konfigurasi pelayan LDAP yang lain, peraturan kawalan akses tidak akan berlaku sehingga butang <b>Terapkan Konfigurasi</b> diklik di halaman utama modul. <p><footer>
+24
View File
@@ -0,0 +1,24 @@
<header>LDAP Toegang Controle</header>
Standaard zal een LDAP server iedere client toelaten die kan verbinden met
objecten en attributen in de database om deze te lezen. Echter alleen de
administratie gebruiker kan updates uitvoeren. Dit kan niet handig zijn voor
netwerken die gebruikers heeft op verschillende betrouwbare niveaus.
Daarom geeft OpenLDAP u de mogelijkheid om diverse toegang niveaus toe te kennen
aan verschillende gebruikers die op verschillende delen van de database toegang
moeten hebben. <p>
Deze pagina geeft een lijst weer van alle toegang controle regels die op dit
moment zijn gedefinieerd, indien die er zijn. Om een nieuwe aan te maken
klikt u op de <b>Voeg een nieuwe toegang controle regel toe</b> link.
Om 1 of meerdere tegelijk te verwijderen vinkt u deze aan in de box naast de
regels en klikt u op de <b>Verwijder Geselecteerde Regels</b> knop.
Om de volgorde van de regels te veranderen gebruikt u de (omhoog/omlaag) pijltjes
knoppen die zich aan de rechterzijde van de tabel bevinden. <p>
Net zoals met de meeste andere LDAP server configuratie wijzigingen moet u eerst
op de <b>Configuratie Toevoegen</b> knop klikken op de module hoofd pagina om
de wijzigingen actief te maken. <p>
<footer>
+1
View File
@@ -0,0 +1 @@
<header> LDAP-tilgangskontroll </header> Som standard lar en LDAP-server enhver klient som kan koble seg til, lese alle objekter og attributter i databasen. Imidlertid er det bare den administrative brukeren som kan utføre oppdateringer. Dette er kanskje ikke ideelt for nettverk som har brukere med forskjellige tillitsnivåer, så OpenLDAP lar deg gi forskjellige tilgangsnivåer til forskjellige brukere på forskjellige deler av databasen. <p> Denne siden viser alle adgangskontrollreglene som for øyeblikket er definert. Hvis du vil opprette en ny, klikker du på koblingen <b>Legg til en ny tilgangskontrollregel</b> . For å fjerne flere regler samtidig, merk av i boksene ved siden av dem og trykk på <b>Slett valgte regler</b> . For å endre rekkefølgen på regler bruker du pil opp og ned på høyre side av bordet. <p> Som med de fleste andre LDAP-serverkonfigurasjonsendringer, vil ikke regler for tilgangskontroll tre i kraft før knappen <b>Apply Configuration</b> klikkes på modulens hovedside. <p><footer>
+1
View File
@@ -0,0 +1 @@
<header> Kontrola dostępu LDAP </header> Domyślnie serwer LDAP pozwala każdemu klientowi, który może się połączyć, odczytać wszystkie obiekty i atrybuty w bazie danych. Jednak tylko użytkownik administracyjny może przeprowadzać aktualizacje. Może to nie być idealne dla sieci, które mają użytkowników o różnych poziomach zaufania, więc OpenLDAP pozwala na przyznanie różnych poziomów dostępu różnym użytkownikom w różnych częściach bazy danych. <p> Ta strona zawiera listę wszystkich obecnie zdefiniowanych reguł kontroli dostępu, jeśli takie istnieją. Aby utworzyć nową, kliknij link <b>Dodaj nową regułę kontroli dostępu</b> . Aby usunąć kilka reguł jednocześnie, zaznacz pola obok nich i naciśnij przycisk <b>Usuń wybrane reguły</b> . Aby zmienić kolejność reguł, użyj strzałek w górę i w dół po prawej stronie stołu. <p> Podobnie jak w przypadku większości innych zmian konfiguracji serwera LDAP, reguły kontroli dostępu nie zostaną wprowadzone, dopóki przycisk <b>Zastosuj konfigurację nie</b> zostanie kliknięty na stronie głównej modułu. <p><footer>
+1
View File
@@ -0,0 +1 @@
<header> Controle de Acesso LDAP </header> Por padrão, um servidor LDAP permite que qualquer cliente que possa se conectar leia todos os objetos e atributos no banco de dados. No entanto, apenas o usuário administrativo pode executar atualizações. Porém, isso pode não ser ideal para redes que possuem usuários com diferentes níveis de confiança; portanto, o OpenLDAP permite conceder níveis de acesso variados a diferentes usuários em diferentes partes do banco de dados. <p> Esta página lista todas as regras de controle de acesso atualmente definidas, se houver. Para criar um novo, clique no link <b>Adicionar uma nova regra de controle de</b> acesso. Para remover várias regras de uma só vez, marque as caixas próximas a elas e pressione o botão <b>Excluir regras</b> selecionadas. Para alterar a ordem das regras, use as setas para cima e para baixo no lado direito da tabela. <p> Como na maioria das outras alterações na configuração do servidor LDAP, as regras de controle de acesso não terão efeito até que o botão <b>Aplicar configuração</b> seja clicado na página principal do módulo. <p><footer>
+1
View File
@@ -0,0 +1 @@
<header> Controle de Acesso LDAP </header> Por padrão, um servidor LDAP permite que qualquer cliente que possa se conectar leia todos os objetos e atributos no banco de dados. No entanto, apenas o usuário administrativo pode executar atualizações. Porém, isso pode não ser ideal para redes que possuem usuários com diferentes níveis de confiança; portanto, o OpenLDAP permite conceder níveis de acesso variados a diferentes usuários em diferentes partes do banco de dados. <p> Esta página lista todas as regras de controle de acesso atualmente definidas, se houver. Para criar um novo, clique no link <b>Adicionar uma nova regra de controle de</b> acesso. Para remover várias regras de uma só vez, marque as caixas próximas a elas e pressione o botão <b>Excluir regras</b> selecionadas. Para alterar a ordem das regras, use as setas para cima e para baixo no lado direito da tabela. <p> Como na maioria das outras alterações na configuração do servidor LDAP, as regras de controle de acesso não terão efeito até que o botão <b>Aplicar configuração</b> seja clicado na página principal do módulo. <p><footer>
+1
View File
@@ -0,0 +1 @@
<header> Контроль доступа LDAP </header> По умолчанию сервер LDAP позволяет любому клиенту, который может подключиться, читать все объекты и атрибуты в базе данных. Однако только администратор может выполнять обновления. Это может не быть идеальным для сетей, в которых есть пользователи с разными уровнями доверия, поэтому OpenLDAP позволяет предоставлять разные уровни доступа разным пользователям в разных частях базы данных. <p> На этой странице перечислены все правила контроля доступа, определенные в настоящий момент, если таковые имеются. Чтобы создать новый, нажмите ссылку <b>Добавить новое правило контроля доступа</b> . Чтобы удалить несколько правил одновременно, установите флажки рядом с ними и нажмите кнопку «<b>Удалить выбранные правила»</b> . Чтобы изменить порядок правил, используйте стрелки вверх и вниз в правой части таблицы. <p> Как и в случае большинства других изменений конфигурации сервера LDAP, правила контроля доступа не вступят в силу, пока на главной странице модуля не будет нажата кнопка «<b>Применить конфигурацию»</b> . <p><footer>
+1
View File
@@ -0,0 +1 @@
<header> LDAP Kontrola prístupu </header> Server LDAP štandardne umožňuje každému klientovi, ktorý sa môže pripojiť, prečítať všetky objekty a atribúty v databáze. Aktualizácie však môže vykonávať iba administrátor. To nemusí byť ideálne pre siete, ktoré majú používateľov s rôznymi úrovňami dôvery, takže OpenLDAP vám umožňuje udeľovať rôznym používateľom rôzne úrovne prístupu v rôznych častiach databázy. <p> Na tejto stránke sú uvedené všetky aktuálne definované pravidlá riadenia prístupu. Ak chcete vytvoriť nový, kliknite na odkaz <b>Pridať nové pravidlo riadenia prístupu</b> . Ak chcete odstrániť niekoľko pravidiel naraz, začiarknite políčka vedľa nich a stlačte tlačidlo <b>Odstrániť vybraté pravidlá</b> . Ak chcete zmeniť poradie pravidiel, použite šípky nahor a nadol na pravej strane tabuľky. <p> Rovnako ako u väčšiny ostatných zmien konfigurácie servera LDAP sa pravidlá riadenia prístupu prejavia až po kliknutí na tlačidlo <b>Použiť konfiguráciu</b> na hlavnej stránke modulu. <p><footer>
+1
View File
@@ -0,0 +1 @@
<header> LDAP Access Control </header> Som standard tillåter en LDAP-server alla klienter som kan ansluta för att läsa alla objekt och attribut i databasen. Men bara den administrativa användaren kan utföra uppdateringar. Detta kanske inte är perfekt för nätverk som har användare med olika nivåer av förtroende men OpenLDAP låter dig ge olika åtkomstnivåer till olika användare på olika delar av databasen. <p> Denna sida visar alla åtkomstkontrollregler som för närvarande definieras, om några. För att skapa en ny klickar du på länken <b>Lägg till en ny regel för åtkomstkontroll</b> . Om du vill ta bort flera regler samtidigt markerar du rutorna bredvid dem och <b>trycker på</b> knappen <b>Radera valda regler</b> . Om du vill ändra ordning på regler använder du upp- och nedpilarna till höger om bordet. <p> Som med de flesta andra ändringar av LDAP-serverkonfigurationen kommer reglerna för åtkomstkontroll inte att gälla förrän du <b>klickar på</b> knappen <b>Apply Configuration</b> på modulens startsida. <p><footer>
+1
View File
@@ -0,0 +1 @@
<header> LDAP Erişim Kontrolü </header> Varsayılan olarak, bir LDAP sunucusu bağlanabilen herhangi bir istemcinin veritabanındaki tüm nesneleri ve öznitelikleri okumasına izin verir. Ancak, yalnızca yönetici kullanıcı güncelleştirmeleri gerçekleştirebilir. Bu, farklı güven düzeylerine sahip kullanıcıları olan ağlar için ideal olmayabilir, bu nedenle OpenLDAP, veritabanının farklı bölümlerindeki farklı kullanıcılara değişen erişim düzeyleri vermenize izin verir. <p> Bu sayfada, varsa, geçerli olarak tanımlanan tüm erişim denetimleri kuralları listelenir. Yeni bir tane oluşturmak için Yeni bir <b>erişim denetimi kuralı ekle</b> bağlantısını tıklayın. Aynı anda birkaç kuralı kaldırmak için, yanındaki kutuları işaretleyin ve <b>Seçilen Kuralları Sil</b> düğmesine basın. Kuralların sırasını değiştirmek için tablonun sağ tarafındaki yukarı ve aşağı okları kullanın. <p> Diğer LDAP sunucusu yapılandırma değişikliklerinin çoğunda olduğu gibi, modülün ana sayfasında <b>Yapılandırmayı Uygula</b> düğmesi tıklanana kadar erişim denetimi kuralları geçerli olmaz. <p><footer>
+1
View File
@@ -0,0 +1 @@
<header> LDAP Контроль доступу </header> За замовчуванням сервер LDAP дозволяє будь-якому клієнту, який може підключитися, читати всі об&#39;єкти та атрибути в базі даних. Однак оновлення може здійснювати лише адміністративний користувач. Це може бути не ідеально для мереж, які мають користувачів з різним рівнем довіри, тому OpenLDAP дозволяє надати різні рівні доступу різним користувачам у різних частинах бази даних. <p> На цій сторінці перераховані всі визначені в даний час правила контролю доступу, якщо такі є. Щоб створити нове, натисніть посилання <b>Додати нове правило контролю доступу</b> . Щоб видалити відразу кілька правил, поставте прапорець біля них та натисніть кнопку <b>Видалити вибрані правила</b> . Щоб змінити впорядкованість правил, скористайтеся стрілками вгору та вниз праворуч таблиці. <p> Як і у більшості інших змін конфігурації сервера LDAP, правила контролю доступу не набудуть чинності, доки на головній сторінці модуля не буде натиснути кнопку <b>Застосувати конфігурацію</b> . <p><footer>
+1
View File
@@ -0,0 +1 @@
<header> LDAP访问控制</header>默认情况下,LDAP服务器允许任何可以连接的客户端读取数据库中的所有对象和属性。但是,只有管理用户才能执行更新。但是,对于拥有不同信任级别的用户的网络而言,这可能不是理想的选择,因此OpenLDAP允许您向数据库不同部分的不同用户授予不同的访问级别。 <p>此页面列出了当前定义的所有访问控制规则(如果有)。要创建一个新的,请单击“ <b>添加新的访问控制规则”</b>链接。要一次删除多个规则,请选中它们旁边的框,然后单击“ <b>删除所选规则”</b>按钮。要更改规则的顺序,请使用表格右侧的向上和向下箭头。 <p>与大多数其他LDAP服务器配置更改一样,在单击模块主页上的“ <b>应用配置”</b>按钮之前,访问控制规则将不会生效。 <p><footer>
+1
View File
@@ -0,0 +1 @@
<header> LDAP訪問控制</header>默認情況下,LDAP服務器允許任何可以連接的客戶端讀取數據庫中的所有對象和屬性。但是,只有管理用戶才能執行更新。但是,對於具有不同信任級別的用戶的網絡來說,這可能不是理想的選擇,因此OpenLDAP允許您向數據庫不同部分的不同用戶授予不同的訪問級別。 <p>此頁面列出了當前定義的所有訪問控制規則(如果有)。要創建一個新的,請單擊“ <b>添加新的訪問控制規則”</b>鏈接。要一次刪除多個規則,請選中它們旁邊的框,然後單擊“ <b>刪除所選規則”</b>按鈕。要更改規則的順序,請使用表格右側的向上和向下箭頭。 <p>與大多數其他LDAP服務器配置更改一樣,在單擊模塊主頁上的“ <b>應用配置”</b>按鈕之前,訪問控制規則將不會生效。 <p><footer>
+1
View File
@@ -0,0 +1 @@
<header> تصفح قاعدة البيانات </header> تتيح لك هذه الصفحة التنقل عبر التسلسل الهرمي للكائنات في قاعدة بيانات LDAP ، وإنشاء الكائنات وإزالتها ، وتحرير سماتها. يتم عرض الاسم المميز للكائن الذي تتم إدارته دائمًا في حقل <b>التصفح</b> - للانتقال بسرعة إلى كائن آخر ، أدخل اسمًا جديدًا وانقر فوق <b>إظهار</b> . لرفع التسلسل الهرمي ، انقر فوق <b>استعراض الأصل</b> . <p style=";text-align:right;direction:rtl"> تنقسم بقية الصفحة إلى علامتي تبويب: <dl style=";text-align:right;direction:rtl"><dt> <b>كائنات تابعة</b> <dd> يسرد هذا الجدول جميع الكائنات الموجودة تحت الكائن الحالي. يمكنك تحرير كائن فرعي بالنقر فوق الاسم المميز الخاص به ، أو حذف الكائنات عن طريق التحقق منها والضغط على الزر <b>إزالة الأطفال</b> المحددين. لتغيير الاسم المميز لكائن فرعي ، انقر على رابط <b>إعادة</b> التسمية وأدخل اسمًا جديدًا في الحقل الذي يظهر. <p style=";text-align:right;direction:rtl"> سيؤدي النقر فوق <b>إضافة كائن فرعي جديد</b> إلى عرض نموذج لإدخال تفاصيل كائن فارغ جديد أسفل الكائن الحالي. <p style=";text-align:right;direction:rtl"><dt> <b>سمات الكائن</b> <dd> يسرد هذا الجدول كافة سمات الكائن الحالي. لتحرير قيم واحد ، انقر على رابط <b>تحرير</b> على اليمين. لحذف السمات ، حدد المربعات المجاورة لها ثم انقر فوق الزر <b>إزالة السمات المحددة</b> . في كلتا الحالتين ، سيفرض خادم LDAP قيودًا على السمات المسموح بها والمطلوبة لفئة الكائن. <p style=";text-align:right;direction:rtl"> يمكن إنشاء سمة جديدة بالنقر فوق ارتباط <b>إضافة سمة للكائن</b> ، والذي سيعرض الحقل لإدخال اسم وقيمة. <p style=";text-align:right;direction:rtl"></dl><footer>
+1
View File
@@ -0,0 +1 @@
<header> Разгледайте базата данни </header> Тази страница ви позволява да се движите през наследствеността на обектите във вашата база данни LDAP, да създавате и премахвате обекти и да редактирате техните атрибути. DN за обекта, който се управлява, винаги се показва в полето за <b>сърфиране</b> - за бързо навигиране до друг обект, въведете нов DN и щракнете върху <b>Покажи</b> . За да се придвижите нагоре по наследството, щракнете върху <b>Преглед на родителя</b> . <p> Останалата част от страницата е разделена на два раздела: <dl><dt> <b>Детски предмети</b> <dd> Тази таблица изброява всички обекти под текущата. Можете да редактирате под обект, като щракнете върху него DN, или да изтриете обекти, като ги проверите и натиснете бутона <b>Премахване на избрани деца</b> . За да промените DN на под-обекта, щракнете върху връзката <b>Преименуване</b> и въведете нова DN в полето, което се показва. <p> Кликването върху <b>Добавяне на нов под-обект</b> ще изведе формуляр за въвеждане на подробности за нов празен обект под текущия. <p><dt> <b>Атрибути на обекта</b> <dd> Тази таблица изброява всички атрибути на текущия обект. За да редактирате стойностите на една, щракнете върху връзката <b>Редактиране</b> вдясно. За да изтриете атрибутите, поставете отметка в квадратчетата до тях и след това щракнете върху бутона <b>Премахване на избраните атрибути</b> . И в двата случая LDAP сървърът ще наложи ограничения за разрешени и задължителни атрибути за класа на обекта. <p> Нов атрибут може да бъде създаден, като щракнете върху връзката <b>Добавяне на атрибут към обект</b> , която ще покаже поле за въвеждане на име и стойност. <p></dl><footer>
+33
View File
@@ -0,0 +1,33 @@
<header>Exploració de la Base de Dades</header>
Aquesta pàgina permet navegar a través de la jerarquia d'objectes de la base
de dades LDAP, crear i eliminar objectes, i editar-ne els atributs.
El DN de l'objecte gestionat sempre es mostra en el camp <b>Exploració</b>
- per moure's ràpidament a un altre objecte, introdueix un nou DN i fes clic
a <b>Mostra</b>. Per moure's cap amunt dins la jerarquia, fes clic a
<b>Explora el Pare</b>. <p>
La resta de la pàgina està dividida en dues pestanyes:
<dl>
<dt><b>Objectes fills</b>
<dd>Aquesta taula llista tots els objectes per sota de l'actual. Pots editar
un subobjecte fent clic sobre el seu DN, o suprimir objectes marcant-los
i fent clic a <b>Elimina els Fills Seleccionats</b>. Per canviar el DN
d'un subobjecte, fes clic a l'enllaç <b>Reanomena</b> i introdueix un nou
DN en el camp que apareix. <p>
Fent clic a <b>Afegeix un nou subobjecte</b>, apareixerà un formulari
per introduir els detalls d'un nou objecte buit sota l'actual. <p>
<dt><b>Atributs de l'objecte</b>
<dd>Aquesta taula llista tots els atributs de l'objecte actual. Per editar-ne
els valors d'un, fes clic a l'enllaç <b>Edita</b> de la dreta, Per
suprimir atributs, marca les caselles del costat i fes clic al botó
<b>Suprimeix els Atributs Seleccionats</b>. En ambdós casos, el servidor
LDAP forçara restriccions sobre els atributs permesos i requerits per a
la classe de l'objecte. <p>
Es pot crear un nou atribut fent clic a l'enllaç <b>Afegeix un atribut a
l'objecte</b>, que mostrarà un camp per introduir un nom i un valor, <p>
</dl>
<footer>
+1
View File
@@ -0,0 +1 @@
<header> Procházet databázi </header> Tato stránka umožňuje procházet dědictví objektů v databázi LDAP, vytvářet a odebírat objekty a upravovat jejich atributy. DN pro spravovaný objekt se vždy zobrazí v poli <b>Procházení</b> - pro rychlou navigaci k jinému objektu zadejte nový DN a klikněte na <b>Zobrazit</b> . Chcete-li se přesunout po heirarchii, klikněte na <b>Procházet rodiče</b> . <p> Zbytek stránky je rozdělen na dvě karty: <dl><dt> <b>Dětské předměty</b> <dd> V této tabulce jsou uvedeny všechny objekty pod aktuálním. Sub-objekt můžete upravit kliknutím na jeho DN, nebo odstranit objekty jejich zaškrtnutím a stiskem tlačítka <b>Odstranit vybrané děti</b> . Chcete-li změnit DN dílčího objektu, klikněte na odkaz <b>Přejmenovat</b> a do zobrazeného pole zadejte nový DN. <p> Kliknutím na <b>Přidat nový dílčí objekt</b> vyvoláte formulář pro zadání podrobností o novém prázdném objektu pod aktuálním. <p><dt> <b>Atributy objektu</b> <dd> V této tabulce jsou uvedeny všechny atributy aktuálního objektu. Chcete-li upravit hodnoty jedné, klikněte na odkaz <b>Upravit</b> vpravo. Chcete-li atributy smazat, zaškrtněte políčka vedle nich a poté klikněte na tlačítko <b>Odstranit vybrané atributy</b> . V obou případech bude server LDAP vynucovat omezení povolených a požadovaných atributů pro třídu objektu. <p> Nový atribut lze vytvořit kliknutím na odkaz <b>Přidat atribut k objektu</b> , který zobrazí pole pro zadání názvu a hodnoty. <p></dl><footer>
+1
View File
@@ -0,0 +1 @@
<header> Gennemse databasen </header> Denne side giver dig mulighed for at navigere gennem heirarkiet af objekter i din LDAP-database, oprette og fjerne objekter og redigere deres attributter. DN for det objekt, der administreres, vises altid i <b>browsefeltet</b> - for hurtigt at navigere til et andet objekt skal du indtaste et nyt DN og klikke på <b>Vis</b> . Klik på <b>Gennemse forældre for</b> at flytte op i arvingen. <p> Resten af siden er opdelt i to faner: <dl><dt> <b>Børn genstande</b> <dd> Denne tabel viser alle objekter under den aktuelle. Du kan redigere et underobjekt ved at klikke på dets DN eller slette objekter ved at kontrollere dem og trykke på knappen <b>Fjern valgte børn</b> . For at ændre DN for et underobjekt skal du klikke på linket <b>Omdøb</b> og indtaste et nyt DN i det felt, der vises. <p> Hvis du klikker på <b>Tilføj et nyt underobjekt</b> , åbnes en formular til indtastning af detaljerne om et nyt tomt objekt under det nuværende. <p><dt> <b>Objektattributter</b> <dd> Denne tabel viser alle attributter for det aktuelle objekt. For at redigere værdierne for en skal du klikke på linket <b>Rediger</b> til højre. Hvis du vil slette attributter, skal du markere felterne ved siden af dem og derefter klikke på knappen <b>Fjern valgte attributter</b> . I begge tilfælde håndhæver LDAP-serveren begrænsninger for tilladte og påkrævede attributter til objektets klasse. <p> En ny attribut kan oprettes ved at klikke på linket <b>Tilføj attribut til objekt</b> , som viser felt til indtastning af et navn og en værdi. <p></dl><footer>
+1
View File
@@ -0,0 +1 @@
<header>Datenbank durchsuchen</header>Diese Seite ermöglicht es Ihnen, durch die Hierarchie der Objekte in Ihrer LDAP-Datenbank zu navigieren, Objekte zu erstellen und zu entfernen sowie deren Attribute zu bearbeiten. Der DN des verwalteten Objekts wird immer im Feld <b>Durchsuchen</b> angezeigt um schnell zu einem anderen Objekt zu navigieren, geben Sie einen neuen DN ein und klicken Sie auf <b>Anzeigen</b>. Um in der Hierarchie nach oben zu wechseln, klicken Sie auf <b>Übergeordnetes Objekt durchsuchen</b>.<p>Der Rest der Seite ist in zwei Registerkarten unterteilt:<dl><dt><b>Unterobjekte</b><dd>Diese Tabelle listet alle Objekte unter dem aktuellen auf. Sie können ein Unterobjekt bearbeiten, indem Sie auf dessen DN klicken, oder Objekte löschen, indem Sie sie ankreuzen und auf die Schaltfläche <b>Ausgewählte Kinder entfernen</b> klicken. Um den DN eines Unterobjekts zu ändern, klicken Sie auf den Link <b>Umbenennen</b> und geben Sie einen neuen DN im erscheinenden Feld ein.<p>Durch Klicken auf <b>Neues Unterobjekt hinzufügen</b> wird ein Formular angezeigt, in dem Sie die Details eines neuen leeren Objekts unter dem aktuellen eingeben können.<p><dt><b>Objektattribute</b><dd>Diese Tabelle listet alle Attribute des aktuellen Objekts auf. Um die Werte eines Attributs zu bearbeiten, klicken Sie auf den Link <b>Bearbeiten</b> auf der rechten Seite. Um Attribute zu löschen, setzen Sie Häkchen neben den entsprechenden Feldern und klicken Sie dann auf die Schaltfläche <b>Ausgewählte Attribute entfernen</b>. In beiden Fällen wird der LDAP-Server Einschränkungen für erlaubte und erforderliche Attribute der Objektklasse durchsetzen.<p>Ein neues Attribut kann durch Klicken auf den Link <b>Attribut zum Objekt hinzufügen</b> erstellt werden, wodurch ein Feld zum Eingeben eines Namens und Werts angezeigt wird.<p></dl><footer>
+1
View File
@@ -0,0 +1 @@
<header> Αναζήτηση βάσης δεδομένων </header> Αυτή η σελίδα σάς επιτρέπει να πλοηγηθείτε στην ιεραρχία αντικειμένων στη βάση δεδομένων LDAP, να δημιουργήσετε και να αφαιρέσετε αντικείμενα και να επεξεργαστείτε τα χαρακτηριστικά τους. Το DN για το αντικείμενο που διαχειρίζεται εμφανίζεται πάντα στο πεδίο <b>Περιήγηση</b> - για γρήγορη πλοήγηση σε άλλο αντικείμενο, εισαγάγετε ένα νέο DN και κάντε κλικ στο <b>Εμφάνιση</b> . Για να ανεβάσετε την ιεραρχία, κάντε κλικ στο <b>Αναζήτηση γονέα</b> . <p> Η υπόλοιπη σελίδα χωρίζεται σε δύο καρτέλες: <dl><dt> <b>Παιδικά αντικείμενα</b> <dd> Αυτός ο πίνακας παραθέτει όλα τα αντικείμενα κάτω από το τρέχον. Μπορείτε να επεξεργαστείτε ένα δευτερεύον αντικείμενο κάνοντας κλικ στο DN ή να διαγράψετε αντικείμενα ελέγχοντάς τα και πατώντας το κουμπί <b>Κατάργηση επιλεγμένων παιδιών</b> . Για να αλλάξετε το DN ενός δευτερεύοντος αντικειμένου, κάντε κλικ στο σύνδεσμο <b>Μετονομασία</b> και εισαγάγετε ένα νέο DN στο πεδίο που εμφανίζεται. <p> Κάνοντας κλικ στο <b>Προσθήκη νέου υπο-αντικειμένου</b> θα εμφανιστεί μια φόρμα για την εισαγωγή των λεπτομερειών ενός νέου κενού αντικειμένου κάτω από το τρέχον. <p><dt> <b>Χαρακτηριστικά αντικειμένου</b> <dd> Αυτός ο πίνακας παραθέτει όλα τα χαρακτηριστικά του τρέχοντος αντικειμένου. Για να επεξεργαστείτε τις τιμές ενός, κάντε κλικ στο σύνδεσμο <b>Επεξεργασία</b> στα δεξιά. Για να διαγράψετε χαρακτηριστικά, επιλέξτε τα πλαίσια δίπλα τους και, στη συνέχεια, κάντε κλικ στο κουμπί <b>Κατάργηση επιλεγμένων χαρακτηριστικών</b> . Και στις δύο περιπτώσεις, ο διακομιστής LDAP θα επιβάλει περιορισμούς στα επιτρεπόμενα και απαιτούμενα χαρακτηριστικά για την κλάση του αντικειμένου. <p> Ένα νέο χαρακτηριστικό μπορεί να δημιουργηθεί κάνοντας κλικ στο σύνδεσμο <b>Προσθήκη χαρακτηριστικού σε αντικείμενο</b> , το οποίο θα εμφανίζει πεδίο για την εισαγωγή ονόματος και τιμής. <p></dl><footer>

Some files were not shown because too many files have changed in this diff Show More