diff --git a/library/login_accounts.php b/library/login_accounts.php
index cc6600f..599fca7 100644
--- a/library/login_accounts.php
+++ b/library/login_accounts.php
@@ -1,649 +1,621 @@
add_element(
array(
"name"=>"username",
"type"=>"text",
"size"=>"25",
"length_e"=>"2",
"minlength"=>"2",
"maxlength"=>"25",
"valid_regex"=>"^[-a-zA-Z0-9@_\.]{2,}$",
"valid_e"=>"Username required: - mininum 2 chars (letters, digits, _, -, @, .)"
)
);
$f->add_element(
array(
"name"=>"password",
"type"=>"text",
"size"=>"25",
"minlength"=>"5",
"maxlength"=>"25",
"pass"=>1,
//"valid_regex"=>"^.{5,}",
//"valid_e"=>"Password: Letters, digits _ - only - minim 5 characters",
"value"=>"$password"
)
);
$f->add_element(
array(
"name"=>"name",
"type"=>"text",
"length_e"=>"3",
"minlength"=>"3",
"maxlength"=>"100",
"size"=>"30",
"valid_regex"=>"^[-a-zA-Z0-9|_|\.|\s ]*$",
"valid_e"=>"Name required - min 1 chars (letters, digits _ - . spaces only)",
"icase"=>1
)
);
$f->add_element(
array(
"name"=>"organization",
"type"=>"text",
"length_e"=>"6",
"maxlength"=>"100",
"size"=>"30",
"valid_regex"=>"^[-a-zA-Z0-9|_|\.|\s ]*$",
"valid_e"=>"Organization required - min 6 chars (letters, digits _ - . spaces only)",
"icase"=>1
)
);
$f->add_element(
array(
"name"=>"email",
"type"=>"text",
"length_e"=>6,
"minlength"=>"6",
"maxlength"=>"100",
"size"=>"30",
"valid_e"=>"Syntax error in E-Mail address.",
"valid_regex"=>"^([-a-zA-Z0-9._]+@[-a-zA-Z0-9_]+(\.[-a-zA-Z0-9_]+)+)*$"
)
);
$f->add_element(
array(
"name"=>"aNumberFilter",
"type"=>"text",
"maxlength"=>"100",
"size"=>"60"
)
);
$f->add_element(
array(
"name"=>"domainFilter",
"type"=>"text",
"maxlength"=>"255",
"size"=>"60"
)
);
$f->add_element(
array(
"name"=>"impersonate",
"type"=>"text",
"maxlength"=>"255",
"size"=>"11"
)
);
$f->add_element(
array(
"name"=>"gatewayFilter",
"type"=>"text",
"maxlength"=>"255",
"size"=>"60"
)
);
$f->add_element(
array(
"name"=>"compidFilter",
"type"=>"text",
"maxlength"=>"255",
"size"=>"60"
)
);
$f->add_element(
array(
"name"=>"cscodeFilter",
"type"=>"text",
"maxlength"=>"255",
"size"=>"60"
)
);
$f->add_element(
array(
"name"=>"serviceFilter",
"type"=>"text",
"maxlength"=>"255",
"size"=>"60"
)
);
$f->add_element(
array(
"name"=>"afterDateFilter",
"type"=>"text",
"maxlength"=>"10",
"size"=>"11"
)
);
$f->add_element(
array(
"name"=>"aclFilter",
"type"=>"text",
"maxlength"=>"100",
"size"=>"20"
)
);
$f->add_element(
array(
"name"=>"tel",
"type"=>"text",
"size"=>"30"
)
);
$f->add_element(
array(
"name"=>"expire",
"type"=>"text",
"size"=>"11"
)
);
$use_yubikey = 0;
if (stream_resolve_include_path('Auth/Yubico.php')) {
require_once 'Auth/Yubico.php';
$use_yubikey = 1;
}
if ($use_yubikey) {
$f->add_element(
array(
"name"=>"yubikey",
"type"=>"text",
"size"=>"12",
"minlength"=>"12",
"maxlength"=>"12",
"valid_regex"=>"^[a-zA-Z0-9|_|-]*$"
)
);
}
$blocked_els=array(
array("label"=>"","value"=>"0"),
array("label"=>gettext("Blocked"),"value"=>"1")
);
$f->add_element(
array(
"type"=>"select",
"name"=>"blocked",
"options"=>$blocked_els,
"size"=>1,
"value"=>""
)
);
$f->add_element(
array(
"type"=>"submit",
"name"=>"submit",
"extrahtml"=>"class=btn",
"value"=>"Submit"
)
);
while (list($k,$v) = each($DATASOURCES)) {
if ($k != "unknown") {
$cdrSourcesEls[] = array(
"label" => $v[name],
"value" => $k
);
}
}
$f->add_element(
array(
"type"=>"select",
"name"=>"sources",
"options"=>$cdrSourcesEls,
"size"=>8,
"multiple"=>"1",
"value"=>""
)
);
if ($use_yubikey) {
$f->add_element(
array(
"type"=>"select",
"name"=>"auth_method",
"options"=> array(
array("label"=>"Username+Password+Yubikey","value"=>"7"),
array("label"=>"Username+Yubikey","value"=>"5"),
array("label"=>"Yubikey","value"=>"4"),
),
"multiple"=>"0",
"value"=>""
)
);
}
+function wrapFormElement($label, $element)
+{
+ if (is_array($label)) {
+ $label = implode('', $label);
+ }
+
+ if (is_array($element)) {
+ $element = implode('', $element);
+ }
+
+ printf('
+
',
+ $label,
+ $element
+ );
+}
function showForm($id = "")
{
global $CDRTool, $verbose, $perm, $auth, $sess, $cdr, $f,
$perms, $source, $sources, $action;
$sources = explode(",", $sources);
$use_yubikey = 0;
if (stream_resolve_include_path('Auth/Yubico.php')) {
require_once 'Auth/Yubico.php';
$use_yubikey = 1;
}
global $afterDateFilter;
if (preg_match("/^0000-00-00$/", $afterDateFilter)) {
$afterDateFilter = "";
}
$f->load_defaults();
$f->start("", "GET", "", "", "", "form-horizontal");
print "";
print "";
if ($frzall) {
$f->freeze();
}
if (!$perm->have_perm("admin")) {
$ff = array(
"sources",
"gatewayFilter",
"domainFilter",
"aNumberFilter",
"serviceFilter",
"compidFilter",
"cscodeFilter",
"afterDateFilter",
"aclFilter",
- "impersonate");
+ "impersonate"
+ );
$f->freeze($ff);
}
print "
Contact details
";
print _("The fields marked with ");
print " * ";
print _("are mandatory");
print ":
";
$f->show_element("action", "");
if ($id) {
$f->add_element(
array(
"type"=>"hidden",
"name"=>"id",
"value"=>"$id"
)
);
}
- print "
-
-
- ";
- print "
-
-
- ";
- $f->show_element("name", "");
- print "
-
-
-
- ";
-
- print "
-
-
-
-
- ";
- $f->show_element("organization", "");
- print "
-
-
- ";
-
- print "
-
-
-
-
- ";
- $f->show_element("email", "");
- print "
-
-
- ";
-
+ wrapFormElement(
+ array(
+ _("Name"),
+ "
*"
+ ),
+ array(
+ "
",
+ $f->get_element("name", ""),
+ ""
+ )
+ );
- print "
-
-
-
-
- ";
- $f->show_element("tel", "");
- print "
-
-
- ";
- print "
-
-
-
- ";
+ wrapFormElement(
+ array(
+ _("E-mail"),
+ " *"
+ ),
+ array(
+ "",
+ $f->get_element("email", ""),
+ ""
+ )
+ );
- $f->show_element("username", "");
+ wrapFormElement(
+ _("Telephone"),
+ array(
+ "",
+ $f->get_element("tel", ""),
+ ""
+ )
+ );
- print "
-
-
- ";
+ wrapFormElement(
+ array(
+ _("Username"),
+ "
*"
+ ),
+ array(
+ "
",
+ $f->get_element("username", ""),
+ ""
+ )
+ );
- print "
-
-
-
- ";
- $f->show_element("password", "");
- print "
-
- ";
+ wrapFormElement(
+ array(
+ _("Password"),
+ "
*"
+ ),
+ array(
+ "
",
+ $f->get_element("password", ""),
+ ""
+ )
+ );
if ($use_yubikey) {
- print "
-
-
-
-
- ";
- $f->show_element("yubikey", "");
- print "
-
-
- ";
+ wrapFormElement(
+ _("Yubikey"),
+ array(
+ "
",
+ $f->get_element("yubikey", ""),
+ ""
+ )
+ );
- print "
-
-
-
-
- ";
- $f->show_element("auth_method", "");
- print "
-
-
- ";
+ wrapFormElement(
+ _("Yubikey usage"),
+ array(
+ "
",
+ $f->get_element("auth_method", ""),
+ ""
+ )
+ );
}
- print "
-
-
-
- ";
- print " ";
- print "
-
-
- ";
+ wrapFormElement(
+ array(
+ "
",
+ "E-mail settings",
+ ""
+ ),
+ array(
+ "
",
+ "",
+ ""
+ )
+ );
if ($perm->have_perm("admin")) {
- print "
-
-
-
-
- ";
- $f->show_element("expire", "");
- print "
-
-
- ";
+ print "
";
+ wrapFormElement(
+ array(
+ "
",
+ "Expire date",
+ ""
+ ),
+ array(
+ "
",
+ $f->get_element("expire", ""),
+ ""
+ )
+ );
- print "
-
-
-
- ";
- $f->show_element("impersonate", "");
- print "
-
-
-
- ";
- print "
-
-
-
- ";
- print "";
- print "
-
-
-
- ";
+ wrapFormElement(
+ array(
+ "
",
+ "Impersonate",
+ ""
+ ),
+ array(
+ "
",
+ $f->get_element("impersonate", ""),
+ ""
+ )
+ );
+
+ wrapFormElement(
+ array(
+ "
",
+ "Delete",
+ ""
+ ),
+ array(
+ "
",
+ "",
+ ""
+ )
+ );
/*
print "
Lock |
";
$f->show_element("blocked","");
print "
|
";
*/
print "
";
}
print "
";
print "
";
print "
Permissions
";
if ($perm->have_perm("admin")) {
print "
Functions
";
print $perm->perm_sel("perms", $perms);
print "
";
}
print "
Data sources
";
$f->show_element("sources", "");
print "
";
print "
Filters
";
- print "
-
";
- $f->show_element("aclFilter", "");
- print "
";
- print "
-
";
- $f->show_element("gatewayFilter", "");
- print "
";
- print "
-
";
- $f->show_element("domainFilter", "");
- print "
";
- print "
-
";
- $f->show_element("aNumberFilter", "");
+
+ wrapFormElement("IP ACL", $f->get_element("aclFilter", ""));
+ wrapFormElement("Trusted peers", $f->get_element("gatewayFilter", ""));
+ wrapFormElement("Domains", $f->get_element("domainFilter", ""));
+ wrapFormElement("Subscribers", $f->get_element("aNumberFilter", ""));
+ wrapFormElement("After date", $f->get_element("afterDateFilter", ""));
+
print "
";
- print "
-
";
- $f->show_element("afterDateFilter", "");
- print "
";
if (!$frzall) {
print "";
$f->show_element("submit", "", "btn");
print "
";
}
$f->finish(); // Finish form
}
function accountList()
{
global $auth, $perm, $verbose, $search_text, $PHP_SELF;
$uid = $auth->auth["uid"];
$db = new DB_CDRTool;
$query = "select * from auth_user";
if (!$perm->have_perm("admin")) {
$query .= sprintf(" where user_id = '%s'", addslashes($uid));
}
$query .= " order by name asc";
$db->query($query);
dprint_sql($query);
$rows = $db->num_rows();
print "
";
print "";
print _("Name");
print " | ";
print _("Organization");
print " | ";
print _("Username");
print " | ";
print _("E-mail");
print " | ";
print _("Tel");
print " | ";
print _("Sources");
print " | ";
print _("Expire");
print " |
";
while ($db->next_record()) {
$id_db = $db->f('user_id');
$name = $db->f('name');
$username = $db->f('username');
$email = $db->f('email');
$organization = $db->f('organization');
$password = $db->f('password');
$tel = $db->f('tel');
$domainFilter = $db->f('domainFilter');
$aNumberFilter = $db->f('aNumberFilter');
$expire = $db->f('expire');
$sources = preg_replace("/,/", ", ", $db->f('sources'));
$bgcolor = "";
if (date('Y-m-d') > $expire) {
$bgcolor = "error";
}
print "
$name |
$organization |
$username |
$email |
$tel |
$sources |
$expire |
";
}
print "
";
}
?>