Subversion Repositories oidplus

Compare Revisions

Regard whitespace Rev 385 → Rev 386

/trunk/.buildpath
0,0 → 1,5
<?xml version="1.0" encoding="UTF-8"?>
<buildpath>
<buildpathentry kind="src" path=""/>
<buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/>
</buildpath>
/trunk/.project
0,0 → 1,28
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>OIDplus</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.dltk.core.scriptbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.php.core.PHPNature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
</natures>
</projectDescription>
/trunk/.settings/org.eclipse.core.resources.prefs
0,0 → 1,6
eclipse.preferences.version=1
encoding//plugins/adminPages/120_registration/info$dede.html=UTF-8
encoding//plugins/publicPages/000_objects/welcome$dede.html=UTF-8
encoding//plugins/publicPages/200_viathinksoft_freeoid/tos$dede.html=UTF-8
encoding//res/OIDplus/acknowledgements$dede.html=UTF-8
encoding//res/OIDplus/privacy_documentation$dede.html=UTF-8
/trunk/.settings/org.eclipse.php.core.prefs
0,0 → 1,16
eclipse.preferences.version=1
include_path=0;/OIDplus
pdt_validator/enabled=true
pdt_validator/org.eclipse.php.internal.core.compiler.ast.parser.PHPProblemIdentifier/CannotInstantiateType/severity=ERROR
pdt_validator/org.eclipse.php.internal.core.compiler.ast.parser.PHPProblemIdentifier/DuplicateDeclaration/severity=ERROR
pdt_validator/org.eclipse.php.internal.core.compiler.ast.parser.PHPProblemIdentifier/FirstClassMustMatchFileName/severity=IGNORE
pdt_validator/org.eclipse.php.internal.core.compiler.ast.parser.PHPProblemIdentifier/ImportNotFound/severity=ERROR
pdt_validator/org.eclipse.php.internal.core.compiler.ast.parser.PHPProblemIdentifier/UndefinedType/severity=ERROR
pdt_validator/org.eclipse.php.internal.core.compiler.ast.parser.PHPProblemIdentifier/UndefinedVariable/severity=WARNING
pdt_validator/org.eclipse.php.internal.core.compiler.ast.parser.PHPProblemIdentifier/UnexpectedNamespaceDeclaration/severity=IGNORE
pdt_validator/org.eclipse.php.internal.core.compiler.ast.parser.PHPProblemIdentifier/UnnecessaryImport/severity=WARNING
pdt_validator/org.eclipse.php.internal.core.compiler.ast.parser.PHPProblemIdentifier/UnusedImport/severity=WARNING
pdt_validator/org.eclipse.php.internal.core.compiler.ast.parser.PHPProblemIdentifier/UnusedVariable/severity=IGNORE
phpVersion=php7.0
useShortTags=true
use_asp_tags_as_php=false
/trunk/.settings/org.eclipse.php.formatter.core.prefs
0,0 → 1,214
eclipse.preferences.version=1
formatterProfile=_ViaThinkSoft
indentationChar=\t
insert_space_after_opening_paren_in_declare=false
insert_space_before_closing_paren_in_declare=false
insert_space_before_opening_paren_in_declare=false
org.eclipse.php.core.formatter.insert_new_line_in_function_invoke=3
org.eclipse.php.formatter.core.formatter.alignment_for_arguments_in_allocation_expression_force_split=false
org.eclipse.php.formatter.core.formatter.alignment_for_arguments_in_allocation_expression_indent_policy=0
org.eclipse.php.formatter.core.formatter.alignment_for_arguments_in_allocation_expression_line_wrap_policy=1
org.eclipse.php.formatter.core.formatter.alignment_for_arguments_in_method_invocation_force_split=false
org.eclipse.php.formatter.core.formatter.alignment_for_arguments_in_method_invocation_indent_policy=0
org.eclipse.php.formatter.core.formatter.alignment_for_arguments_in_method_invocation_line_wrap_policy=1
org.eclipse.php.formatter.core.formatter.alignment_for_assignment_force_split=false
org.eclipse.php.formatter.core.formatter.alignment_for_assignment_indent_policy=0
org.eclipse.php.formatter.core.formatter.alignment_for_assignment_line_wrap_policy=0
org.eclipse.php.formatter.core.formatter.alignment_for_binary_expression_force_split=false
org.eclipse.php.formatter.core.formatter.alignment_for_binary_expression_indent_policy=0
org.eclipse.php.formatter.core.formatter.alignment_for_binary_expression_line_wrap_policy=1
org.eclipse.php.formatter.core.formatter.alignment_for_compact_if_force_split=false
org.eclipse.php.formatter.core.formatter.alignment_for_compact_if_indent_policy=0
org.eclipse.php.formatter.core.formatter.alignment_for_compact_if_line_wrap_policy=0
org.eclipse.php.formatter.core.formatter.alignment_for_conditional_expression_force_split=false
org.eclipse.php.formatter.core.formatter.alignment_for_conditional_expression_indent_policy=0
org.eclipse.php.formatter.core.formatter.alignment_for_conditional_expression_line_wrap_policy=0
org.eclipse.php.formatter.core.formatter.alignment_for_expressions_in_array_initializer_force_split=true
org.eclipse.php.formatter.core.formatter.alignment_for_expressions_in_array_initializer_indent_policy=0
org.eclipse.php.formatter.core.formatter.alignment_for_expressions_in_array_initializer_line_wrap_policy=3
org.eclipse.php.formatter.core.formatter.alignment_for_parameters_in_method_declaration_force_split=false
org.eclipse.php.formatter.core.formatter.alignment_for_parameters_in_method_declaration_indent_policy=0
org.eclipse.php.formatter.core.formatter.alignment_for_parameters_in_method_declaration_line_wrap_policy=1
org.eclipse.php.formatter.core.formatter.alignment_for_superclass_in_type_declaration_force_split=false
org.eclipse.php.formatter.core.formatter.alignment_for_superclass_in_type_declaration_indent_policy=0
org.eclipse.php.formatter.core.formatter.alignment_for_superclass_in_type_declaration_line_wrap_policy=0
org.eclipse.php.formatter.core.formatter.alignment_for_superinterfaces_in_type_declaration_force_split=false
org.eclipse.php.formatter.core.formatter.alignment_for_superinterfaces_in_type_declaration_indent_policy=0
org.eclipse.php.formatter.core.formatter.alignment_for_superinterfaces_in_type_declaration_line_wrap_policy=1
org.eclipse.php.formatter.core.formatter.blank_lines_before_field=1
org.eclipse.php.formatter.core.formatter.blank_lines_before_member_type=1
org.eclipse.php.formatter.core.formatter.blank_lines_before_method=1
org.eclipse.php.formatter.core.formatter.blank_lines_between_type_declarations=1
org.eclipse.php.formatter.core.formatter.brace_position_for_block=0
org.eclipse.php.formatter.core.formatter.brace_position_for_lambda_function_declaration=0
org.eclipse.php.formatter.core.formatter.brace_position_for_method_declaration=0
org.eclipse.php.formatter.core.formatter.brace_position_for_switch=0
org.eclipse.php.formatter.core.formatter.brace_position_for_type_declaration=0
org.eclipse.php.formatter.core.formatter.comment.clear_blank_lines_in_block_comment=false
org.eclipse.php.formatter.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
org.eclipse.php.formatter.core.formatter.comment.format_block_comments=true
org.eclipse.php.formatter.core.formatter.comment.format_header=false
org.eclipse.php.formatter.core.formatter.comment.format_html=true
org.eclipse.php.formatter.core.formatter.comment.format_javadoc_comments=true
org.eclipse.php.formatter.core.formatter.comment.format_line_comments=true
org.eclipse.php.formatter.core.formatter.comment.format_source_code=true
org.eclipse.php.formatter.core.formatter.comment.indent_parameter_description=true
org.eclipse.php.formatter.core.formatter.comment.indent_root_tags=true
org.eclipse.php.formatter.core.formatter.comment.insert_new_line_before_root_tags=true
org.eclipse.php.formatter.core.formatter.comment.insert_new_line_for_parameter=true
org.eclipse.php.formatter.core.formatter.comment.keep_empty_line_for_empty_description=true
org.eclipse.php.formatter.core.formatter.comment.line_length=9999
org.eclipse.php.formatter.core.formatter.comment.never_format_unknown_tags=true
org.eclipse.php.formatter.core.formatter.comment.new_lines_at_block_boundaries=true
org.eclipse.php.formatter.core.formatter.comment.new_lines_at_javadoc_boundaries=true
org.eclipse.php.formatter.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
org.eclipse.php.formatter.core.formatter.continuation_indentation=1
org.eclipse.php.formatter.core.formatter.continuation_indentation_for_array_initializer=1
org.eclipse.php.formatter.core.formatter.disabling_tag=@formatter\:off
org.eclipse.php.formatter.core.formatter.enabling_tag=@formatter\:on
org.eclipse.php.formatter.core.formatter.format_guardian_clause_on_one_line=false
org.eclipse.php.formatter.core.formatter.format_line_comment_starting_on_first_column=true
org.eclipse.php.formatter.core.formatter.indent_body_declarations_compare_to_type_header=true
org.eclipse.php.formatter.core.formatter.indent_breaks_compare_to_cases=true
org.eclipse.php.formatter.core.formatter.indent_empty_lines=false
org.eclipse.php.formatter.core.formatter.indent_heredocs=true
org.eclipse.php.formatter.core.formatter.indent_statements_compare_to_block=true
org.eclipse.php.formatter.core.formatter.indent_statements_compare_to_body=true
org.eclipse.php.formatter.core.formatter.indent_switchstatements_compare_to_cases=true
org.eclipse.php.formatter.core.formatter.indent_switchstatements_compare_to_switch=true
org.eclipse.php.formatter.core.formatter.indentation.size=1
org.eclipse.php.formatter.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=false
org.eclipse.php.formatter.core.formatter.insert_new_line_before_catch_in_try_statement=false
org.eclipse.php.formatter.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=true
org.eclipse.php.formatter.core.formatter.insert_new_line_before_else_in_if_statement=false
org.eclipse.php.formatter.core.formatter.insert_new_line_before_finally_in_try_statement=false
org.eclipse.php.formatter.core.formatter.insert_new_line_before_while_in_do_statement=false
org.eclipse.php.formatter.core.formatter.insert_new_line_in_empty_block=false
org.eclipse.php.formatter.core.formatter.insert_new_line_in_empty_method_body=false
org.eclipse.php.formatter.core.formatter.insert_new_line_in_empty_type_declaration=false
org.eclipse.php.formatter.core.formatter.insert_space_after_arrow_in_array_creation=true
org.eclipse.php.formatter.core.formatter.insert_space_after_arrow_in_field_access=false
org.eclipse.php.formatter.core.formatter.insert_space_after_arrow_in_foreach=true
org.eclipse.php.formatter.core.formatter.insert_space_after_arrow_in_method_invocation=false
org.eclipse.php.formatter.core.formatter.insert_space_after_arrow_in_yield=true
org.eclipse.php.formatter.core.formatter.insert_space_after_assignment_operator=true
org.eclipse.php.formatter.core.formatter.insert_space_after_binary_operator=true
org.eclipse.php.formatter.core.formatter.insert_space_after_closing_brace_in_block=true
org.eclipse.php.formatter.core.formatter.insert_space_after_closing_paren_in_cast=true
org.eclipse.php.formatter.core.formatter.insert_space_after_colon_in_conditional=true
org.eclipse.php.formatter.core.formatter.insert_space_after_coloncolon_in_field_access=false
org.eclipse.php.formatter.core.formatter.insert_space_after_coloncolon_in_method_invocation=false
org.eclipse.php.formatter.core.formatter.insert_space_after_comma_in_array_creation=false
org.eclipse.php.formatter.core.formatter.insert_space_after_comma_in_echo=true
org.eclipse.php.formatter.core.formatter.insert_space_after_comma_in_for_inits=true
org.eclipse.php.formatter.core.formatter.insert_space_after_comma_in_global=true
org.eclipse.php.formatter.core.formatter.insert_space_after_comma_in_list=true
org.eclipse.php.formatter.core.formatter.insert_space_after_comma_in_method_declaration_parameters=true
org.eclipse.php.formatter.core.formatter.insert_space_after_comma_in_method_invocation_arguments=true
org.eclipse.php.formatter.core.formatter.insert_space_after_comma_in_multiple_constant_declarations=true
org.eclipse.php.formatter.core.formatter.insert_space_after_comma_in_multiple_field_declarations=true
org.eclipse.php.formatter.core.formatter.insert_space_after_comma_in_static=true
org.eclipse.php.formatter.core.formatter.insert_space_after_comma_in_superinterfaces=true
org.eclipse.php.formatter.core.formatter.insert_space_after_concatenation_operator=true
org.eclipse.php.formatter.core.formatter.insert_space_after_opening_bracket_in_array_reference=false
org.eclipse.php.formatter.core.formatter.insert_space_after_opening_paren_in_array_creation=false
org.eclipse.php.formatter.core.formatter.insert_space_after_opening_paren_in_cast=false
org.eclipse.php.formatter.core.formatter.insert_space_after_opening_paren_in_catch=false
org.eclipse.php.formatter.core.formatter.insert_space_after_opening_paren_in_for=false
org.eclipse.php.formatter.core.formatter.insert_space_after_opening_paren_in_foreach=false
org.eclipse.php.formatter.core.formatter.insert_space_after_opening_paren_in_if=false
org.eclipse.php.formatter.core.formatter.insert_space_after_opening_paren_in_list=false
org.eclipse.php.formatter.core.formatter.insert_space_after_opening_paren_in_method_declaration=false
org.eclipse.php.formatter.core.formatter.insert_space_after_opening_paren_in_method_invocation=false
org.eclipse.php.formatter.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=false
org.eclipse.php.formatter.core.formatter.insert_space_after_opening_paren_in_switch=false
org.eclipse.php.formatter.core.formatter.insert_space_after_opening_paren_in_while=false
org.eclipse.php.formatter.core.formatter.insert_space_after_postfix_operator=false
org.eclipse.php.formatter.core.formatter.insert_space_after_prefix_operator=true
org.eclipse.php.formatter.core.formatter.insert_space_after_question_in_conditional=true
org.eclipse.php.formatter.core.formatter.insert_space_after_reference_symbol_in_referenced_expression=false
org.eclipse.php.formatter.core.formatter.insert_space_after_semicolon_in_for=true
org.eclipse.php.formatter.core.formatter.insert_space_after_unary_operator=true
org.eclipse.php.formatter.core.formatter.insert_space_before_arrow_in_array_creation=true
org.eclipse.php.formatter.core.formatter.insert_space_before_arrow_in_field_access=false
org.eclipse.php.formatter.core.formatter.insert_space_before_arrow_in_foreach=true
org.eclipse.php.formatter.core.formatter.insert_space_before_arrow_in_method_invocation=false
org.eclipse.php.formatter.core.formatter.insert_space_before_arrow_in_yield=true
org.eclipse.php.formatter.core.formatter.insert_space_before_assignment_operator=true
org.eclipse.php.formatter.core.formatter.insert_space_before_binary_operator=true
org.eclipse.php.formatter.core.formatter.insert_space_before_closing_bracket_in_array_reference=false
org.eclipse.php.formatter.core.formatter.insert_space_before_closing_paren_in_array_creation=false
org.eclipse.php.formatter.core.formatter.insert_space_before_closing_paren_in_cast=false
org.eclipse.php.formatter.core.formatter.insert_space_before_closing_paren_in_catch=false
org.eclipse.php.formatter.core.formatter.insert_space_before_closing_paren_in_for=false
org.eclipse.php.formatter.core.formatter.insert_space_before_closing_paren_in_foreach=false
org.eclipse.php.formatter.core.formatter.insert_space_before_closing_paren_in_if=false
org.eclipse.php.formatter.core.formatter.insert_space_before_closing_paren_in_list=false
org.eclipse.php.formatter.core.formatter.insert_space_before_closing_paren_in_method_declaration=false
org.eclipse.php.formatter.core.formatter.insert_space_before_closing_paren_in_method_invocation=false
org.eclipse.php.formatter.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=false
org.eclipse.php.formatter.core.formatter.insert_space_before_closing_paren_in_switch=false
org.eclipse.php.formatter.core.formatter.insert_space_before_closing_paren_in_while=false
org.eclipse.php.formatter.core.formatter.insert_space_before_colon_in_case=false
org.eclipse.php.formatter.core.formatter.insert_space_before_colon_in_conditional=true
org.eclipse.php.formatter.core.formatter.insert_space_before_colon_in_default=false
org.eclipse.php.formatter.core.formatter.insert_space_before_coloncolon_in_field_access=false
org.eclipse.php.formatter.core.formatter.insert_space_before_coloncolon_in_method_invocation=false
org.eclipse.php.formatter.core.formatter.insert_space_before_comma_in_array_creation=false
org.eclipse.php.formatter.core.formatter.insert_space_before_comma_in_echo=false
org.eclipse.php.formatter.core.formatter.insert_space_before_comma_in_for_inits=false
org.eclipse.php.formatter.core.formatter.insert_space_before_comma_in_global=false
org.eclipse.php.formatter.core.formatter.insert_space_before_comma_in_list=false
org.eclipse.php.formatter.core.formatter.insert_space_before_comma_in_method_declaration_parameters=false
org.eclipse.php.formatter.core.formatter.insert_space_before_comma_in_method_invocation_arguments=false
org.eclipse.php.formatter.core.formatter.insert_space_before_comma_in_multiple_constant_declarations=false
org.eclipse.php.formatter.core.formatter.insert_space_before_comma_in_multiple_field_declarations=false
org.eclipse.php.formatter.core.formatter.insert_space_before_comma_in_static=false
org.eclipse.php.formatter.core.formatter.insert_space_before_comma_in_superinterfaces=false
org.eclipse.php.formatter.core.formatter.insert_space_before_concatenation_operator=true
org.eclipse.php.formatter.core.formatter.insert_space_before_opening_brace_in_block=true
org.eclipse.php.formatter.core.formatter.insert_space_before_opening_brace_in_method_declaration=true
org.eclipse.php.formatter.core.formatter.insert_space_before_opening_brace_in_switch=true
org.eclipse.php.formatter.core.formatter.insert_space_before_opening_brace_in_type_declaration=true
org.eclipse.php.formatter.core.formatter.insert_space_before_opening_bracket_in_array_reference=false
org.eclipse.php.formatter.core.formatter.insert_space_before_opening_paren_in_array_creation=false
org.eclipse.php.formatter.core.formatter.insert_space_before_opening_paren_in_catch=true
org.eclipse.php.formatter.core.formatter.insert_space_before_opening_paren_in_for=true
org.eclipse.php.formatter.core.formatter.insert_space_before_opening_paren_in_foreach=true
org.eclipse.php.formatter.core.formatter.insert_space_before_opening_paren_in_if=true
org.eclipse.php.formatter.core.formatter.insert_space_before_opening_paren_in_list=true
org.eclipse.php.formatter.core.formatter.insert_space_before_opening_paren_in_method_declaration=false
org.eclipse.php.formatter.core.formatter.insert_space_before_opening_paren_in_method_invocation=false
org.eclipse.php.formatter.core.formatter.insert_space_before_opening_paren_in_switch=true
org.eclipse.php.formatter.core.formatter.insert_space_before_opening_paren_in_while=true
org.eclipse.php.formatter.core.formatter.insert_space_before_postfix_operator=true
org.eclipse.php.formatter.core.formatter.insert_space_before_prefix_operator=false
org.eclipse.php.formatter.core.formatter.insert_space_before_question_in_conditional=true
org.eclipse.php.formatter.core.formatter.insert_space_before_semicolon=false
org.eclipse.php.formatter.core.formatter.insert_space_before_semicolon_in_for=false
org.eclipse.php.formatter.core.formatter.insert_space_before_unary_operator=false
org.eclipse.php.formatter.core.formatter.insert_space_between_brackets_in_array_type_reference=false
org.eclipse.php.formatter.core.formatter.insert_space_between_empty_parens_in_method_declaration=false
org.eclipse.php.formatter.core.formatter.insert_space_between_empty_parens_in_method_invocation=false
org.eclipse.php.formatter.core.formatter.join_lines_in_comments=true
org.eclipse.php.formatter.core.formatter.keep_else_statement_on_same_line=false
org.eclipse.php.formatter.core.formatter.keep_elseif_statement_on_same_line=true
org.eclipse.php.formatter.core.formatter.keep_imple_if_on_one_line=false
org.eclipse.php.formatter.core.formatter.keep_then_statement_on_same_line=false
org.eclipse.php.formatter.core.formatter.keep_trailing_comma_in_list=false
org.eclipse.php.formatter.core.formatter.lineSplit=9999
org.eclipse.php.formatter.core.formatter.never_indent_block_comments_on_first_column=false
org.eclipse.php.formatter.core.formatter.never_indent_line_comments_on_first_column=false
org.eclipse.php.formatter.core.formatter.number_of_blank_lines_after_namespace=1
org.eclipse.php.formatter.core.formatter.number_of_blank_lines_after_use_statements=0
org.eclipse.php.formatter.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
org.eclipse.php.formatter.core.formatter.number_of_blank_lines_at_end_of_class_body=0
org.eclipse.php.formatter.core.formatter.number_of_blank_lines_at_end_of_method_body=0
org.eclipse.php.formatter.core.formatter.number_of_blank_lines_before_namespace=0
org.eclipse.php.formatter.core.formatter.number_of_blank_lines_before_use_statements=0
org.eclipse.php.formatter.core.formatter.number_of_blank_lines_between_namespaces=0
org.eclipse.php.formatter.core.formatter.number_of_blank_lines_between_use_statements=0
org.eclipse.php.formatter.core.formatter.number_of_empty_lines_to_preserve=1
org.eclipse.php.formatter.core.formatter.put_empty_statement_on_new_line=false
org.eclipse.php.formatter.core.formatter.tabulation.size=4
org.eclipse.php.formatter.core.formatter.use_on_off_tags=false
/trunk/.settings/org.eclipse.php.ui.prefs
0,0 → 1,2
eclipse.preferences.version=1
org.eclipse.php.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
/trunk/.settings/org.eclipse.wst.common.project.facet.core.xml
0,0 → 1,7
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="php.core.component"/>
<fixed facet="php.component"/>
<installed facet="php.core.component" version="1"/>
<installed facet="php.component" version="7"/>
</faceted-project>
/trunk/.settings/org.eclipse.wst.html.core.prefs
0,0 → 1,42
attrDuplicate=2
attrInvalidName=2
attrInvalidValue=2
attrNameMismatch=2
attrNamesToIgnore=
attrUndefName=2
attrUndefValue=2
attrValueEqualsMissing=2
attrValueMismatch=1
attrValueUnclosed=2
cdataInvalidContent=2
cdataUnclosed=1
commentInvalidContent=2
commentUnclosed=1
docDoctypeUnclosed=1
docDuplicateTag=1
docInvalidChar=2
docInvalidContent=2
eclipse.preferences.version=1
elemCoexistence=2
elemDuplicate=2
elemEndInvalidCase=1
elemInvalidContent=2
elemInvalidDirective=1
elemInvalidEmptyTag=2
elemInvalidName=1
elemInvalidText=2
elemMissingEnd=2
elemMissingStart=2
elemStartInvalidCase=2
elemUnclosedEndTag=1
elemUnclosedStartTag=1
elemUnknownName=2
elemUnnecessaryEnd=2
elementNamesToIgnore=
ignoreAttrNames=false
ignoreElementNames=false
piInvalidContent=2
piUnclosed=1
piUndefined=2
refInvalidContent=2
resourceNotFound=2
/trunk/dev/translation/generate_proof_files.phps
100,6 → 100,7
$cont = str_replace('\\"', chr(1), $cont);
$cont = str_replace("\\'", chr(2), $cont);
$cont = str_replace("\\\\", "\\", $cont);
$m = array();
preg_match_all('@[^_A-Za-z0-9]_L\\(.*(["\'])(.+)\\1@ismU', $cont, $m);
foreach ($m[2] as &$x) {
$x = str_replace(chr(1), '"', $x);
/trunk/dev/translation/message_regenerate.phps
149,6 → 149,7
$cont = str_replace('\\"', chr(1), $cont);
$cont = str_replace("\\'", chr(2), $cont);
$cont = str_replace("\\\\", "\\", $cont);
$m = array();
preg_match_all('@[^_A-Za-z0-9]_L\\(.*(["\'])(.+)\\1@ismU', $cont, $m);
foreach ($m[2] as &$x) {
$x = str_replace(chr(1), '"', $x);
/trunk/includes/classes/OIDplus.class.php
729,6 → 729,7
 
if (self::getPkiStatus(true)) {
$pubKey = OIDplus::config()->getValue('oidplus_public_key');
$m = array();
if (preg_match('@BEGIN PUBLIC KEY\-+(.+)\-+END PUBLIC KEY@ismU', $pubKey, $m)) {
$out = smallhash(base64_decode($m[1]));
}
771,6 → 772,7
OIDplus::config()->setValue('oidplus_public_key', $pubKey);
 
// Log the new system ID
$m = array();
if (preg_match('@BEGIN PUBLIC KEY\-+(.+)\-+END PUBLIC KEY@ismU', $pubKey, $m)) {
$system_id = smallhash(base64_decode($m[1]));
OIDplus::logger()->log("[INFO]A!", "Your SystemID is now $system_id");
828,6 → 830,7
// Try to find out the SVN version using the shell
// We don't prioritize this method, because a failed shell access will flood the apache error log with STDERR messages
$output = @shell_exec('svnversion '.escapeshellarg(OIDplus::basePath()));
$match = array();
if (preg_match('/\d+/', $output, $match)) {
return 'svn-'.$match[0]; // do not translate
}
840,6 → 843,7
 
if (file_exists(OIDplus::basePath().'/oidplus_version.txt')) {
$cont = file_get_contents(OIDplus::basePath().'/oidplus_version.txt');
$m = array();
if (preg_match('@Revision (\d+)@', $cont, $m)) // do not translate
return 'svn-'.$m[1]; // do not translate
}
909,6 → 913,8
}
} else {
// This is our first check (or the browser didn't accept the SSL_CHECK cookie)
$errno = -1;
$errstr = '';
if (@fsockopen($_SERVER['HTTP_HOST'], $ssl_port, $errno, $errstr, $timeout)) {
// HTTPS detected. Redirect now, and remember that we had detected HTTPS
setcookie('SSL_CHECK', '1', 0, $cookie_path, '', false, true);
/trunk/includes/classes/OIDplusDatabaseConnection.class.php
120,9 → 120,13
throw new OIDplusConfigInitializationException(_L('Entry "database_version" inside the table "###config" seems to be wrong (expect number between 200 and 999)'));
}
 
while (file_exists($file = OIDplus::basePath().'/includes/db_updates/update'.$version.'.inc.php')) {
$update_files = glob(OIDplus::basePath().'/includes/db_updates/update*.inc.php');
foreach ($update_files as $update_file) {
include_once $update_file;
}
while (function_exists($function_name = "oidplus_dbupdate_".$version."_".($version+1))) {
$prev_version = $version;
include $file; // run update-script
$function_name($this, $version);
if ($version != $prev_version+1) {
// This should usually not happen, since the update-file should increase the version
// or throw an Exception by itself
/trunk/includes/classes/OIDplusLogger.class.php
261,6 → 261,7
}
 
// OID(x) Save log entry into the logbook of: Object "x"
$m = array();
if (preg_match('@^OID\((.+)\)$@ismU', $maskcode, $m)) {
$object_id = $m[1];
$objects[] = array($severity, $object_id);
/trunk/includes/classes/OIDplusMailUtils.class.php
80,8 → 80,11
 
// --- Old code ---
 
/*
// Attention: document.write() JavaScript will damage the browser cache, which leads to bugs if you navigate back&forth with the browser navigation
 
$crypt_linktext = true;
 
// No new lines to avoid a JavaScript error!
$linktext = str_replace("\r", ' ', $linktext);
$linktext = str_replace("\n", ' ', $linktext);
124,6 → 127,8
if ($crypt_linktext) $linktext = str_replace('@', '&', $linktext);
$email = str_replace('@', '&', $email);
return $aus.'<noscript>'.htmlentities($linktext).' ('.htmlentities($email).')</noscript>';
*/
}
 
public static function sendMail($to, $title, $msg, $cc='', $bcc='') {
/trunk/includes/classes/SecureMailer.class.php
28,12 → 28,13
const endl = "\n"; // GMX will kein CRLF! wtf?! (Unter Postfix in Linux)
 
private function QB_SECURE_MAIL_PARAM($param_ = '', $level_ = 2) {
// Verhindert Mail-Header-Injections
// Quelle: http://www.erich-kachel.de/?p=26
// Prevents eMail header injections
// Source: http://www.erich-kachel.de/?p=26 (modified)
 
/* replace until done */
while (!isset($filtered) || ($param_ != $filtered)) {
if (isset($filtered)) {
$filtered = null;
while (!is_null($filtered) || ($param_ != $filtered)) {
if (is_null($filtered)) {
$param_ = $filtered;
}
 
/trunk/includes/classes/http_class.class.php
1,15 → 1,799
<?php
 
/*
* http.php
* This file includes:
*
* 1. PHP HTTP protocol client: HTTP client to access Web site pages
* by Manuel Lemos
* http://www.phpclasses.org/httpclient
* License: BSD License
*
* http.php
* @(#) $Header: /opt2/ena/metal/http/http.php,v 1.94 2016/05/03 02:07:04 mlemos Exp $
* Modified by Daniel Marschall, ViaThinkSoft, Revision 2020-09-12
*
*
* 2. Simple Authentication and Security Layer client
* (Included because of dependency)
* by Manuel Lemos
* http://www.phpclasses.org/sasl
* License: BSD License
*
* sasl.php
* @(#) $Id: sasl.php,v 1.11 2005/10/31 18:43:27 mlemos Exp $
* basic_sasl_client.php
* @(#) $Id: basic_sasl_client.php,v 1.1 2004/11/17 08:01:23 mlemos Exp $
* cram_md5_sasl_client.php
* @(#) $Id: cram_md5_sasl_client.php,v 1.3 2004/11/17 08:00:37 mlemos Exp $
* digest_sasl_client.php
* @(#) $Id: digest_sasl_client.php,v 1.1 2005/10/27 05:24:15 mlemos Exp $
* login_sasl_client.php
* @(#) $Id: login_sasl_client.php,v 1.2 2004/11/17 08:00:37 mlemos Exp $
* ntlm_sasl_client.php
* @(#) $Id: ntlm_sasl_client.php,v 1.3 2004/11/17 08:00:37 mlemos Exp $
* plain_sasl_client.php
* @(#) $Id: plain_sasl_client.php,v 1.2 2004/11/17 08:00:37 mlemos Exp $
*/
 
// =============================================================================
 
/*
* basic_sasl_client.php
*
* @(#) $Id: basic_sasl_client.php,v 1.1 2004/11/17 08:01:23 mlemos Exp $
*
*/
 
define("SASL_BASIC_STATE_START", 0);
define("SASL_BASIC_STATE_DONE", 1);
 
class basic_sasl_client_class
{
var $credentials=array();
var $state=SASL_BASIC_STATE_START;
 
Function Initialize(&$client)
{
return(1);
}
 
Function Start(&$client, &$message, &$interactions)
{
if($this->state!=SASL_BASIC_STATE_START)
{
$client->error="Basic authentication state is not at the start";
return(SASL_FAIL);
}
$this->credentials=array(
"user"=>"",
"password"=>""
);
$defaults=array(
);
$status=$client->GetCredentials($this->credentials,$defaults,$interactions);
if($status==SASL_CONTINUE)
{
$message=$this->credentials["user"].":".$this->credentials["password"];
$this->state=SASL_BASIC_STATE_DONE;
}
else
Unset($message);
return($status);
}
 
Function Step(&$client, $response, &$message, &$interactions)
{
switch($this->state)
{
case SASL_BASIC_STATE_DONE:
$client->error="Basic authentication was finished without success";
return(SASL_FAIL);
default:
$client->error="invalid Basic authentication step state";
return(SASL_FAIL);
}
return(SASL_CONTINUE);
}
};
 
// =============================================================================
 
/*
* cram_md5_sasl_client.php
*
* @(#) $Id: cram_md5_sasl_client.php,v 1.3 2004/11/17 08:00:37 mlemos Exp $
*
*/
 
define("SASL_CRAM_MD5_STATE_START", 0);
define("SASL_CRAM_MD5_STATE_RESPOND_CHALLENGE", 1);
define("SASL_CRAM_MD5_STATE_DONE", 2);
 
class cram_md5_sasl_client_class
{
var $credentials=array();
var $state=SASL_CRAM_MD5_STATE_START;
 
Function Initialize(&$client)
{
return(1);
}
 
Function HMACMD5($key,$text)
{
$key=(strlen($key)<64 ? str_pad($key,64,"\0") : substr($key,0,64));
return(md5((str_repeat("\x5c", 64)^$key).pack("H32", md5((str_repeat("\x36", 64)^$key).$text))));
}
 
Function Start(&$client, &$message, &$interactions)
{
if($this->state!=SASL_CRAM_MD5_STATE_START)
{
$client->error="CRAM-MD5 authentication state is not at the start";
return(SASL_FAIL);
}
$this->credentials=array(
"user"=>"",
"password"=>""
);
$defaults=array();
$status=$client->GetCredentials($this->credentials,$defaults,$interactions);
if($status==SASL_CONTINUE)
$this->state=SASL_CRAM_MD5_STATE_RESPOND_CHALLENGE;
Unset($message);
return($status);
}
 
Function Step(&$client, $response, &$message, &$interactions)
{
switch($this->state)
{
case SASL_CRAM_MD5_STATE_RESPOND_CHALLENGE:
$message=$this->credentials["user"]." ".$this->HMACMD5($this->credentials["password"], $response);
$this->state=SASL_CRAM_MD5_STATE_DONE;
break;
case SASL_CRAM_MD5_STATE_DONE:
$client->error="CRAM-MD5 authentication was finished without success";
return(SASL_FAIL);
default:
$client->error="invalid CRAM-MD5 authentication step state";
return(SASL_FAIL);
}
return(SASL_CONTINUE);
}
};
 
// =============================================================================
 
/*
* digest_sasl_client.php
*
* @(#) $Id: digest_sasl_client.php,v 1.1 2005/10/27 05:24:15 mlemos Exp $
*
*/
 
define('SASL_DIGEST_STATE_START', 0);
define('SASL_DIGEST_STATE_RESPOND_CHALLENGE', 1);
define('SASL_DIGEST_STATE_DONE', 2);
 
class digest_sasl_client_class
{
var $credentials=array();
var $state=SASL_DIGEST_STATE_START;
 
Function unq($string)
{
return(($string[0]=='"' && $string[strlen($string)-1]=='"') ? substr($string, 1, strlen($string)-2) : $string);
}
 
Function H($data)
{
return md5($data);
}
 
Function KD($secret, $data)
{
return $this->H($secret.':'.$data);
}
 
Function Initialize(&$client)
{
return(1);
}
 
Function Start(&$client, &$message, &$interactions)
{
if($this->state!=SASL_DIGEST_STATE_START)
{
$client->error='Digest authentication state is not at the start';
return(SASL_FAIL);
}
$this->credentials=array(
'user'=>'',
'password'=>'',
'uri'=>'',
'method'=>'',
'session'=>''
);
$defaults=array();
$status=$client->GetCredentials($this->credentials,$defaults,$interactions);
if($status==SASL_CONTINUE)
$this->state=SASL_DIGEST_STATE_RESPOND_CHALLENGE;
Unset($message);
return($status);
}
 
Function Step(&$client, $response, &$message, &$interactions)
{
switch($this->state)
{
case SASL_DIGEST_STATE_RESPOND_CHALLENGE:
$values=explode(',',$response);
$parameters=array();
for($v=0; $v<count($values); $v++)
$parameters[strtok(trim($values[$v]), '=')]=strtok('');
 
$message='username="'.$this->credentials['user'].'"';
if(!IsSet($parameters[$p='realm'])
&& !IsSet($parameters[$p='nonce']))
{
$client->error='Digest authentication parameter '.$p.' is missing from the server response';
return(SASL_FAIL);
}
$message.=', realm='.$parameters['realm'];
$message.=', nonce='.$parameters['nonce'];
$message.=', uri="'.$this->credentials['uri'].'"';
if(IsSet($parameters['algorithm']))
{
$algorithm=$this->unq($parameters['algorithm']);
$message.=', algorithm='.$parameters['algorithm'];
}
else
$algorithm='';
 
$realm=$this->unq($parameters['realm']);
$nonce=$this->unq($parameters['nonce']);
if(IsSet($parameters['qop']))
{
switch($qop=$this->unq($parameters['qop']))
{
case "auth":
$cnonce=$this->credentials['session'];
break;
default:
$client->error='Digest authentication quality of protection '.$qop.' is not yet supported';
return(SASL_FAIL);
}
}
$nc_value='00000001';
if(IsSet($parameters['qop'])
&& !strcmp($algorithm, 'MD5-sess'))
$A1=$this->H($this->credentials['user'].':'. $realm.':'. $this->credentials['password']).':'.$nonce.':'.$cnonce;
else
$A1=$this->credentials['user'].':'. $realm.':'. $this->credentials['password'];
$A2=$this->credentials['method'].':'.$this->credentials['uri'];
if(IsSet($parameters['qop']))
$response=$this->KD($this->H($A1), $nonce.':'. $nc_value.':'. $cnonce.':'. $qop.':'. $this->H($A2));
else
$response=$this->KD($this->H($A1), $nonce.':'. $this->H($A2));
$message.=', response="'.$response.'"';
if(IsSet($parameters['opaque']))
$message.=', opaque='.$parameters['opaque'];
if(IsSet($parameters['qop']))
$message.=', qop="'.$qop.'"';
$message.=', nc='.$nc_value;
if(IsSet($parameters['qop']))
$message.=', cnonce="'.$cnonce.'"';
$client->encode_response=0;
$this->state=SASL_DIGEST_STATE_DONE;
break;
case SASL_DIGEST_STATE_DONE:
$client->error='Digest authentication was finished without success';
return(SASL_FAIL);
default:
$client->error='invalid Digest authentication step state';
return(SASL_FAIL);
}
return(SASL_CONTINUE);
}
};
 
// =============================================================================
 
/*
* login_sasl_client.php
*
* @(#) $Id: login_sasl_client.php,v 1.2 2004/11/17 08:00:37 mlemos Exp $
*
*/
 
define("SASL_LOGIN_STATE_START", 0);
define("SASL_LOGIN_STATE_IDENTIFY_USER", 1);
define("SASL_LOGIN_STATE_IDENTIFY_PASSWORD", 2);
define("SASL_LOGIN_STATE_DONE", 3);
 
class login_sasl_client_class
{
var $credentials=array();
var $state=SASL_LOGIN_STATE_START;
 
Function Initialize(&$client)
{
return(1);
}
 
Function Start(&$client, &$message, &$interactions)
{
if($this->state!=SASL_LOGIN_STATE_START)
{
$client->error="LOGIN authentication state is not at the start";
return(SASL_FAIL);
}
$this->credentials=array(
"user"=>"",
"password"=>"",
"realm"=>""
);
$defaults=array(
"realm"=>""
);
$status=$client->GetCredentials($this->credentials,$defaults,$interactions);
if($status==SASL_CONTINUE)
$this->state=SASL_LOGIN_STATE_IDENTIFY_USER;
Unset($message);
return($status);
}
 
Function Step(&$client, $response, &$message, &$interactions)
{
switch($this->state)
{
case SASL_LOGIN_STATE_IDENTIFY_USER:
$message=$this->credentials["user"].(strlen($this->credentials["realm"]) ? "@".$this->credentials["realm"] : "");
$this->state=SASL_LOGIN_STATE_IDENTIFY_PASSWORD;
break;
case SASL_LOGIN_STATE_IDENTIFY_PASSWORD:
$message=$this->credentials["password"];
$this->state=SASL_LOGIN_STATE_DONE;
break;
case SASL_LOGIN_STATE_DONE:
$client->error="LOGIN authentication was finished without success";
break;
default:
$client->error="invalid LOGIN authentication step state";
return(SASL_FAIL);
}
return(SASL_CONTINUE);
}
};
 
// =============================================================================
 
/*
* ntlm_sasl_client.php
*
* @(#) $Id: ntlm_sasl_client.php,v 1.3 2004/11/17 08:00:37 mlemos Exp $
*
*/
 
define("SASL_NTLM_STATE_START", 0);
define("SASL_NTLM_STATE_IDENTIFY_DOMAIN", 1);
define("SASL_NTLM_STATE_RESPOND_CHALLENGE", 2);
define("SASL_NTLM_STATE_DONE", 3);
 
class ntlm_sasl_client_class
{
var $credentials=array();
var $state=SASL_NTLM_STATE_START;
 
Function Initialize(&$client)
{
if(!function_exists($function="mcrypt_encrypt")
|| !function_exists($function="mhash"))
{
$extensions=array(
"mcrypt_encrypt"=>"mcrypt",
"mhash"=>"mhash"
);
$client->error="the extension ".$extensions[$function]." required by the NTLM SASL client class is not available in this PHP configuration";
return(0);
}
return(1);
}
 
Function ASCIIToUnicode($ascii)
{
for($unicode="",$a=0;$a<strlen($ascii);$a++)
$unicode.=substr($ascii,$a,1).chr(0);
return($unicode);
}
 
Function TypeMsg1($domain,$workstation)
{
$domain_length=strlen($domain);
$workstation_length=strlen($workstation);
$workstation_offset=32;
$domain_offset=$workstation_offset+$workstation_length;
return(
"NTLMSSP\0".
"\x01\x00\x00\x00".
"\x07\x32\x00\x00".
pack("v",$domain_length).
pack("v",$domain_length).
pack("V",$domain_offset).
pack("v",$workstation_length).
pack("v",$workstation_length).
pack("V",$workstation_offset).
$workstation.
$domain
);
}
 
Function NTLMResponse($challenge,$password)
{
$unicode=$this->ASCIIToUnicode($password);
$md4=mhash(MHASH_MD4,$unicode);
$padded=$md4.str_repeat(chr(0),21-strlen($md4));
$iv_size=mcrypt_get_iv_size(MCRYPT_DES,MCRYPT_MODE_ECB);
$iv=mcrypt_create_iv($iv_size,MCRYPT_RAND);
for($response="",$third=0;$third<21;$third+=7)
{
for($packed="",$p=$third;$p<$third+7;$p++)
$packed.=str_pad(decbin(ord(substr($padded,$p,1))),8,"0",STR_PAD_LEFT);
for($key="",$p=0;$p<strlen($packed);$p+=7)
{
$s=substr($packed,$p,7);
$b=$s.((substr_count($s,"1") % 2) ? "0" : "1");
$key.=chr(bindec($b));
}
$ciphertext=mcrypt_encrypt(MCRYPT_DES,$key,$challenge,MCRYPT_MODE_ECB,$iv);
$response.=$ciphertext;
}
return $response;
}
 
Function TypeMsg3($ntlm_response,$user,$domain,$workstation)
{
$domain_unicode=$this->ASCIIToUnicode($domain);
$domain_length=strlen($domain_unicode);
$domain_offset=64;
$user_unicode=$this->ASCIIToUnicode($user);
$user_length=strlen($user_unicode);
$user_offset=$domain_offset+$domain_length;
$workstation_unicode=$this->ASCIIToUnicode($workstation);
$workstation_length=strlen($workstation_unicode);
$workstation_offset=$user_offset+$user_length;
$lm="";
$lm_length=strlen($lm);
$lm_offset=$workstation_offset+$workstation_length;
$ntlm=$ntlm_response;
$ntlm_length=strlen($ntlm);
$ntlm_offset=$lm_offset+$lm_length;
$session="";
$session_length=strlen($session);
$session_offset=$ntlm_offset+$ntlm_length;
return(
"NTLMSSP\0".
"\x03\x00\x00\x00".
pack("v",$lm_length).
pack("v",$lm_length).
pack("V",$lm_offset).
pack("v",$ntlm_length).
pack("v",$ntlm_length).
pack("V",$ntlm_offset).
pack("v",$domain_length).
pack("v",$domain_length).
pack("V",$domain_offset).
pack("v",$user_length).
pack("v",$user_length).
pack("V",$user_offset).
pack("v",$workstation_length).
pack("v",$workstation_length).
pack("V",$workstation_offset).
pack("v",$session_length).
pack("v",$session_length).
pack("V",$session_offset).
"\x01\x02\x00\x00".
$domain_unicode.
$user_unicode.
$workstation_unicode.
$lm.
$ntlm
);
}
 
Function Start(&$client, &$message, &$interactions)
{
if($this->state!=SASL_NTLM_STATE_START)
{
$client->error="NTLM authentication state is not at the start";
return(SASL_FAIL);
}
$this->credentials=array(
"user"=>"",
"password"=>"",
"realm"=>"",
"workstation"=>""
);
$defaults=array();
$status=$client->GetCredentials($this->credentials,$defaults,$interactions);
if($status==SASL_CONTINUE)
$this->state=SASL_NTLM_STATE_IDENTIFY_DOMAIN;
Unset($message);
return($status);
}
 
Function Step(&$client, $response, &$message, &$interactions)
{
switch($this->state)
{
case SASL_NTLM_STATE_IDENTIFY_DOMAIN:
$message=$this->TypeMsg1($this->credentials["realm"],$this->credentials["workstation"]);
$this->state=SASL_NTLM_STATE_RESPOND_CHALLENGE;
break;
case SASL_NTLM_STATE_RESPOND_CHALLENGE:
$ntlm_response=$this->NTLMResponse(substr($response,24,8),$this->credentials["password"]);
$message=$this->TypeMsg3($ntlm_response,$this->credentials["user"],$this->credentials["realm"],$this->credentials["workstation"]);
$this->state=SASL_NTLM_STATE_DONE;
break;
case SASL_NTLM_STATE_DONE:
$client->error="NTLM authentication was finished without success";
return(SASL_FAIL);
default:
$client->error="invalid NTLM authentication step state";
return(SASL_FAIL);
}
return(SASL_CONTINUE);
}
};
 
// =============================================================================
 
/*
* plain_sasl_client.php
*
* @(#) $Id: plain_sasl_client.php,v 1.2 2004/11/17 08:00:37 mlemos Exp $
*
*/
 
define("SASL_PLAIN_STATE_START", 0);
define("SASL_PLAIN_STATE_IDENTIFY", 1);
define("SASL_PLAIN_STATE_DONE", 2);
 
define("SASL_PLAIN_DEFAULT_MODE", 0);
define("SASL_PLAIN_EXIM_MODE", 1);
define("SASL_PLAIN_EXIM_DOCUMENTATION_MODE", 2);
 
class plain_sasl_client_class
{
var $credentials=array();
var $state=SASL_PLAIN_STATE_START;
 
Function Initialize(&$client)
{
return(1);
}
 
Function Start(&$client, &$message, &$interactions)
{
if($this->state!=SASL_PLAIN_STATE_START)
{
$client->error="PLAIN authentication state is not at the start";
return(SASL_FAIL);
}
$this->credentials=array(
"user"=>"",
"password"=>"",
"realm"=>"",
"mode"=>""
);
$defaults=array(
"realm"=>"",
"mode"=>""
);
$status=$client->GetCredentials($this->credentials,$defaults,$interactions);
if($status==SASL_CONTINUE)
{
switch($this->credentials["mode"])
{
case SASL_PLAIN_EXIM_MODE:
$message=$this->credentials["user"]."\0".$this->credentials["password"]."\0";
break;
case SASL_PLAIN_EXIM_DOCUMENTATION_MODE:
$message="\0".$this->credentials["user"]."\0".$this->credentials["password"];
break;
default:
$message=$this->credentials["user"]."\0".$this->credentials["user"].(strlen($this->credentials["realm"]) ? "@".$this->credentials["realm"] : "")."\0".$this->credentials["password"];
break;
}
$this->state=SASL_PLAIN_STATE_DONE;
}
else
Unset($message);
return($status);
}
 
Function Step(&$client, $response, &$message, &$interactions)
{
switch($this->state)
{
/*
case SASL_PLAIN_STATE_IDENTIFY:
switch($this->credentials["mode"])
{
case SASL_PLAIN_EXIM_MODE:
$message=$this->credentials["user"]."\0".$this->credentials["password"]."\0";
break;
case SASL_PLAIN_EXIM_DOCUMENTATION_MODE:
$message="\0".$this->credentials["user"]."\0".$this->credentials["password"];
break;
default:
$message=$this->credentials["user"]."\0".$this->credentials["user"].(strlen($this->credentials["realm"]) ? "@".$this->credentials["realm"] : "")."\0".$this->credentials["password"];
break;
}
var_dump($message);
$this->state=SASL_PLAIN_STATE_DONE;
break;
*/
case SASL_PLAIN_STATE_DONE:
$client->error="PLAIN authentication was finished without success";
return(SASL_FAIL);
default:
$client->error="invalid PLAIN authentication step state";
return(SASL_FAIL);
}
return(SASL_CONTINUE);
}
};
 
// =============================================================================
 
/*
* sasl.php
*
* @(#) $Id: sasl.php,v 1.11 2005/10/31 18:43:27 mlemos Exp $
*
*/
 
define("SASL_INTERACT", 2);
define("SASL_CONTINUE", 1);
define("SASL_OK", 0);
define("SASL_FAIL", -1);
define("SASL_NOMECH", -4);
 
class sasl_interact_class
{
var $id;
var $challenge;
var $prompt;
var $default_result;
var $result;
};
 
class sasl_client_class
{
/* Public variables */
 
var $error='';
 
var $mechanism='';
 
var $encode_response=1;
 
/* Private variables */
 
var $driver;
var $drivers=array(
"Digest" => array("digest_sasl_client_class"/*, "digest_sasl_client.php" */),
"CRAM-MD5" => array("cram_md5_sasl_client_class"/*, "cram_md5_sasl_client.php" */),
"LOGIN" => array("login_sasl_client_class"/*, "login_sasl_client.php" */),
"NTLM" => array("ntlm_sasl_client_class"/*, "ntlm_sasl_client.php" */),
"PLAIN" => array("plain_sasl_client_class"/*, "plain_sasl_client.php" */),
"Basic" => array("basic_sasl_client_class"/*, "basic_sasl_client.php" */)
);
var $credentials=array();
 
/* Public functions */
 
Function SetCredential($key,$value)
{
$this->credentials[$key]=$value;
}
 
Function GetCredentials(&$credentials,$defaults,&$interactions)
{
Reset($credentials);
$end=(GetType($key=Key($credentials))!="string");
for(;!$end;)
{
if(!IsSet($this->credentials[$key]))
{
if(IsSet($defaults[$key]))
$credentials[$key]=$defaults[$key];
else
{
$this->error="the requested credential ".$key." is not defined";
return(SASL_NOMECH);
}
}
else
$credentials[$key]=$this->credentials[$key];
Next($credentials);
$end=(GetType($key=Key($credentials))!="string");
}
return(SASL_CONTINUE);
}
 
Function Start($mechanisms, &$message, &$interactions)
{
if(strlen($this->error))
return(SASL_FAIL);
if(IsSet($this->driver))
return($this->driver->Start($this,$message,$interactions));
$no_mechanism_error="";
for($m=0;$m<count($mechanisms);$m++)
{
$mechanism=$mechanisms[$m];
if(IsSet($this->drivers[$mechanism]))
{
/*
* if(!class_exists($this->drivers[$mechanism][0]))
* require(dirname(__FILE__)."/".$this->drivers[$mechanism][1]);
*/
$this->driver=new $this->drivers[$mechanism][0];
if($this->driver->Initialize($this))
{
$this->encode_response=1;
$status=$this->driver->Start($this,$message,$interactions);
switch($status)
{
case SASL_NOMECH:
Unset($this->driver);
if(strlen($no_mechanism_error)==0)
$no_mechanism_error=$this->error;
$this->error="";
break;
case SASL_CONTINUE:
$this->mechanism=$mechanism;
return($status);
default:
Unset($this->driver);
$this->error="";
return($status);
}
}
else
{
Unset($this->driver);
if(strlen($no_mechanism_error)==0)
$no_mechanism_error=$this->error;
$this->error="";
}
}
}
$this->error=(strlen($no_mechanism_error) ? $no_mechanism_error : "it was not requested any of the authentication mechanisms that are supported");
return(SASL_NOMECH);
}
 
Function Step($response, &$message, &$interactions)
{
if(strlen($this->error))
return(SASL_FAIL);
return($this->driver->Step($this,$response,$message,$interactions));
}
 
};
 
// =============================================================================
 
 
/*
* http.php
*
* @(#) $Header: /opt2/ena/metal/http/http.php,v 1.94 2016/05/03 02:07:04 mlemos Exp $
*
*/
 
class http_class {
 
/*public*/ const HTTP_CLIENT_ERROR_UNSPECIFIED_ERROR = -1;
124,8 → 908,9
}
for($character=0;$character<strlen($separator);$character++)
{
$found = null;
if(GetType($position=strpos($string,$separator[$character]))=="integer")
$found=(IsSet($found) ? min($found,$position) : $position);
$found=(!is_null($found) ? min($found,$position) : $position);
}
if(IsSet($found))
{
398,6 → 1183,7
{
$domain=$host_name;
$port = $host_port;
$ip = '';
if(strlen($error = $this->Resolve($domain, $ip, $server_type)))
return($error);
if(strlen($this->socks_host_name))
425,6 → 1211,7
$this->OutputDebug('Connecting to '.$server_type.' server IP '.$ip.' port '.$port.'...');
if($ssl)
$ip="ssl://".$host_name;
$errno = -1;
if(($this->connection=($this->timeout ? @fsockopen($ip, $port, $errno, $error, $this->timeout) : @fsockopen($ip, $port, $errno)))==0)
{
$error_code = self::HTTP_CLIENT_ERROR_CANNOT_CONNECT;
441,6 → 1228,7
case -7:
return($this->SetError("setvbuf() call failed", $error_code));
default:
$php_errormsg = '';
return($this->SetPHPError($errno." could not connect to the host \"".$host_name."\"",$php_errormsg, $error_code));
}
}
1001,9 → 1789,11
if(GetType($length=@filesize($file["FileName"]))!="integer")
{
$error="it was not possible to determine the length of the file ".$file["FileName"];
/*
if(IsSet($php_errormsg)
&& strlen($php_errormsg))
$error.=": ".$php_errormsg;
*/
if(!file_exists($file["FileName"]))
$error="it was not possible to access the file ".$file["FileName"];
return($error);
1051,6 → 1841,7
if(!stream_socket_enable_crypto($this->connection, 1, STREAM_CRYPTO_METHOD_SSLv23_CLIENT))
{
$this->OutputDebug('Failed establishing the cryptography layer with host '.$host);
$php_errormsg = '';
$this->SetPHPError('it was not possible to start a SSL encrypted connection via this proxy', $php_errormsg, self::HTTP_CLIENT_ERROR_COMMUNICATION_FAILURE);
$this->Disconnect();
return($this->error);
1096,6 → 1887,7
$connect = 0;
break;
case "ConnectedToProxy":
$headers = array();
if(strlen($error = $this->ConnectFromProxy($arguments, $headers)))
return($error);
$connect = 1;
1167,6 → 1959,7
$end=(GetType($input=Key($files))!="string");
for(;!$end;)
{
$definition = array();
if(strlen($error=$this->GetFileDefinition($files[$input],$definition)))
return("3 ".$error);
$headers="--".$boundary."\r\nContent-Disposition: form-data; name=\"".$input."\"; filename=\"".$definition["NAME"]."\"\r\nContent-Type: ".$definition["Content-Type"]."\r\n\r\n";
1230,8 → 2023,10
$this->request_body.=$stream[$part]["Data"];
elseif(IsSet($stream[$part]["File"]))
{
if(!($file=@fopen($stream[$part]["File"],"rb")))
if(!($file=@fopen($stream[$part]["File"],"rb"))) {
$php_errormsg = '';
return($this->SetPHPError("could not open upload file ".$stream[$part]["File"], $php_errormsg, self::HTTP_CLIENT_ERROR_CANNOT_ACCESS_LOCAL_FILE));
}
while(!feof($file))
{
if(GetType($block=@fread($file,$this->file_buffer_length))!="string")
1285,6 → 2080,7
}
if($this->use_curl)
{
$m = array();
$version=(GetType($v=curl_version())=="array" ? (IsSet($v["version"]) ? $v["version"] : "0.0.0") : (preg_match("/^libcurl\\/([0-9]+\\.[0-9]+\\.[0-9]+)/",$v,$m) ? $m[1] : "0.0.0"));
$curl_version=100000*intval($this->Tokenize($version,"."))+1000*intval($this->Tokenize("."))+intval($this->Tokenize(""));
$protocol_version=($curl_version<713002 ? "1.0" : $this->protocol_version);
1350,6 → 2146,7
{
if(!($file=@fopen($post_parts[$part]["FILENAME"],"rb")))
{
$php_errormsg = '';
$this->SetPHPError("could not open upload file ".$post_parts[$part]["FILENAME"], $php_errormsg, self::HTTP_CLIENT_ERROR_CANNOT_ACCESS_LOCAL_FILE);
$success=0;
break;
1558,6 → 2355,7
return($this->SetError("could not read request reply: ".$this->error, $this->error_code));
if(strlen($this->response_status)==0)
{
$matches = array();
if(!preg_match($match="/^http\\/[0-9]+\\.[0-9]+[ \t]+([0-9]+)[ \t]*(.*)\$/i",$line,$matches))
return($this->SetError("it was received an unexpected HTTP response status", self::HTTP_CLIENT_ERROR_PROTOCOL_FAILURE));
$this->response_status=$matches[1];
1675,6 → 2473,7
}
if(!strcmp($location[0],"/"))
$location=$this->protocol."://".$this->host_name.($this->host_port ? ":".$this->host_port : "").$location;
$arguments = array();
$error=$this->GetRequestArguments($location,$arguments);
if(strlen($error))
return($this->SetError("could not process redirect url: ".$error, self::HTTP_CLIENT_ERROR_PROTOCOL_FAILURE));
1754,6 → 2553,8
$sasl->SetCredential("session",$this->session);
do
{
$message = null;
$interactions = null;
$status=$sasl->Start($mechanisms,$message,$interactions);
}
while($status==SASL_INTERACT);
1770,6 → 2571,7
{
for(;;)
{
$body = '';
if(strlen($error=$this->ReadReplyBody($body,$this->file_buffer_length)))
return($error);
if(strlen($body)==0)
1972,6 → 2774,7
case "ConnectedToProxy":
return($this->SetError("request was not sent", self::HTTP_CLIENT_ERROR_INVALID_PARAMETERS));
case "RequestSent":
$headers = array();
if(($error=$this->ReadReplyHeaders($headers))!="")
return($error);
break;
2006,6 → 2809,8
$body = '';
for(;;)
{
$body = '';
$block = '';
if(strlen($error = $this->ReadReplyBody($block, $this->file_buffer_length)))
return($error);
if(strlen($block) == 0)
2016,10 → 2821,13
 
Function ReadWholeReplyIntoTemporaryFile(&$file)
{
if(!($file = tmpfile()))
if(!($file = tmpfile())) {
$php_errormsg = '';
return $this->SetPHPError('could not create the temporary file to save the response', $php_errormsg, self::HTTP_CLIENT_ERROR_CANNOT_ACCESS_LOCAL_FILE);
}
for(;;)
{
$block = '';
if(strlen($error = $this->ReadReplyBody($block, $this->file_buffer_length)))
{
fclose($file);
2037,6 → 2845,7
}
if(!@fwrite($file, $block))
{
$php_errormsg = '';
$error = $this->SetPHPError('could not write to the temporary file to save the response', $php_errormsg, self::HTTP_CLIENT_ERROR_CANNOT_ACCESS_LOCAL_FILE);
fclose($file);
return $error;
/trunk/includes/classes/phpsvnclient.class.php
69,7 → 69,7
* Respository Version.
*
* @access private
* @var interger
* @var int
*/
private $_repVersion;
 
106,7 → 106,7
 
/**
* Function for creating directories.
* @param type $path The path to the directory that will be created.
* @param $path (string) The path to the directory that will be created.
*/
private function createDirs($path)
{
122,8 → 122,8
 
/**
* Function for the recursive removal of directories.
* @param type $path The path to the directory to be deleted.
* @return type Returns the status of a function or function rmdir unlink.
* @param $path (string) The path to the directory to be deleted.
* @return (string) Returns the status of a function or function rmdir unlink.
*/
private function removeDirs($path)
{
149,13 → 149,13
 
/**
* Updates a working copy
* @param $from_revision Either a revision number or a text file with the
* @param $from_revision (string) Either a revision number or a text file with the
* contents "Revision ..." (if it is a file,
* the file revision will be updated if everything
* was successful)
* @param $folder SVN remote folder
* @param $outpath Local path of the working copy
* @param $preview Only simulate, do not write to files
* @param $folder (string) SVN remote folder
* @param $outpath (string) Local path of the working copy
* @param $preview (bool) Only simulate, do not write to files
**/
public function updateWorkingCopy($from_revision='version.txt', $folder = '/trunk/', $outPath = '.', $preview = false)
{
178,6 → 178,7
} else {
//Obtain the number of current version number of the local copy.
$cont = file_get_contents($version_file);
$m = array();
if (!preg_match('@Revision (\d+)@', $cont, $m)) {
echo "ERROR: $version_file unknown format\n";
flush();
344,10 → 345,13
$version = $this->actVersion;
}
$url = $this->cleanURL($this->_url . "/!svn/bc/" . $version . "/" . $folder . "/");
$args = array();
$this->initQuery($args, "PROPFIND", $url);
$args['Body'] = self::PHPSVN_NORMAL_REQUEST;
$args['Headers']['Content-Length'] = strlen(self::PHPSVN_NORMAL_REQUEST);
 
$headers = array();
$body = '';
if (!$this->Request($args, $headers, $body))
throw new OIDplusException("Cannot get rawDirectoryDump (Request failed)");
 
548,8 → 552,11
if ($fileInfo["type"] == "directory")
return false;
 
$args = array();
$url = $this->cleanURL($this->_url . "/!svn/bc/" . $version . "/" . $file . "/");
$this->initQuery($args, "GET", $url);
$headers = array();
$body = '';
if (!$this->Request($args, $headers, $body))
throw new OIDplusException("Cannot call getFile (Request failed)");
 
575,11 → 582,14
}
 
$url = $this->cleanURL($this->_url . "/!svn/bc/" . $this->actVersion . "/" . $file . "/");
$args = array();
$this->initQuery($args, "REPORT", $url);
$args['Body'] = sprintf(self::PHPSVN_LOGS_REQUEST, $vini, $vend);
$args['Headers']['Content-Length'] = strlen($args['Body']);
$args['Headers']['Depth'] = 1;
 
$headers = array();
$body = '';
if (!$this->Request($args, $headers, $body))
throw new OIDplusException("Cannot call getLogsForUpdate (Request failed)");
 
723,15 → 733,19
return $this->_repVersion;
 
$this->_repVersion = -1;
$args = array();
$this->initQuery($args, "PROPFIND", $this->cleanURL($this->_url . "/!svn/vcc/default"));
$args['Body'] = self::PHPSVN_VERSION_REQUEST;
$args['Headers']['Content-Length'] = strlen(self::PHPSVN_NORMAL_REQUEST);
$args['Headers']['Depth'] = 0;
 
$tmp = array();
$body = '';
if (!$this->Request($args, $tmp, $body))
throw new OIDplusException("Cannot get repository revision (Request failed)");
 
$this->_repVersion = null;
$m = array();
if (preg_match('@/(\d+)\s*</D:href>@ismU', $body, $m)) {
$this->_repVersion = $m[1];
} else {
/trunk/includes/db_updates/update200.inc.php
17,19 → 17,19
* limitations under the License.
*/
 
// DATABASE UPDATE 200 -> 201
// This script will be included by OIDplusDatabaseConnection.class.php inside function afterConnect().
// Parameters: $this is the OIDplusDatabaseConnection class
// $version is the current version (this script MUST increase the number by 1 when it is done)
/**
* This function will be called by OIDplusDatabaseConnection.class.php at method afterConnect().
* @param OIDplusDatabaseConnection $db is the OIDplusDatabaseConnection class
* @param string $version is the current version (this script MUST increase the number by 1 when it is done)
* @throws OIDplusException
*/
function oidplus_dbupdate_200_201(OIDplusDatabaseConnection $db, string &$version) {
if ($db->transaction_supported()) $db->transaction_begin();
 
if (!isset($version)) throw new OIDplusException(_L('Argument "%1" is missing; was the file included in a wrong way?','version'));
if (!isset($this)) throw new OIDplusException(_L('Argument "%1" is missing; was the file included in a wrong way?','this'));
$db->query("ALTER TABLE ###objects ADD comment varchar(255) NULL");
 
if ($this->transaction_supported()) $this->transaction_begin();
 
$this->query("ALTER TABLE ###objects ADD comment varchar(255) NULL");
 
$version = 201;
$this->query("UPDATE ###config SET value = ? WHERE name = 'database_version'", array($version));
$db->query("UPDATE ###config SET value = ? WHERE name = 'database_version'", array($version));
 
if ($this->transaction_supported()) $this->transaction_commit();
if ($db->transaction_supported()) $db->transaction_commit();
}
/trunk/includes/db_updates/update201.inc.php
17,66 → 17,66
* limitations under the License.
*/
 
// DATABASE UPDATE 201 -> 202
// This script will be included by OIDplusDatabaseConnection.class.php inside function afterConnect().
// Parameters: $this is the OIDplusDatabaseConnection class
// $version is the current version (this script MUST increase the number by 1 when it is done)
/**
* This function will be called by OIDplusDatabaseConnection.class.php at method afterConnect().
* @param OIDplusDatabaseConnection $db is the OIDplusDatabaseConnection class
* @param string $version is the current version (this script MUST increase the number by 1 when it is done)
* @throws OIDplusException
*/
function oidplus_dbupdate_201_202(OIDplusDatabaseConnection $db, string &$version) {
if ($db->transaction_supported()) $db->transaction_begin();
 
if (!isset($version)) throw new OIDplusException(_L('Argument "%1" is missing; was the file included in a wrong way?','version'));
if (!isset($this)) throw new OIDplusException(_L('Argument "%1" is missing; was the file included in a wrong way?','this'));
 
if ($this->transaction_supported()) $this->transaction_begin();
 
// Change bit(1) types to boolean/tinyint(1)
if ($this->getSlang()::id() == 'pgsql') {
$this->query("alter table ###config alter protected drop default");
$this->query("alter table ###config alter protected type boolean using get_bit(protected ,0)::boolean");
$this->query("alter table ###config alter protected set default false");
if ($db->getSlang()::id() == 'pgsql') {
$db->query("alter table ###config alter protected drop default");
$db->query("alter table ###config alter protected type boolean using get_bit(protected ,0)::boolean");
$db->query("alter table ###config alter protected set default false");
 
$this->query("alter table ###config alter visible drop default");
$this->query("alter table ###config alter visible type boolean using get_bit(visible ,0)::boolean");
$this->query("alter table ###config alter visible set default false");
$db->query("alter table ###config alter visible drop default");
$db->query("alter table ###config alter visible type boolean using get_bit(visible ,0)::boolean");
$db->query("alter table ###config alter visible set default false");
 
$this->query("alter table ###asn1id alter standardized drop default");
$this->query("alter table ###asn1id alter standardized type boolean using get_bit(standardized,0)::boolean");
$this->query("alter table ###asn1id alter standardized set default false");
$db->query("alter table ###asn1id alter standardized drop default");
$db->query("alter table ###asn1id alter standardized type boolean using get_bit(standardized,0)::boolean");
$db->query("alter table ###asn1id alter standardized set default false");
 
$this->query("alter table ###asn1id alter well_known drop default");
$this->query("alter table ###asn1id alter well_known type boolean using get_bit(well_known ,0)::boolean");
$this->query("alter table ###asn1id alter well_known set default false");
$db->query("alter table ###asn1id alter well_known drop default");
$db->query("alter table ###asn1id alter well_known type boolean using get_bit(well_known ,0)::boolean");
$db->query("alter table ###asn1id alter well_known set default false");
 
$this->query("alter table ###iri alter longarc drop default");
$this->query("alter table ###iri alter longarc type boolean using get_bit(longarc ,0)::boolean");
$this->query("alter table ###iri alter longarc set default false");
$db->query("alter table ###iri alter longarc drop default");
$db->query("alter table ###iri alter longarc type boolean using get_bit(longarc ,0)::boolean");
$db->query("alter table ###iri alter longarc set default false");
 
$this->query("alter table ###iri alter well_known drop default");
$this->query("alter table ###iri alter well_known type boolean using get_bit(well_known ,0)::boolean");
$this->query("alter table ###iri alter well_known set default false");
$db->query("alter table ###iri alter well_known drop default");
$db->query("alter table ###iri alter well_known type boolean using get_bit(well_known ,0)::boolean");
$db->query("alter table ###iri alter well_known set default false");
 
$this->query("alter table ###objects alter confidential type boolean using get_bit(confidential,0)::boolean");
$db->query("alter table ###objects alter confidential type boolean using get_bit(confidential,0)::boolean");
 
$this->query("alter table ###ra alter privacy drop default");
$this->query("alter table ###ra alter privacy type boolean using get_bit(privacy ,0)::boolean");
$this->query("alter table ###ra alter privacy set default false");
} else if ($this->getSlang()::id() == 'mysql') {
$this->query("alter table ###config modify protected boolean");
$this->query("alter table ###config modify visible boolean");
$this->query("alter table ###asn1id modify standardized boolean");
$this->query("alter table ###asn1id modify well_known boolean");
$this->query("alter table ###iri modify longarc boolean");
$this->query("alter table ###iri modify well_known boolean");
$this->query("alter table ###objects modify confidential boolean");
$this->query("alter table ###ra modify privacy boolean");
$db->query("alter table ###ra alter privacy drop default");
$db->query("alter table ###ra alter privacy type boolean using get_bit(privacy ,0)::boolean");
$db->query("alter table ###ra alter privacy set default false");
} else if ($db->getSlang()::id() == 'mysql') {
$db->query("alter table ###config modify protected boolean");
$db->query("alter table ###config modify visible boolean");
$db->query("alter table ###asn1id modify standardized boolean");
$db->query("alter table ###asn1id modify well_known boolean");
$db->query("alter table ###iri modify longarc boolean");
$db->query("alter table ###iri modify well_known boolean");
$db->query("alter table ###objects modify confidential boolean");
$db->query("alter table ###ra modify privacy boolean");
}
 
// Rename log_user.user to log_user.username, since user is a keyword in PostgreSQL and MSSQL
if ($this->getSlang()::id() == 'pgsql') {
$this->query("alter table ###log_user rename column \"user\" to \"username\"");
} else if ($this->getSlang()::id() == 'mysql') {
$this->query("alter table ###log_user change `user` `username` varchar(255) NOT NULL");
if ($db->getSlang()::id() == 'pgsql') {
$db->query("alter table ###log_user rename column \"user\" to \"username\"");
} else if ($db->getSlang()::id() == 'mysql') {
$db->query("alter table ###log_user change `user` `username` varchar(255) NOT NULL");
}
 
$version = 202;
$this->query("UPDATE ###config SET value = ? WHERE name = 'database_version'", array($version));
$db->query("UPDATE ###config SET value = ? WHERE name = 'database_version'", array($version));
 
if ($this->transaction_supported()) $this->transaction_commit();
if ($db->transaction_supported()) $db->transaction_commit();
}
/trunk/includes/db_updates/update202.inc.php
17,18 → 17,17
* limitations under the License.
*/
 
// DATABASE UPDATE 202 -> 203
// This script will be included by OIDplusDatabaseConnection.class.php inside function afterConnect().
// Parameters: $this is the OIDplusDatabaseConnection class
// $version is the current version (this script MUST increase the number by 1 when it is done)
/**
* This function will be called by OIDplusDatabaseConnection.class.php at method afterConnect().
* @param OIDplusDatabaseConnection $db is the OIDplusDatabaseConnection class
* @param string $version is the current version (this script MUST increase the number by 1 when it is done)
* @throws OIDplusException
*/
function oidplus_dbupdate_202_203(OIDplusDatabaseConnection $db, string &$version) {
if ($db->transaction_supported()) $db->transaction_begin();
 
if (!isset($version)) throw new OIDplusException(_L('Argument "%1" is missing; was the file included in a wrong way?','version'));
if (!isset($this)) throw new OIDplusException(_L('Argument "%1" is missing; was the file included in a wrong way?','this'));
 
if ($this->transaction_supported()) $this->transaction_begin();
 
if ($this->getSlang()::id() == 'mssql') {
$this->query("CREATE FUNCTION [dbo].[getOidArc] (@strList varchar(512), @maxArcLen int, @occurence int)
if ($db->getSlang()::id() == 'mssql') {
$db->query("CREATE FUNCTION [dbo].[getOidArc] (@strList varchar(512), @maxArcLen int, @occurence int)
RETURNS varchar(512) AS
BEGIN
DECLARE @intPos int
68,6 → 67,7
}
 
$version = 203;
$this->query("UPDATE ###config SET value = ? WHERE name = 'database_version'", array($version));
$db->query("UPDATE ###config SET value = ? WHERE name = 'database_version'", array($version));
 
if ($this->transaction_supported()) $this->transaction_commit();
if ($db->transaction_supported()) $db->transaction_commit();
}
/trunk/includes/db_updates/update203.inc.php
17,34 → 17,34
* limitations under the License.
*/
 
// DATABASE UPDATE 203 -> 204
// This script will be included by OIDplusDatabaseConnection.class.php inside function afterConnect().
// Parameters: $this is the OIDplusDatabaseConnection class
// $version is the current version (this script MUST increase the number by 1 when it is done)
/**
* This function will be called by OIDplusDatabaseConnection.class.php at method afterConnect().
* @param OIDplusDatabaseConnection $db is the OIDplusDatabaseConnection class
* @param string $version is the current version (this script MUST increase the number by 1 when it is done)
* @throws OIDplusException
*/
function oidplus_dbupdate_203_204(OIDplusDatabaseConnection $db, string &$version) {
if ($db->transaction_supported()) $db->transaction_begin();
 
if (!isset($version)) throw new OIDplusException(_L('Argument "%1" is missing; was the file included in a wrong way?','version'));
if (!isset($this)) throw new OIDplusException(_L('Argument "%1" is missing; was the file included in a wrong way?','this'));
 
if ($this->transaction_supported()) $this->transaction_begin();
 
if ($this->getSlang()::id() == 'mssql') {
$this->query("ALTER TABLE ###log_object ADD severity [int]");
$this->query("ALTER TABLE ###log_user ADD severity [int]");
if ($db->getSlang()::id() == 'mssql') {
$db->query("ALTER TABLE ###log_object ADD severity [int]");
$db->query("ALTER TABLE ###log_user ADD severity [int]");
}
else if ($this->getSlang()::id() == 'mysql') {
$this->query("ALTER TABLE ###log_object ADD severity int(11)");
$this->query("ALTER TABLE ###log_user ADD severity int(11)");
else if ($db->getSlang()::id() == 'mysql') {
$db->query("ALTER TABLE ###log_object ADD severity int(11)");
$db->query("ALTER TABLE ###log_user ADD severity int(11)");
}
else if ($this->getSlang()::id() == 'pgsql') {
$this->query("ALTER TABLE ###log_object ADD severity integer");
$this->query("ALTER TABLE ###log_user ADD severity integer");
else if ($db->getSlang()::id() == 'pgsql') {
$db->query("ALTER TABLE ###log_object ADD severity integer");
$db->query("ALTER TABLE ###log_user ADD severity integer");
}
else if ($this->getSlang()::id() == 'sqlite') {
$this->query("ALTER TABLE ###log_object ADD severity integer");
$this->query("ALTER TABLE ###log_user ADD severity integer");
else if ($db->getSlang()::id() == 'sqlite') {
$db->query("ALTER TABLE ###log_object ADD severity integer");
$db->query("ALTER TABLE ###log_user ADD severity integer");
}
 
$version = 204;
$this->query("UPDATE ###config SET value = ? WHERE name = 'database_version'", array($version));
$db->query("UPDATE ###config SET value = ? WHERE name = 'database_version'", array($version));
 
if ($this->transaction_supported()) $this->transaction_commit();
if ($db->transaction_supported()) $db->transaction_commit();
}
/trunk/includes/functions.inc.php
29,6 → 29,7
}
 
function trim_br($html) {
$count = 0;
do { $html = preg_replace('@^\s*<\s*br\s*/{0,1}\s*>@isU', '', $html, -1, $count); } while ($count > 0); // left trim
do { $html = preg_replace('@<\s*br\s*/{0,1}\s*>\s*$@isU', '', $html, -1, $count); } while ($count > 0); // right trim
return $html;
39,6 → 40,8
if (empty($privKey)) return false;
if (empty($pubKey)) return false;
$data = 'TEST';
$encrypted = '';
$decrypted = '';
if (!@openssl_public_encrypt($data, $encrypted, $pubKey)) return false;
if (!@openssl_private_decrypt($encrypted, $decrypted, $privKey)) return false;
return $decrypted == $data;
188,3 → 191,34
 
return $res;
}
 
function extractHtmlContents($cont) {
// make sure the program works even if the user provided HTML is not UTF-8
$cont = iconv(mb_detect_encoding($cont, mb_detect_order(), true), 'UTF-8//IGNORE', $cont);
$bom = pack('H*','EFBBBF');
$cont = preg_replace("/^$bom/", '', $cont);
 
$out_js = '';
$m = array();
preg_match_all('@<script[^>]*>(.+)</script>@ismU', $cont, $m);
foreach ($m[1] as $x) {
$out_js = $x . "\n\n";
}
 
$out_css = '';
$m = array();
preg_match_all('@<style[^>]*>(.+)</style>@ismU', $cont, $m);
foreach ($m[1] as $x) {
$out_css = $x . "\n\n";
}
 
$out_html = $cont;
$out_html = preg_replace('@^(.+)<body[^>]*>@isU', '', $out_html);
$out_html = preg_replace('@</body>.+$@isU', '', $out_html);
$out_html = preg_replace('@<title>.+</title>@isU', '', $out_html);
$out_html = preg_replace('@<h1>.+</h1>@isU', '', $out_html, 1);
$out_html = preg_replace('@<script[^>]*>(.+)</script>@ismU', '', $out_html);
$out_html = preg_replace('@<style[^>]*>(.+)</style>@ismU', '', $out_html);
 
return array($out_html, $out_js, $out_css);
}
/trunk/includes/gmp_supplement.inc.php
3,7 → 3,7
/*
* PHP GMP-Supplement implemented using BCMath
* Copyright 2020 Daniel Marschall, ViaThinkSoft
* Version 2020-04-07
* Version 2020-09-12
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
156,7 → 156,7
// Exact division of numbers
function gmp_divexact($n, $d) {
bcscale(0);
return bcdiv($a, $b);
return bcdiv($n, $d);
}
 
// gmp_export ( GMP $gmpnumber [, int $word_size = 1 [, int $options = GMP_MSW_FIRST | GMP_NATIVE_ENDIAN ]] ) : string
214,9 → 214,9
}
 
return [
'g' => $this->normalize($a),
's' => $this->normalize($s),
't' => $this->normalize($t)
'g' => /*$this->normalize*/($a),
's' => /*$this->normalize*/($s),
't' => /*$this->normalize*/($t)
];
}
 
278,13 → 278,13
// Source: https://github.com/CityOfZion/neo-php/blob/master/src/Crypto/NumberTheory.php#L246
 
while (bccomp($a, 0)==-1) {
$a=bcadd($m, $a);
$a=bcadd($b, $a);
}
while (bccomp($m, $a)==-1) {
$a=bcmod($a, $m);
while (bccomp($b, $a)==-1) {
$a=bcmod($a, $b);
}
$c=$a;
$d=$m;
$d=$b;
$uc=1;
$vc=0;
$ud=0;
306,10 → 306,10
if (bccomp($ud, 0)==1) {
$result=$ud;
} else {
$result=bcadd($ud, $m);
$result=bcadd($ud, $b);
}
} else {
throw new ErrorException("ERROR: $a and $m are NOT relatively prime.");
throw new ErrorException("ERROR: $a and $b are NOT relatively prime.");
}
return $result;
}
321,8 → 321,8
 
// Source: https://github.com/CityOfZion/neo-php/blob/master/src/Crypto/NumberTheory.php#L136
 
if ($n>=3 && $n%2==1) {
$a = bcmod($a, $n);
if ($p>=3 && $p%2==1) {
$a = bcmod($a, $p);
if ($a == 0) return 0;
if ($a == 1) return 1;
$a1 = $a;
331,10 → 331,10
$a1 = bcdiv($a1, 2);
$e = bcadd($e, 1);
}
$s = (bcmod($e, 2)==0 || bcmod($n, 8)==1 || bcmod($n, 8)==7) ? 1 : -1;
$s = (bcmod($e, 2)==0 || bcmod($p, 8)==1 || bcmod($p, 8)==7) ? 1 : -1;
if ($a1 == 1) return $s;
if (bcmod($n, 4)==3 && bcmod($a1, 4)==3) $s = -$s;
return bcmul($s, gmp_jacobi(bcmod($n, $a1), $a1));
if (bcmod($p, 4)==3 && bcmod($a1, 4)==3) $s = -$s;
return bcmul($s, gmp_jacobi(bcmod($p, $a1), $a1));
} else {
return false;
}
398,10 → 398,10
 
// Source: https://github.com/CityOfZion/neo-php/blob/master/src/Crypto/NumberTheory.php#L692
 
if (bccomp($starting_value, 2) == -1) {
if (bccomp($a, 2) == -1) {
return 2;
}
$result = gmp_or(bcadd($starting_value, 1), 1);
$result = gmp_or(bcadd($a, 1), 1);
while (!gmp_prob_prime($result)) {
$result = bcadd($result, 2);
}
478,28 → 478,28
 
$t = 40;
$k = 0;
$m = bcsub($n, 1);
$m = bcsub($reps, 1);
while (bcmod($m, 2) == 0) {
$k = bcadd($k, 1);
$m = bcdiv($m, 2);
}
for ($i=0; $i<$t; $i++) {
$a = bcrand(1, bcsub($n, 1));
$a = bcrand(1, bcsub($reps, 1));
if ($m < 0) {
return new ErrorException("Negative exponents ($m) not allowed");
} else {
$b0 = bcpowmod($a, $m, $n);
$b0 = bcpowmod($a, $m, $reps);
}
if ($b0!=1 && $b0!=bcsub($n, 1)) {
if ($b0!=1 && $b0!=bcsub($reps, 1)) {
$j = 1;
while ($j<=$k-1 && $b0!=bcsub($n, 1)) {
$b0 = bcpowmod($b0, 2, $n);
while ($j<=$k-1 && $b0!=bcsub($reps, 1)) {
$b0 = bcpowmod($b0, 2, $reps);
if ($b0 == 1) {
return false;
}
$j++;
}
if ($b0 != bcsub($n, 1)) {
if ($b0 != bcsub($reps, 1)) {
return false;
}
}
754,19 → 754,18
// Newly added: gmp_not / bcnot
function bcnot($a) {
bcscale(0);
// Convert $a and $b to a binary string
// Convert $a to a binary string
$ab = bc_dec2bin($a);
$bb = bc_dec2bin($b);
$length = max(strlen($ab), strlen($bb));
$ab = str_pad($ab, $length, "0", STR_PAD_LEFT);
$bb = str_pad($bb, $length, "0", STR_PAD_LEFT);
$length = strlen($ab);
 
// Do the bitwise binary operation
$cb = '';
for ($i=0; $i<$length; $i++) {
if ($ab[$i] == 1) return false;
$cb .= ($ab[$i] == 1) ? '0' : '1';
}
 
return true;
// Convert back to a decimal number
return bc_bin2dec($cb);
}
function gmp_not($a) {
bcscale(0);
/trunk/includes/oid_utils.inc.php
3,7 → 3,7
/*
* OID-Utilities for PHP
* Copyright 2011-2020 Daniel Marschall, ViaThinkSoft
* Version 2020-06-11
* Version 2020-09-12
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
42,6 → 42,7
function oid_valid_dotnotation($oid, $allow_leading_zeroes=true, $allow_leading_dot=false, $min_len=0) {
$regex = oid_validation_regex($allow_leading_zeroes, $allow_leading_dot, $min_len);
 
$m = array();
return preg_match($regex, $oid, $m) ? true : false;
}
 
154,6 → 155,7
function parse_oids($text, $min_len=2, $allow_leading_zeroes=false, $leading_dot_policy=OID_DOT_OPTIONAL, $requires_whitespace_delimiters=true) {
$regex = oid_detection_regex($min_len, $allow_leading_zeroes, $leading_dot_policy, $requires_whitespace_delimiters);
 
$matches = array();
preg_match_all($regex, $text, $matches);
return $matches[1];
}
271,7 → 273,6
* @param $output_with_leading_dot (bool)<br />
* true: The array will be normalized to OIDs with a leading dot.
* false: The array will be normalized to OIDs without a leading dot. (default)
* @return Nothing
**/
function oidSort(&$ary, $output_with_leading_dot=false) {
$out = array();
577,6 → 578,7
function iri_arc_valid($arc, $allow_numeric=true) {
if ($arc == '') return false;
 
$m = array();
if ($allow_numeric && preg_match('@^(\\d+)$@', $arc, $m)) return true; # numeric arc
 
// Question: Should we strip RTL/LTR characters?
809,6 → 811,7
$standardized = asn1_get_standardized_array();
 
// Clean up
$count = -1;
$asn = preg_replace('@^\\{(.+)\\}$@', '\\1', $asn, -1, $count);
if ($count == 0) return false; // { and } are required. The asn.1 path will NOT be trimmed by this function
 
832,6 → 835,7
// -> invalid stuff will be recognized, e.g. a "(1)" without an identifier in front of it
$ary = explode('.', $asn);
foreach ($ary as $a) {
$m = array();
if (!preg_match('@^(0|([1-9]\\d*))$@', $a, $m)) return false;
}
 
/trunk/includes/uuid_utils.inc.php
3,7 → 3,7
/*
* UUID utils for PHP
* Copyright 2011-2020 Daniel Marschall, ViaThinkSoft
* Version 2020-02-28
* Version 2020-09-12
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
365,6 → 365,7
 
# On Debian: aptitude install uuid-runtime
$out = array();
$ec = -1;
exec('uuidgen -t', $out, $ec);
if ($ec == 0) return $out[0];
 
427,6 → 428,7
 
# On Debian: aptitude install uuid-runtime
$out = array();
$ec = -1;
exec('uuidgen -r', $out, $ec);
if ($ec == 0) return $out[0];
 
/trunk/plugins/adminPages/050_oobe/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginAdmin</type>
 
/trunk/plugins/adminPages/100_wellknown_oids/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginAdmin</type>
 
/trunk/plugins/adminPages/110_system_config/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginAdmin</type>
 
/trunk/plugins/adminPages/111_systeminfo/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginAdmin</type>
 
/trunk/plugins/adminPages/120_registration/OIDplusPageAdminRegistration.class.php
42,10 → 42,11
$info = file_get_contents(__DIR__ . '/info.html');
}
 
// make sure the program works even if the user provided HTML is not UTF-8
$info = iconv(mb_detect_encoding($info, mb_detect_order(), true), 'UTF-8//IGNORE', $info);
$bom = pack('H*','EFBBBF');
$info = preg_replace("/^$bom/", '', $info);
list($html, $js, $css) = extractHtmlContents($info);
$info = '';
if (!empty($js)) $info .= "<script>\n$js\n</script>";
if (!empty($css)) $info .= "<style>\n$css\n</style>";
$info .= $html;
 
$out['text'] = $info;
 
/trunk/plugins/adminPages/120_registration/info$dede.html
1,5 → 1,15
<p>Die Registrierung Ihres OIDplus-Systems hat viele Vorteile:</p><!-- please keep in sync with GDPR document -->
<!DOCTYPE html>
 
<html lang="de">
 
<head>
<title>Info zur Registrierung</title>
</head>
 
<body>
 
<p>Die Registrierung Ihres OIDplus-Systems hat viele Vorteile:</p><!-- please keep in sync with GDPR document -->
 
<ul>
<li>Der öffentliche Schlüssel Ihrer OIDplus-Installation wird im ViaThinkSoft OIDplus-Verzeichnis veröffentlicht, sodass Benutzer die Integrität Ihrer Daten (z.B. Daten aus einer OID-WHOIS-Abfrage) bestätigen können.</li>
<li>Da die 31-bit System-ID theoretisch mit anderen Systemen theoretisch kollidieren könnte, kann ViaThinkSoft durch die Registrierung sicherstellen, dass die System-ID nur von Ihrem System verwendet wird. (Andere Systeme, die dieselbe System-ID melden, werden aufgefordert, ihre ID zu verwerfen und eine neue zu generieren).</li>
9,3 → 19,7
<li>Ihre OIDplus-Version wird an ViaThinkSoft übermittelt. Im Falle eines schweren Programmfehlers oder Sicherheitslücke werden Sie von einem ViaThinkSoft Mitarbeiter per E-Mail informiert.</li>
<li>Das ViaThinkSoft OIDplus-Verzeichnis wird automatisch ein X.509-Sicherheitszertifikat für Ihr System erzeugen (dieses ist jedoch nicht als SSL-Zertifikat verwendbar).</li>
</ul>
 
</body>
 
</html>
/trunk/plugins/adminPages/120_registration/info.html
1,3 → 1,13
<!DOCTYPE html>
 
<html lang="en">
 
<head>
<title>Information about the registration</title>
</head>
 
<body>
 
<p>The registration of your OIDplus instance has various advantages:</p><!-- please keep in sync with GDPR document -->
 
<ul>
9,3 → 19,7
<li>Your OIDplus version will be reported to ViaThinkSoft. If a severe bug or security vulnerability is affecting your OIDplus instance, ViaThinkSoft can warn you via email.</li>
<li>The directory service will automatically create an X.509 security certificate for you (NOT an SSL certificate!) which can be used for various verifications.</li>
</ul>
 
</body>
 
</html>
/trunk/plugins/adminPages/120_registration/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginAdmin</type>
 
/trunk/plugins/adminPages/125_forgot_password_admin/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginAdmin</type>
 
/trunk/plugins/adminPages/130_create_ra/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginAdmin</type>
 
/trunk/plugins/adminPages/400_oidinfo_export/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginAdmin</type>
 
/trunk/plugins/adminPages/400_oidinfo_export/oidinfo_api.inc.php
2,8 → 2,8
 
/*
* OID-Info.com API for PHP
* Copyright 2019 Daniel Marschall, ViaThinkSoft
* Version 2019-11-06
* Copyright 2019-2020 Daniel Marschall, ViaThinkSoft
* Version 2020-09-12
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
313,6 → 313,7
// TODO: what do we do if there are more XHTML errors (e.g. additional open tags) which would make the XML invalid?
 
// "Trim" <br/>
$count = 0;
do { $desc = preg_replace('@^\s*<\s*br\s*/{0,1}\s*>@isU', '', $desc, -1, $count); } while ($count > 0); // left trim
do { $desc = preg_replace('@<\s*br\s*/{0,1}\s*>\s*$@isU', '', $desc, -1, $count); } while ($count > 0); // right trim
 
543,6 → 544,7
 
// Request by O.D. 26 August 2019
$elements['description'] = trim($elements['description']);
$m = array();
if (preg_match('@^[a-z]@', $elements['description'], $m)) {
$ending_dot_policy = self::OIDINFO_CORRECT_DESC_DISALLOW_ENDING_DOT; // for description
if (($ending_dot_policy != self::OIDINFO_CORRECT_DESC_ENFORCE_ENDING_DOT) && (strpos($elements['description'], ' ') === false)) { // <-- added by DM
923,7 → 925,7
}
 
$one_null = false;
foreach ($this->simplePingProviders as $addr => $obj) {
foreach ($this->simplePingProviders as /*$addr =>*/ $obj) {
$res = $obj->queryOID($oid);
if ($res) return true;
if ($res !== false) $one_null = true;
969,7 → 971,7
}
$filemtime = filemtime($this->csvfile);
if ($filemtime != $this->filemtime) {
$this->lines = file($csvfile);
$this->lines = file($this->csvfile);
$this->filemtime = $filemtime;
}
}
/trunk/plugins/adminPages/500_list_ras/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginAdmin</type>
 
/trunk/plugins/adminPages/600_log/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginAdmin</type>
 
/trunk/plugins/adminPages/700_colors/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginAdmin</type>
 
/trunk/plugins/adminPages/800_plugins/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginAdmin</type>
 
/trunk/plugins/adminPages/900_software_update/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginAdmin</type>
 
/trunk/plugins/adminPages/910_automated_ajax_calls/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginAdmin</type>
 
/trunk/plugins/auth/A1_phpgeneric_salted_hex/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusAuthPlugin</type>
 
/trunk/plugins/auth/A2_sha3_salted_base64/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusAuthPlugin</type>
 
/trunk/plugins/database/mysqli/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusDatabasePlugin</type>
 
/trunk/plugins/database/odbc/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusDatabasePlugin</type>
 
/trunk/plugins/database/pdo/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusDatabasePlugin</type>
 
/trunk/plugins/database/pgsql/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusDatabasePlugin</type>
 
/trunk/plugins/database/sqlite3/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusDatabasePlugin</type>
 
/trunk/plugins/language/dede/manifest.xml
1,5 → 1,7
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.3 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin_language.xsd">
 
<type>OIDplusLanguagePlugin</type>
 
/trunk/plugins/language/dede/messages.xml
1,5 → 1,9
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<translation>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<translation
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.4"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.4 https://oidplus.viathinksoft.com/oidplus/plugins/messages.xsd">
 
<message>
<source><![CDATA[
"%1" is missing in %2
/trunk/plugins/language/enus/manifest.xml
1,5 → 1,7
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.3 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin_language.xsd">
 
<type>OIDplusLanguagePlugin</type>
 
/trunk/plugins/language/enus/messages.xml
1,4 → 1,8
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<translation>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<translation
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.4"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.4 https://oidplus.viathinksoft.com/oidplus/plugins/messages.xsd">
 
<!-- Nothing in here, because English (USA) is the main language of OIDplus -->
</translation>
/trunk/plugins/logger/000_database/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusLoggerPlugin</type>
 
/trunk/plugins/logger/100_linux_syslog/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusLoggerPlugin</type>
 
/trunk/plugins/logger/200_windows_eventlog/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusLoggerPlugin</type>
 
/trunk/plugins/logger/300_userdata_logfile/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusLoggerPlugin</type>
 
/trunk/plugins/manifest_plugin.xsd
0,0 → 1,57
<?xml version="1.0"?>
<xs:schema targetNamespace="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="manifest">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="type" minOccurs="1"
maxOccurs="1" />
 
<xs:element name="info" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="name" minOccurs="1"
maxOccurs="1" />
<xs:element type="xs:string" name="author"
minOccurs="1" maxOccurs="1" />
<xs:element type="xs:string" name="version"
minOccurs="1" maxOccurs="1" />
<xs:element type="xs:string" name="descriptionHTML"
minOccurs="1" maxOccurs="1" />
<xs:element type="xs:string" name="oid" minOccurs="1"
maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
 
<xs:element name="php" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="mainclass"
minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
 
<xs:element name="css" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="file" minOccurs="0"
maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
 
<xs:element name="js" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="file" minOccurs="0"
maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
/trunk/plugins/manifest_plugin_language.xsd
0,0 → 1,52
<?xml version="1.0"?>
<xs:schema targetNamespace="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.3"
attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="manifest">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="type" minOccurs="1"
maxOccurs="1" />
 
<xs:element name="info" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="name" minOccurs="1"
maxOccurs="1" />
<xs:element type="xs:string" name="author"
minOccurs="1" maxOccurs="1" />
<xs:element type="xs:string" name="version"
minOccurs="1" maxOccurs="1" />
<xs:element type="xs:string" name="descriptionHTML"
minOccurs="1" maxOccurs="1" />
<xs:element type="xs:string" name="oid" minOccurs="1"
maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
 
<xs:element name="php" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="mainclass"
minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
 
<xs:element name="language" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="code" minOccurs="1"
maxOccurs="1" />
<xs:element type="xs:string" name="flag" minOccurs="1"
maxOccurs="1" />
<xs:element type="xs:string" name="messages"
minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
/trunk/plugins/messages.xsd
0,0 → 1,22
<?xml version="1.0"?>
<xs:schema targetNamespace="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.4"
attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="translation">
<xs:complexType>
<xs:sequence>
<xs:element name="message" minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="source"
minOccurs="1" maxOccurs="1" />
<xs:element type="xs:string" name="target"
minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
/trunk/plugins/objectTypes/doi/OIDplusDoi.class.php
139,6 → 139,7
# ---
 
public static function validBaseDoi($doi) {
$m = array();
return preg_match('@^10\.\d{4}$@', $doi, $m);
}
 
/trunk/plugins/objectTypes/doi/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusObjectTypePlugin</type>
 
/trunk/plugins/objectTypes/gs1/OIDplusGs1.class.php
56,6 → 56,7
}
 
public function addString($str) {
$m = array();
if (!preg_match('@^\\d+$@', $str, $m)) {
throw new OIDplusException(_L('GS1 value needs to be numeric'));
}
/trunk/plugins/objectTypes/gs1/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusObjectTypePlugin</type>
 
/trunk/plugins/objectTypes/guid/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusObjectTypePlugin</type>
 
/trunk/plugins/objectTypes/ipv4/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusObjectTypePlugin</type>
 
/trunk/plugins/objectTypes/ipv6/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusObjectTypePlugin</type>
 
/trunk/plugins/objectTypes/java/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusObjectTypePlugin</type>
 
/trunk/plugins/objectTypes/oid/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusObjectTypePlugin</type>
 
/trunk/plugins/objectTypes/other/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusObjectTypePlugin</type>
 
/trunk/plugins/publicPages/000_objects/OIDplusPagePublicObjects.class.php
340,22 → 340,25
$out['icon'] = OIDplus::webpath(__DIR__).'system_big.png';
 
if (file_exists(OIDplus::basePath() . '/userdata/welcome/welcome$'.OIDplus::getCurrentLang().'.html')) {
$out['text'] = file_get_contents(OIDplus::basePath() . '/userdata/welcome/welcome$'.OIDplus::getCurrentLang().'.html');
$cont = file_get_contents(OIDplus::basePath() . '/userdata/welcome/welcome$'.OIDplus::getCurrentLang().'.html');
} else if (file_exists(OIDplus::basePath() . '/userdata/welcome/welcome.html')) {
$out['text'] = file_get_contents(OIDplus::basePath() . '/userdata/welcome/welcome.html');
$cont = file_get_contents(OIDplus::basePath() . '/userdata/welcome/welcome.html');
} else if (file_exists(__DIR__ . '/welcome$'.OIDplus::getCurrentLang().'.html')) {
$out['text'] = file_get_contents(__DIR__ . '/welcome$'.OIDplus::getCurrentLang().'.html');
$cont = file_get_contents(__DIR__ . '/welcome$'.OIDplus::getCurrentLang().'.html');
} else if (file_exists(__DIR__ . '/welcome.html')) {
$out['text'] = file_get_contents(__DIR__ . '/welcome.html');
$cont = file_get_contents(__DIR__ . '/welcome.html');
} else {
$out['text'] = '';
$cont = '';
}
 
// make sure the program works even if the user provided HTML is not UTF-8
$out['text'] = iconv(mb_detect_encoding($out['text'], mb_detect_order(), true), 'UTF-8//IGNORE', $out['text']);
$bom = pack('H*','EFBBBF');
$out['text'] = preg_replace("/^$bom/", '', $out['text']);
list($html, $js, $css) = extractHtmlContents($cont);
$cont = '';
if (!empty($js)) $cont .= "<script>\n$js\n</script>";
if (!empty($css)) $cont .= "<style>\n$css\n</style>";
$cont .= $html;
 
$out['text'] = $cont;
 
if (strpos($out['text'], '%%OBJECT_TYPE_LIST%%') !== false) {
$tmp = '<ul>';
foreach (OIDplus::getEnabledObjectTypes() as $ot) {
/trunk/plugins/publicPages/000_objects/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginPublic</type>
 
/trunk/plugins/publicPages/000_objects/welcome$dede.html
1,4 → 1,13

<!DOCTYPE html>
 
<html lang="de">
 
<head>
<title>Willkommen bei OIDplus 2.0</title>
</head>
 
<body>
 
<!-- STOP !!! Do NOT edit this file since your changes might get overwritten by a future update of OIDplus! -->
<!-- If you want to write your own welcome page, please create a file named "userdata/welcome/welcome_dede.html" -->
 
12,3 → 21,7
%%OBJECT_TYPE_LIST%%
 
<p><a href="?goto=oidplus:resources$OIDplus/acknowledgements.html">Weitere Informationen zu OIDplus erhalten Sie hier</a></p>
 
</body>
 
</html>
/trunk/plugins/publicPages/000_objects/welcome.html
1,4 → 1,13
<!DOCTYPE html>
 
<html lang="en">
 
<head>
<title>Welcome to OIDplus 2.0</title>
</head>
 
<body>
 
<!-- STOP !!! Do NOT edit this file since your changes might get overwritten by a future update of OIDplus! -->
<!-- If you want to write your own welcome page, please create a file named "userdata/welcome/welcome.html" -->
 
12,3 → 21,7
%%OBJECT_TYPE_LIST%%
 
<p><a href="?goto=oidplus:resources$OIDplus/acknowledgements.html">More information about OIDplus can be found here</a></p>
 
</body>
 
</html>
/trunk/plugins/publicPages/001_ra_base/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginPublic</type>
 
/trunk/plugins/publicPages/090_login/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginPublic</type>
 
/trunk/plugins/publicPages/091_forgot_password/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginPublic</type>
 
/trunk/plugins/publicPages/092_forgot_password_admin/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginPublic</type>
 
/trunk/plugins/publicPages/093_rainfo/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginPublic</type>
 
/trunk/plugins/publicPages/095_attachments/OIDplusPagePublicAttachments.class.php
82,8 → 82,8
if (!file_exists($uploadfile)) throw new OIDplusException(_L('File does not exist'));
@unlink($uploadfile);
if (file_exists($uploadfile)) {
OIDplus::logger()->log("[ERR]OID($id)+[ERR]A!", "Attachment file '".basename($uploadfile)."' could not be deleted from object '$oid' (problem with permissions?)");
$msg = _L('Attachment file "%1" could not be deleted from object "%2" (problem with permissions?)',basename($uploadfile),$oid);
OIDplus::logger()->log("[ERR]OID($id)+[ERR]A!", "Attachment file '".basename($uploadfile)."' could not be deleted from object '$id' (problem with permissions?)");
$msg = _L('Attachment file "%1" could not be deleted from object "%2" (problem with permissions?)',basename($uploadfile),$id);
if (OIDplus::authUtils()::isAdminLoggedIn()) {
throw new OIDplusException($msg);
} else {
/trunk/plugins/publicPages/095_attachments/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginPublic</type>
 
/trunk/plugins/publicPages/100_whois/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginPublic</type>
 
/trunk/plugins/publicPages/100_whois/whois/webwhois.php
26,11 → 26,11
// Step 0: Get request parameter
 
if (php_sapi_name() == 'cli') {
if ($argc != 2) {
echo _L('Syntax').': '.$argv[0].' <query>'."\n";
if ($_SERVER['argc'] != 2) {
echo _L('Syntax').': '.$_SERVER['argv'][0].' <query>'."\n";
exit(2);
}
$query = $argv[1];
$query = $_SERVER['argv'][1];
} else {
if (!isset($_REQUEST['query'])) {
http_response_code(400);
354,8 → 354,8
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
echo '<root xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.1.1"';
echo ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"';
//echo ' xsi:schemaLocation="https://oidplus.viathinksoft.com/oidplus/plugins/publicPages/100_whois/whois/xml_schema.xsd">';
echo ' xsi:schemaLocation="'.OIDplus::getSystemUrl().'plugins/publicPages/100_whois/whois/xml_schema.xsd">';
//echo ' xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.1.1 https://oidplus.viathinksoft.com/oidplus/plugins/publicPages/100_whois/whois/xml_schema.xsd">';
echo ' xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.1.1 '.OIDplus::getSystemUrl().'plugins/publicPages/100_whois/whois/xml_schema.xsd">';
echo $xml;
echo '</root>';
}
/trunk/plugins/publicPages/200_viathinksoft_freeoid/OIDplusPagePublicFreeOID.class.php
202,10 → 202,11
$tos = file_get_contents(__DIR__ . '/tos.html');
}
 
// make sure the program works even if the user provided HTML is not UTF-8
$tos = iconv(mb_detect_encoding($tos, mb_detect_order(), true), 'UTF-8//IGNORE', $tos);
$bom = pack('H*','EFBBBF');
$tos = preg_replace("/^$bom/", '', $tos);
list($html, $js, $css) = extractHtmlContents($tos);
$tos = '';
if (!empty($js)) $tos .= "<script>\n$js\n</script>";
if (!empty($css)) $tos .= "<style>\n$css\n</style>";
$tos .= $html;
 
$tos = str_replace('{{ADMIN_EMAIL}}', OIDplus::config()->getValue('admin_email'), $tos);
if ($obj) {
/trunk/plugins/publicPages/200_viathinksoft_freeoid/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginPublic</type>
 
/trunk/plugins/publicPages/200_viathinksoft_freeoid/tos$dede.html
1,5 → 1,15
<h3>Nutzungsbedingungen</h3>
<!DOCTYPE html>
 
<html lang="de">
 
<head>
<title>Nutzungsbedingungen</title>
</head>
 
<body>
 
<h3>Nutzungsbedingungen</h3>
 
<ul>
<li>Dieser Dienst soll hauptsächlich <b>Privatpersonen, kleinen Arbeitsgruppen und Softwareentwicklern von Freeware, Shareware oder Open-Source-Software</b> die Möglichkeit geben, eine kostenlose Objektkennung (OID) mit minimalem bürokratischem Aufwand zu erhalten.</li>
<li>Sie müssen lediglich eine gültige E-Mail-Adresse eingeben, an die ein Aktivierungslink gesendet wird. Um die OID
40,7 → 50,11
Passwort nicht an andere Personen weiter.</strong></li>
<li>Sie können keine bevorzugte Nummer für Ihre OID auswählen. Ihnen wird
eine Nummer fortlaufend zugewiesen.</li>
<li>Diese automatisierte Registrierungsstelle weist keine alphanumerischen Kennungen oder IRI-Namen (Internationalized Resource Identifier) ​​zu, da dieses System vollständig automatisiert ist und nur die E-Mail-Adresse überprüft wird.</li>
<li>Diese automatisierte Registrierungsstelle weist keine alphanumerischen Kennungen oder IRI-Namen (Internationalized Resource Identifier) ??zu, da dieses System vollständig automatisiert ist und nur die E-Mail-Adresse überprüft wird.</li>
<li>Ihre neue OID wird folgender OID untergeordnet: <code>{{ROOT_OID}}</code> mit ASN.1-Notation <code>{ {{ROOT_OID_ASN1}} }</code> und OID-IRI-Notation: <code>{{ROOT_OID_IRI}}</code></li>
<li>Wenn Sie Fragen haben oder auf Fehler oder Probleme stoßen, wenden Sie sich bitte an <a href="{{ADMIN_EMAIL}}">{{ADMIN_EMAIL}}</a> (auf Englisch oder Deutsch).</li>
</ul>
 
</body>
 
</html>
/trunk/plugins/publicPages/200_viathinksoft_freeoid/tos.html
1,3 → 1,13
<!DOCTYPE html>
 
<html lang="en">
 
<head>
<title>Terms of Service</title>
</head>
 
<body>
 
<h3>Terms of Service</h3>
 
<ul>
29,3 → 39,7
<li>Your new OID will be registered in arc <code>{{ROOT_OID}}</code> which has the ASN.1 notation <code>{ {{ROOT_OID_ASN1}} }</code> and the OID-IRI notation: <code>{{ROOT_OID_IRI}}</code></li>
<li>If you have any questions or if you encounter bugs or problems, please contact <a href="{{ADMIN_EMAIL}}">{{ADMIN_EMAIL}}</a> (in English or German).</li>
</ul>
 
</body>
 
</html>
/trunk/plugins/publicPages/300_search/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginPublic</type>
 
/trunk/plugins/publicPages/500_resources/OIDplusPagePublicResources.class.php
45,16 → 45,12
 
$cont = file_get_contents($file);
 
// make sure the program works even if the user provided HTML is not UTF-8
$cont = iconv(mb_detect_encoding($cont, mb_detect_order(), true), 'UTF-8//IGNORE', $cont);
$bom = pack('H*','EFBBBF');
$cont = preg_replace("/^$bom/", '', $cont);
list($html, $js, $css) = extractHtmlContents($cont);
$cont = '';
if (!empty($js)) $cont .= "<script>\n$js\n</script>";
if (!empty($css)) $cont .= "<style>\n$css\n</style>";
$cont .= $html;
 
$cont = preg_replace('@^(.+)<body[^>]*>@isU', '', $cont);
$cont = preg_replace('@</body>.+$@isU', '', $cont);
$cont = preg_replace('@<title>.+</title>@isU', '', $cont);
$cont = preg_replace('@<h1>.+</h1>@isU', '', $cont, 1);
 
return $cont;
}
 
70,6 → 66,7
$bom = pack('H*','EFBBBF');
$cont = preg_replace("/^$bom/", '', $cont);
 
$m = array();
if (preg_match('@<title>(.+)</title>@ismU', $cont, $m)) return $m[1];
if (preg_match('@<h1>(.+)</h1>@ismU', $cont, $m)) return $m[1];
if (preg_match('@<h2>(.+)</h2>@ismU', $cont, $m)) return $m[1];
/trunk/plugins/publicPages/500_resources/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginPublic</type>
 
/trunk/plugins/publicPages/900_contact_admin/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginPublic</type>
 
/trunk/plugins/raPages/092_invite/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginRa</type>
 
/trunk/plugins/raPages/099_object_log/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginRa</type>
 
/trunk/plugins/raPages/100_edit_contact_data/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginRa</type>
 
/trunk/plugins/raPages/101_change_password/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginRa</type>
 
/trunk/plugins/raPages/102_change_email/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginRa</type>
 
/trunk/plugins/raPages/200_log/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginRa</type>
 
/trunk/plugins/raPages/910_automated_ajax_calls/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusPagePluginRa</type>
 
/trunk/plugins/sqlSlang/mssql/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusSqlSlangPlugin</type>
 
/trunk/plugins/sqlSlang/mysql/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusSqlSlangPlugin</type>
 
/trunk/plugins/sqlSlang/pgsql/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusSqlSlangPlugin</type>
 
/trunk/plugins/sqlSlang/sqlite/OIDplusSqlSlangPluginSQLite.class.php
73,9 → 73,8
 
public function detect(OIDplusDatabaseConnection $db): bool {
try {
$db->query("select sqlite_version as dbms_version")->fetch_object()->dbms_version;
$vers = "sqlite $vers";
return strpos($vers, 'sqlite') !== false;
$db->query("select sqlite_version as dbms_version");
return true;
} catch (Exception $e) {
return false;
}
/trunk/plugins/sqlSlang/sqlite/manifest.xml
1,5 → 1,8
<?xml version="1.0"?>
<manifest>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<manifest
xmlns="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:oid:1.3.6.1.4.1.37476.2.5.2.5.2 https://oidplus.viathinksoft.com/oidplus/plugins/manifest_plugin.xsd">
 
<type>OIDplusSqlSlangPlugin</type>
 
/trunk/res/OIDplus/acknowledgements$dede.html
1,14 → 1,19
<!DOCTYPE html>
<!DOCTYPE html>
 
<html lang="de">
 
<head>
 <title>Informationen über OIDplus</title>
<title>Informationen über OIDplus</title>
<style>
.underline {
text-decoration: underline;
}
</style>
</head>
 
<body>
 
<h1>Informationen über OIDplus</h1>
<h1>Informationen über OIDplus</h1>
 
<p>OIDplus ist eine OpenSource-Datenbank von <a href="https://www.viathinksoft.com/">ViaThinkSoft</a> , mit der Registrierungsstellen ihre Objekte wie Objektkennungen (OIDs) oder GUIDs (Global Unique Identifiers) und vieles mehr verwalten können.</p>
 
85,7 → 90,7
 
<p>BEDINGUNGEN FÜR DIE NUTZUNG, VERVIELFÄLTIGUNG UND VERBREITUNG</p>
 
<p><strong><a name="definitions">1. Definitionen</a></strong>.</p>
<p><strong><a id="definitions">1. Definitionen</a></strong>.</p>
 
<div style="margin-left: 1em;">
 
111,11 → 116,11
 
</div>
 
<p><strong><a name="copyright">2. Gewährung einer Urheberrechtslizenz</a></strong>. Vorbehaltlich den Bedingungen dieser Lizenz gewährt Ihnen hiermit jeder Beitragsleistende eine unbefristete, weltweite, nicht ausschließliche, kostenlose, gebührenfreie, unwiderrufliche Urheberrechtslizenz zur Vervielfältigung, Anfertigung von Bearbeitungen, zur öffentlichen Ausstellung, Aufführung, Unterlizenzierung und Verbreitung des Werks und derartiger Bearbeitungen in Quell- oder Objektform.</p>
<p><strong><a id="copyright">2. Gewährung einer Urheberrechtslizenz</a></strong>. Vorbehaltlich den Bedingungen dieser Lizenz gewährt Ihnen hiermit jeder Beitragsleistende eine unbefristete, weltweite, nicht ausschließliche, kostenlose, gebührenfreie, unwiderrufliche Urheberrechtslizenz zur Vervielfältigung, Anfertigung von Bearbeitungen, zur öffentlichen Ausstellung, Aufführung, Unterlizenzierung und Verbreitung des Werks und derartiger Bearbeitungen in Quell- oder Objektform.</p>
 
<p><strong><a name="patent">3. Gewährung einer Patentlizenz</a></strong>. Vorbehaltlich den Bedingungen dieser Lizenz gewährt Ihnen hiermit jeder Beitragsleistende eine unbefristete, weltweite, nicht ausschließliche, kostenlose, gebührenfreie, unwiderrufliche (ausgenommen gemäß den Angaben in diesem Abschnitt) Patentlizenz, um das Werk herzustellen, herstellen zu lassen, zu verwenden, es zum Verkauf anzubieten, zu verkaufen, zu importieren und anderweitig zu übertragen, wobei diese Lizenz nur für Patentansprüche von Beitragsleistenden gilt, sofern deren Beiträge allein oder die Kombination ihrer Beiträge mit dem Werk, für das diese Beiträge eingereicht wurden, dieses Patent verletzen. Falls Sie gegen einen Rechtsträger ein gerichtliches Patentverfahren einleiten (einschließlich Gegenforderung oder Gegenklage in einem Rechtsstreit) und dabei vorbringen, dass das Werk oder ein in das Werk eingearbeiteter Beitrag eine direkte Patentverletzung oder einen dazu beitragenden Faktor darstellt, so enden alle Patentlizenzen, die Ihnen im Rahmen dieser Lizenz für dieses Werk gewährt wurden, mit dem Datum, an dem diese Klage eingereicht wird.</p>
<p><strong><a id="patent">3. Gewährung einer Patentlizenz</a></strong>. Vorbehaltlich den Bedingungen dieser Lizenz gewährt Ihnen hiermit jeder Beitragsleistende eine unbefristete, weltweite, nicht ausschließliche, kostenlose, gebührenfreie, unwiderrufliche (ausgenommen gemäß den Angaben in diesem Abschnitt) Patentlizenz, um das Werk herzustellen, herstellen zu lassen, zu verwenden, es zum Verkauf anzubieten, zu verkaufen, zu importieren und anderweitig zu übertragen, wobei diese Lizenz nur für Patentansprüche von Beitragsleistenden gilt, sofern deren Beiträge allein oder die Kombination ihrer Beiträge mit dem Werk, für das diese Beiträge eingereicht wurden, dieses Patent verletzen. Falls Sie gegen einen Rechtsträger ein gerichtliches Patentverfahren einleiten (einschließlich Gegenforderung oder Gegenklage in einem Rechtsstreit) und dabei vorbringen, dass das Werk oder ein in das Werk eingearbeiteter Beitrag eine direkte Patentverletzung oder einen dazu beitragenden Faktor darstellt, so enden alle Patentlizenzen, die Ihnen im Rahmen dieser Lizenz für dieses Werk gewährt wurden, mit dem Datum, an dem diese Klage eingereicht wird.</p>
 
<p><strong><a name="redistribution">4. Weiterverbreitung</a></strong>. Sie dürfen Kopien des Werks oder von Bearbeitungen auf jedem Medium, mit oder ohne Änderungen und in Quell- oder Objektform vervielfältigen und verbreiten, vorausgesetzt, Sie erfüllen die folgenden Bedingungen:</p>
<p><strong><a id="redistribution">4. Weiterverbreitung</a></strong>. Sie dürfen Kopien des Werks oder von Bearbeitungen auf jedem Medium, mit oder ohne Änderungen und in Quell- oder Objektform vervielfältigen und verbreiten, vorausgesetzt, Sie erfüllen die folgenden Bedingungen:</p>
 
<ol style="list-style: lower-latin;">
<li>Sie müssen allen anderen Empfängern des Werks oder von Bearbeitungen eine Kopie dieser Lizenz übergeben.</li>
132,15 → 137,15
 
</ol>
 
<p><strong><a name="contributions">5. Einreichung von Beiträgen</a></strong>. Sofern nichts ausdrücklich anderes angegeben, unterliegt jeder Beitrag, den Sie dem Lizenzgeber bewusst zur Aufnahme in das Werk eingereicht haben, den Bedingungen dieser Lizenz, ohne dass zusätzliche Bedingungen gelten. Ungeachtet des Vorstehenden ersetzt oder ändert keine der hierin enthaltenen Bestimmungen die Bedingungen einer separaten Lizenzvereinbarung, die Sie möglicherweise mit dem Lizenzgeber für solche Beiträge abgeschlossen haben.</p>
<p><strong><a id="contributions">5. Einreichung von Beiträgen</a></strong>. Sofern nichts ausdrücklich anderes angegeben, unterliegt jeder Beitrag, den Sie dem Lizenzgeber bewusst zur Aufnahme in das Werk eingereicht haben, den Bedingungen dieser Lizenz, ohne dass zusätzliche Bedingungen gelten. Ungeachtet des Vorstehenden ersetzt oder ändert keine der hierin enthaltenen Bestimmungen die Bedingungen einer separaten Lizenzvereinbarung, die Sie möglicherweise mit dem Lizenzgeber für solche Beiträge abgeschlossen haben.</p>
 
<p><strong><a name="trademarks">6. Marken</a></strong>. Mit dieser Lizenz wird keine Genehmigung zur Nutzung der Handelsnamen, Marken, Dienstleistungsmarken oder Produktnamen des Lizenzgebers erteilt, mit Ausnahme der Erfordernisse der angemessenen und üblichen Nutzung zur Beschreibung der Herkunft des Werks und zur Wiedergabe des Inhaltes der NOTICE-Datei.</p>
<p><strong><a id="trademarks">6. Marken</a></strong>. Mit dieser Lizenz wird keine Genehmigung zur Nutzung der Handelsnamen, Marken, Dienstleistungsmarken oder Produktnamen des Lizenzgebers erteilt, mit Ausnahme der Erfordernisse der angemessenen und üblichen Nutzung zur Beschreibung der Herkunft des Werks und zur Wiedergabe des Inhaltes der NOTICE-Datei.</p>
 
<p><strong><a name="no-warranty">7. Gewährleistungsausschluss</a></strong>. Sofern nicht gemäß geltendem Recht erforderlich oder schriftlich vereinbart, stellt der Lizenzgeber das Werk (und stellt jeder Beitragsleistende seine Beiträge) WIE BESEHEN OHNE GEWÄHR ODER VORBEHALTE – ganz gleich, ob ausdrücklich oder stillschweigend – bereit, insbesondere Gewährleistungen oder Vorbehalten des EIGENTUMS, NICHTVERLETZUNG VON RECHTEN DRITTER, HANDELSÜBLICHKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Sie allein sind verantwortlich für die Beurteilung, ob die Nutzung oder Weiterverbreitung des Werks angemessen ist, und übernehmen die Risiken, die mit Ihrer Ausübung der Genehmigungen gemäß dieser Lizenz verbunden sind.</p>
<p><strong><a id="no-warranty">7. Gewährleistungsausschluss</a></strong>. Sofern nicht gemäß geltendem Recht erforderlich oder schriftlich vereinbart, stellt der Lizenzgeber das Werk (und stellt jeder Beitragsleistende seine Beiträge) WIE BESEHEN OHNE GEWÄHR ODER VORBEHALTE – ganz gleich, ob ausdrücklich oder stillschweigend – bereit, insbesondere Gewährleistungen oder Vorbehalten des EIGENTUMS, NICHTVERLETZUNG VON RECHTEN DRITTER, HANDELSÜBLICHKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Sie allein sind verantwortlich für die Beurteilung, ob die Nutzung oder Weiterverbreitung des Werks angemessen ist, und übernehmen die Risiken, die mit Ihrer Ausübung der Genehmigungen gemäß dieser Lizenz verbunden sind.</p>
 
<p><strong><a name="no-liability">8. Haftungsbeschränkung</a></strong>. In keinem Fall und auf keiner Rechtsgrundlage, sei es aufgrund unerlaubter Handlung (einschließlich Fahrlässigkeit), Vertrag, oder anderer Grundlage, soweit nicht gemäß geltendem Recht vorgeschrieben (z. B. absichtliche und grob fahrlässige Handlungen) oder schriftlich vereinbart, haftet der Beitragsleistende Ihnen gegenüber für Schäden, einschließlich direkter, indirekter, konkreter, beiläufig entstandener Schäden oder Folgeschäden jeglicher Art, die infolge dieser Lizenz oder aufgrund der Nutzung oder der Unfähigkeit zur Nutzung des Werks entstehen (insbesondere Schäden durch Verlust des Firmenwerts, Arbeitsunterbrechung, Computerausfall oder Betriebsstörung oder alle sonstigen wirtschaftlichen Schäden oder Verluste), selbst dann, wenn diese Beitragsleistenden auf die Möglichkeit solcher Schäden hingewiesen wurden.</p>
<p><strong><a id="no-liability">8. Haftungsbeschränkung</a></strong>. In keinem Fall und auf keiner Rechtsgrundlage, sei es aufgrund unerlaubter Handlung (einschließlich Fahrlässigkeit), Vertrag, oder anderer Grundlage, soweit nicht gemäß geltendem Recht vorgeschrieben (z. B. absichtliche und grob fahrlässige Handlungen) oder schriftlich vereinbart, haftet der Beitragsleistende Ihnen gegenüber für Schäden, einschließlich direkter, indirekter, konkreter, beiläufig entstandener Schäden oder Folgeschäden jeglicher Art, die infolge dieser Lizenz oder aufgrund der Nutzung oder der Unfähigkeit zur Nutzung des Werks entstehen (insbesondere Schäden durch Verlust des Firmenwerts, Arbeitsunterbrechung, Computerausfall oder Betriebsstörung oder alle sonstigen wirtschaftlichen Schäden oder Verluste), selbst dann, wenn diese Beitragsleistenden auf die Möglichkeit solcher Schäden hingewiesen wurden.</p>
 
<p><strong><a name="additional">9. Übernahme von Gewährleistung oder zusätzlicher Haftung</a></strong>. Bei der Weiterverbreitung des Werks oder der Bearbeitungen desselben steht es Ihnen frei, die Übernahme von Support, Gewährleistung, Schadenersatz oder sonstiger Haftungsverpflichtungen und/oder Rechte gemäß dieser Lizenz anzubieten und eine Gebühr dafür zu erheben. Bei der Übernahme solcher Verpflichtungen können Sie jedoch nur in eigenem Namen und auf eigene Verantwortung handeln, nicht jedoch im Namen anderer Beitragsleistender, und nur dann, wenn Sie einwilligen, jeden Beitragsleistenden zu entschädigen, zu verteidigen, und von jeder Haftung, die durch diesen Beitragsleistenden aufgrund der Übernahme dieser Gewährleistung oder zusätzlicher Haftung eingegangen wird, oder von gegen ihn erhobenen Ansprüchen, schadlos zu halten.</p>
<p><strong><a id="additional">9. Übernahme von Gewährleistung oder zusätzlicher Haftung</a></strong>. Bei der Weiterverbreitung des Werks oder der Bearbeitungen desselben steht es Ihnen frei, die Übernahme von Support, Gewährleistung, Schadenersatz oder sonstiger Haftungsverpflichtungen und/oder Rechte gemäß dieser Lizenz anzubieten und eine Gebühr dafür zu erheben. Bei der Übernahme solcher Verpflichtungen können Sie jedoch nur in eigenem Namen und auf eigene Verantwortung handeln, nicht jedoch im Namen anderer Beitragsleistender, und nur dann, wenn Sie einwilligen, jeden Beitragsleistenden zu entschädigen, zu verteidigen, und von jeder Haftung, die durch diesen Beitragsleistenden aufgrund der Übernahme dieser Gewährleistung oder zusätzlicher Haftung eingegangen wird, oder von gegen ihn erhobenen Ansprüchen, schadlos zu halten.</p>
 
<p>ENDE DER LIZENZBEDINGUNGEN</p>
 
/trunk/res/OIDplus/acknowledgements.html
1,9 → 1,14
<!DOCTYPE html>
<!DOCTYPE html>
 
<html lang="en">
 
<head>
<title>About OIDplus 2.0</title>
<style>
.underline {
text-decoration: underline;
}
</style>
</head>
 
<body>
77,7 → 82,7
 
<p>TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION</p>
 
<p><strong><a name="definitions">1. Definitions</a></strong>.</p>
<p><strong><a id="definitions">1. Definitions</a></strong>.</p>
 
<div style="margin-left: 1em;">
 
139,7 → 144,7
 
</div>
 
<p><strong><a name="copyright">2. Grant of Copyright License</a></strong>. Subject to the
<p><strong><a id="copyright">2. Grant of Copyright License</a></strong>. Subject to the
terms and conditions of this License, each Contributor hereby grants to You
a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of, publicly
146,7 → 151,7
display, publicly perform, sublicense, and distribute the Work and such
Derivative Works in Source or Object form.</p>
 
<p><strong><a name="patent">3. Grant of Patent License</a></strong>. Subject to the terms
<p><strong><a id="patent">3. Grant of Patent License</a></strong>. Subject to the terms
and conditions of this License, each Contributor hereby grants to You a
perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made, use,
161,7 → 166,7
granted to You under this License for that Work shall terminate as of the
date such litigation is filed.</p>
 
<p><strong><a name="redistribution">4. Redistribution</a></strong>. You may reproduce and
<p><strong><a id="redistribution">4. Redistribution</a></strong>. You may reproduce and
distribute copies of the Work or Derivative Works thereof in any medium,
with or without modifications, and in Source or Object form, provided that
You meet the following conditions:</p>
203,7 → 208,7
 
</ol>
 
<p><strong><a name="contributions">5. Submission of Contributions</a></strong>. Unless You
<p><strong><a id="contributions">5. Submission of Contributions</a></strong>. Unless You
explicitly state otherwise, any Contribution intentionally submitted for
inclusion in the Work by You to the Licensor shall be under the terms and
conditions of this License, without any additional terms or conditions.
211,13 → 216,13
terms of any separate license agreement you may have executed with Licensor
regarding such Contributions.</p>
 
<p><strong><a name="trademarks">6. Trademarks</a></strong>. This License does not grant
<p><strong><a id="trademarks">6. Trademarks</a></strong>. This License does not grant
permission to use the trade names, trademarks, service marks, or product
names of the Licensor, except as required for reasonable and customary use
in describing the origin of the Work and reproducing the content of the
NOTICE file.</p>
 
<p><strong><a name="no-warranty">7. Disclaimer of Warranty</a></strong>. Unless required by
<p><strong><a id="no-warranty">7. Disclaimer of Warranty</a></strong>. Unless required by
applicable law or agreed to in writing, Licensor provides the Work (and
each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including,
227,7 → 232,7
redistributing the Work and assume any risks associated with Your exercise
of permissions under this License.</p>
 
<p><strong><a name="no-liability">8. Limitation of Liability</a></strong>. In no event and
<p><strong><a id="no-liability">8. Limitation of Liability</a></strong>. In no event and
under no legal theory, whether in tort (including negligence), contract, or
otherwise, unless required by applicable law (such as deliberate and
grossly negligent acts) or agreed to in writing, shall any Contributor be
239,7 → 244,7
even if such Contributor has been advised of the possibility of such
damages.</p>
 
<p><strong><a name="additional">9. Accepting Warranty or Additional Liability</a></strong>.
<p><strong><a id="additional">9. Accepting Warranty or Additional Liability</a></strong>.
While redistributing the Work or Derivative Works thereof, You may choose
to offer, and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this License.
/trunk/res/OIDplus/privacy_documentation$dede.html
4,9 → 4,6
 
<head>
<title>Datenschutz Verfahrensbeschreibung</title>
</head>
 
<body>
<style>
h2 {
font-size:large !important;
14,12 → 11,18
h3 {
font-size:medium !important;
}
.underline {
text-decoration: underline;
}
</style>
</head>
 
<body>
<h1>Datenschutz Verfahrensbeschreibung</h1>
<p><em>Revision: 29. August 2020</em></p>
<p><strong><em>Wichtig</em></strong><em> : Dieses Dokument wurde von ViaThinkSoft (dem Entwickler der Software OIDplus) verfasst und enthält allgemeine Informationen zur Funktionsweise von OIDplus in Bezug auf datenschutzbezogene Themen. Da OIDplus eine Web-Software ist, die
heruntergeladen und auf einem eigenen Server betrieben werden kann, beschreibt dieses Dokument NICHT, wie die Eigentümer / Administratoren dieser Installation von OIDplus mit Ihren Daten umgehen. Daher sollte der Eigentümer dieses Systems eine zusätzliche / individuelle Datenschutzerklärung vorlegen.</em></p>
<a name="terminology"></a><h2><strong><u>Parteien / Terminologie</u></strong></h2>
<a id="terminology"></a><h2><strong><span class="underline">Parteien / Terminologie</span></strong></h2>
<p><strong>ViaThinkSoft</strong> ist der Entwickler der Softwarelösung OIDplus.</p>
<p><strong>OIDplus</strong> ist eine Softwarelösung, mit der
<strong>Objekt-Bezeichner</strong> (im Folgenden als
33,19 → 36,19
sind in einer hierarchischen Struktur organisiert, in der RAs OIDs unter den
von ihnen verwalteten OIDs an andere RAs delegieren. Im Kontext einer
bestimmten RA und OID ist die <strong>Übergeordnete RA</strong> die RA, die die Root-OID einer bestimmten RA delegiert hat. Die Aussagen zu Superior RAs in diesem Dokument gelten jedoch nur, wenn die Superior RA OIDplus zum Delegieren der OID verwendet.</p>
<a name="server_client_side"></a><h2><strong><u>Definition von serverseitig und clientseitig</u></strong></h2>
<a id="server_client_side"></a><h2><strong><span class="underline">Definition von serverseitig und clientseitig</span></strong></h2>
<p>OIDplus ist eine Webanwendung, die mit den Programmiersprachen PHP (serverseitig) und HTML / JavaScript (clientseitig)
programmiert wurde.</p>
<h3><u>Serverseitig</u></h3>
<p>Die PHP-Skripte von OIDplus werden über einen PHP-Skriptinterpreter verarbeitet, der auf einer Webserversoftware (HTTP-Webserver) ausgeführt wird, z. B. Apache oder Nginx. Die tatsächlichen Daten von OIDplus (OIDs, RAs…) werden in einem DBMS (Database Management
System) gespeichert, z. B. „MySQL, MariaDB oder PostgreSQL. Das DBMS wird normalerweise auf demselben Server installiert, auf dem
<h3><span class="underline">Serverseitig</span></h3>
<p>Die PHP-Skripte von OIDplus werden über einen PHP-Skriptinterpreter verarbeitet, der auf einer Webserversoftware (HTTP-Webserver) ausgeführt wird, z. B. Apache oder Nginx. Die tatsächlichen Daten von OIDplus (OIDs, RAs?) werden in einem DBMS (Database Management
System) gespeichert, z. B. ?MySQL, MariaDB oder PostgreSQL. Das DBMS wird normalerweise auf demselben Server installiert, auf dem
auch PHP / Apache installiert ist. Der Serveradministrator kann es jedoch auf jedem Computer installieren.</p>
<h3><u>Client-Seite</u></h3>
<h3><span class="underline">Client-Seite</span></h3>
<p>Während der Benutzer OIDplus durchsucht, stellt die Serverseite dem Client-Computer HTML- und JavaScript-Inhalte bereit. Mit einer Webbrowsersoftware (wie Chrome oder Firefox) werden diese Inhalte verarbeitet und auf dem Bildschirm angezeigt. Verschiedene JavaScript-Skripte sind entweder erforderlich, um OIDplus auszuführen, oder sie verbessern die Benutzererfahrung, z. B. indem OID-Beschreibungen neu geladen werden, ohne die gesamte Seite neu zu laden, während der Benutzer OIDplus durchsucht. Möglicherweise sind einige externe JavaScripts enthalten (derzeit nur ReCaptcha), die am Ende
dieses Dokuments beschrieben werden.</p>
<a name="scope"></a><h2><strong><u>Umfang dieses Dokuments</u></strong></h2>
<a id="scope"></a><h2><strong><span class="underline">Umfang dieses Dokuments</span></strong></h2>
<p>Dieses Dokument enthält nur Informationen zur OIDplus-Software. Es ist unabhängig vom Verhalten der clientseitigen Software (Webbrowser, Betriebssystem, Firewalls), unabhängig vom Verhalten der Hardware (Netzwerkrouter oder Firewalls,), unabhängig vom Verhalten der serverseitigen Software (Apache, PHP, MySQL / MariaDB / PostgreSQL / ..., Betriebssystem usw.) und die Vorgehensweise, wie der Systemadministrator die Serversoftware betreibt, Protokolldateien speichert, Firewalls verwaltet usw.</p>
<a name="oid_information"></a><h2><strong><u>OID-Informationen</u></strong></h2>
<a id="oid_information"></a><h2><strong><span class="underline">OID-Informationen</span></strong></h2>
<p>Der Hauptzweck von OIDplus besteht darin, Informationen zu
Objekt-Bezeichnern anzuzeigen und zu verwalten.</p>
<p>Einige Attribute von Objekt-Bezeichnern (wie z. B. ASN.1-Kennungen) können nur von der übergeordneten RA und nicht von der RA dieser OID geändert werden. Andererseits können einige andere Informationen (wie Titel und Beschreibung) nur von der RA geändert werden, die die OID besitzt, und nicht von der Superior RA. Der Systemadministrator kann alle Informationen bearbeiten.</p>
72,7 → 75,7
<p><strong>Kann nur geändert werden durch:</strong></p>
</td>
<td width="154">
<p><strong>Wenn nicht als „versteckt markiert, dann sichtbar für:</strong></p>
<p><strong>Wenn nicht als ?versteckt markiert, dann sichtbar für:</strong></p>
</td>
<td width="154">
<p><strong>Wenn &nbsp;"versteckt",
202,7 → 205,7
</tr>
</tbody>
</table>
<a name="ra_information"></a><h2><strong><u>RA-Informationen</u></strong></h2>
<a id="ra_information"></a><h2><strong><span class="underline">RA-Informationen</span></strong></h2>
<p>Die Informationen zu RAs, die OIDs besitzen, können öffentlich eingesehen werden. Eine RA kann ihre Kontaktdaten im OIDplus-System (Anmeldebereich) verwalten und ihre Informationen als "privat" markieren, um die für die Öffentlichkeit sichtbaren Informationen einzuschränken.</p>
<p>Folgende RA-Informationen werden immer angezeigt (auch wenn sie als "privat" markiert sind):</p>
<h3><em>Übersicht: Verwaltete Informationen zu RAs:</em></h3>
400,7 → 403,7
</tr>
</tbody>
</table>
<a name="ra_invitation"></a><h2><strong><u>Einladung von RAs</u></strong></h2>
<a id="ra_invitation"></a><h2><strong><span class="underline">Einladung von RAs</span></strong></h2>
<p>Wenn eine OID von einer RA oder vom Systemadministrator erstellt wird, wird der Eigentümer der OID durch eine E-Mail-Adresse definiert (die öffentlich angezeigt wird). Daher ist es möglich, eine OID zu besitzen, auch wenn Sie nicht im OIDplus-System registriert sind.</p>
<p>Wenn die OID erstellt wird und die RA mit einer solchen E-Mail-Adresse nicht
in OIDplus vorhanden ist, wird der Ersteller gefragt, ob er eine Einladung senden möchte. Wenn
414,7 → 417,7
er erneut aufgefordert wird, die Einladung zu senden.)</p>
<p>Zusätzlich zum Einladungssystem kann der Systemadministrator RA-Konten
ohne Überprüfung der E-Mail-Adresse erstellen.</p>
<a name="oidinfo_publishing"></a><h2><strong><u>Veröffentlichen von RAs / OIDs auf oid-info.com</u></strong></h2>
<a id="oidinfo_publishing"></a><h2><strong><span class="underline">Veröffentlichen von RAs / OIDs auf oid-info.com</span></strong></h2>
<p>oid-info.com ist eine Webseite, auf der Informationen zu OIDs wie in einem Wiki gesammelt und angezeigt werden. OIDplus enthält Funktionen zum Übermitteln von Daten seiner Datenbank an oid-info.com</p>
<p>Es gibt zwei Möglichkeiten:</p>
<ol>
425,12 → 428,12
in regelmäßigen Abständen automatisch über eine sichere Verbindung und sendet die öffentlichen RA / OID-Daten
als XML-Datei. ViaThinkSoft speichert diese Daten und leitet sie an den OID-Repository-Webmaster weiter, der die Daten überprüft und schließlich an das öffentliche Repository www.oid-info.com übermittelt.</li>
</ol>
<a name="systemid"></a><h2><strong><u>Eindeutige System-ID</u></strong></h2>
<a id="systemid"></a><h2><strong><span class="underline">Eindeutige System-ID</span></strong></h2>
<p>Während der Ersteinrichtung wird ein "Schlüsselpaar",
bestehend aus einem öffentlichen und einem privaten Schlüssel erstellt.
Dieses Schlüsselpaar kann für verschiedene Zwecke verwendet werden, z. B. um Daten zwischen OIDplus und ViaThinkSoft zu verschlüsseln, wenn der Dienst "Systemregistrierung" verwendet wird (siehe unten) oder um OID-WHOIS-Abfrage-Eregebnisse zu signieren.</p>
<p>Aus diesem öffentlichen Schlüssel wird eine eindeutige System-ID abgeleitet. Die eindeutige System-ID und der öffentliche Schlüssel werden im Setup-Bildschirm angezeigt.</p>
<a name="system_registration"></a><h2><strong><u>Systemregistrierung und automatische Veröffentlichung auf oid-info.com</u></strong></h2>
<a id="system_registration"></a><h2><strong><span class="underline">Systemregistrierung und automatische Veröffentlichung auf oid-info.com</span></strong></h2>
<p>Während der Ersteinrichtung kann der Systemadministrator zwischen folgenden Optionen wählen:</p>
<p>0 = Beim OIDplus-Verzeichnisdienst registrieren und RA/OID-Daten
automatisch auf oid-info.com veröffentlichen<br>1 = Nur im
438,7 → 441,7
verbergen</p>
<p>Diese Einstellung kann jederzeit im Administrator-Anmeldebereich
geändert werden.</p>
<h3><em><u>Registrieren des Systems beim Verzeichnisdienst (Option 0 und 1)</u></em></h3>
<h3><em><span class="underline">Registrieren des Systems beim Verzeichnisdienst (Option 0 und 1)</span></em></h3>
<p>Die Registrierung des OIDplus-Systems hat viele Vorteile:</p><!-- please keep in sync with plugins/adminPages/120_registration/info$dede.html document -->
<ul>
<li>Der öffentliche Schlüssel der OIDplus-Installation wird im ViaThinkSoft OIDplus-Verzeichnis veröffentlicht, sodass Benutzer die Integrität der Daten (z.B. Daten aus einer OID-WHOIS-Abfrage) bestätigen können.</li>
481,8 → 484,8
diese Daten zu löschen, muss sich der Systemadministrator an
den OID-Repository-Webmaster wenden ( <a class="spamspan" href="mailto:admin@oid-info.com">admin@oid-info.com</a>
), in Englisch oder Französischer Sprache.</p>
<p><em><u>RA / OID-Daten unter oid-info.com veröffentlichen
(Option 0)</u></em></p>
<p><em><span class="underline">RA / OID-Daten unter oid-info.com veröffentlichen
(Option 0)</span></em></p>
<p>Wenn die Datenschutzstufe Option 0 ausgewählt ist, kontaktiert
OIDplus den ViaThinkSoft-Server in
regelmäßigen Abständen automatisch über eine sichere Verbindung und sendet die öffentlichen RA / OID-Daten. ViaThinkSoft speichert diese Daten und leitet sie an den OID-Repository-Webmaster weiter, der die Daten überprüft und schließlich an das öffentliche Repository www.oid-info.com übermittelt.</p>
493,10 → 496,10
Um bereits übermittelte OIDs zu entfernen, muss sich der Systemadministrator
an den OID-Repository-Webmaster wenden ( <a class="spamspan" href="mailto:admin@oid-info.com">admin@oid-info.com</a>
), in Englisch oder Französischer Sprache.</p>
<h3><em><u>System ausblenden (Option 2)</u></em></h3>
<h3><em><span class="underline">System ausblenden (Option 2)</span></em></h3>
<p>Wenn Option 2 für die Datenschutzstufe ausgewählt wurde, kontaktiert das System weder ViaThinkSoft, noch oid-info.com.</p>
<a name="logfiles"></a><h2><strong><u>Protokolldateien</u></strong></h2>
<h3><em><u>Protokolle von OIDplus</u></em></h3>
<a id="logfiles"></a><h2><strong><span class="underline">Protokolldateien</span></strong></h2>
<h3><em><span class="underline">Protokolle von OIDplus</span></em></h3>
<p>OIDplus verwaltet Protokolleinträge für bestimmte Ereignisse wie
z.B. Anmeldungen, OID / RA-Änderungen, Erstellen und Löschen von OIDs usw.</p>
<p>Diese Protokollnachrichten werden nur im DBMS gespeichert.</p>
506,12 → 509,12
<p>Protokollereignisse zeigen möglicherweise die IP-Adressen des Computers an, der mit dem OIDplus-System verbunden war, und die E-Mail-Adresse, wenn die RA mit ihren Anmeldeinformationen angemeldet war.</p>
<p>OIDplus bietet keine Funktion zum Löschen von Protokollereignissen. Ein Löschvorgang muss direkt in der Datenbank erfolgen, z. B. mit
einer Datenbanksoftware wie phpMyAdmin.</p>
<h3><em><u>Protokolle von Host-Software, Firewalls usw.</u></em></h3>
<h3><em><span class="underline">Protokolle von Host-Software, Firewalls usw.</span></em></h3>
<p>Neben von OIDplus erstellten Protokollen können auch andere clientseitige oder serverseitige Software, die an der Verarbeitung der Webanforderungen beteiligt
sind (z. B. der HTTP-Webserver, der PHP-Skriptinterpreter, der Datenbankserver, das Betriebssystem, der Webbrowser oder verschiedene Firewalls)
Datenverkehr und Abfrage auf verschiedene Art protokollieren. Diese Protokolle sind unabhängig von OIDplus und müssen vom Systemadministrator und / oder den Netzwerkadministratoren verwaltet werden.</p>
<p>Wenn Sie über den Inhalt von Protokolldateien besorgt sind, wenden Sie sich an den Systemadministrator.</p>
<a name="cookies"></a><h2><strong><u>Cookies</u></strong></h2>
<a id="cookies"></a><h2><strong><span class="underline">Cookies</span></strong></h2>
<p>Ein Cookie ist eine kleine Textdatei, die bei
jedem Aufruf dieser Seite an den Webserver gesendet wird,
z.B. um Sie als eingeloggten Benutzer zu identifizieren.</p>
561,7 → 564,7
<p>Essentiell</p>
</td>
<td width="139">
<p>Wenn der Systemadministrator die Option „Automatische SSL-Erkennung aktiviert, überprüft dieses Cookie, ob der SSL-Port geöffnet ist, um die automatische Umleitung von HTTP zu HTTPS zu ermöglichen.</p>
<p>Wenn der Systemadministrator die Option ?Automatische SSL-Erkennung aktiviert, überprüft dieses Cookie, ob der SSL-Port geöffnet ist, um die automatische Umleitung von HTTP zu HTTPS zu ermöglichen.</p>
</td>
<td width="118">
<p>Während dem ersten Besuch der Seite</p>
590,21 → 593,21
</tr>
</tbody>
</table>
<a name="external_javascripts"></a><h2><strong><u>Externe JavaScripts</u></strong></h2>
<a id="external_javascripts"></a><h2><strong><span class="underline">Externe JavaScripts</span></strong></h2>
<p>Während des Ladens der Webseite werden verschiedene JavaScripts hinzugefügt, um die Benutzererfahrung zu verbessern und wichtige Funktionen
zu ermöglichen. Die grundlegenden Skripte sind die JavaScript-Dateien von OIDplus selbst, die auf dem Server der jeweiligen OIDplus-Installation gespeichert sind.</p>
<p>Es gibt folgende JavaScripts, die von einer externen Quelle / einem externen Server geladen werden:</p>
<h3><em><u>ReCAPTCHA (nur wenn "ReCAPTCHA" aktiviert ist)</u></em></h3>
<h3><em><span class="underline">ReCAPTCHA (nur wenn "ReCAPTCHA" aktiviert ist)</span></em></h3>
<p>Um vertrauliche Funktionen von OIDplus (z. B. das Anmeldeformular) vor Hackern zu schützen, kann der Systemadministrator "ReCAPTCHA" aktivieren, einen Dienst von Google. Vor dem Aktivieren von ReCAPTCHA in den OIDplus-Einstellungen muss der Systemadministrator einen API-Schlüssel von Google anfordern. Die Verwendung von ReCAPTCHA wird wahrscheinlich zusätzliche Cookies einführen, die außerhalb der Kontrolle von OIDplus liegen.</p>
<p>Weitere Informationen finden Sie in den <a href="https://policies.google.com/privacy">Datenschutzbestimmungen</a> und <a href="https://policies.google.com/terms">Nutzungsbedingungen</a> von Google</a>.</p>
<p>Weitere Informationen finden Sie in den <a href="https://policies.google.com/privacy">Datenschutzbestimmungen</a> und <a href="https://policies.google.com/terms">Nutzungsbedingungen</a> von Google.</p>
<p>Wenn der Systemadministrator die ReCAPTCHA-Funktion nicht aktiviert hat, wird überhaupt kein externes Skript eingefügt.</p>
<p>Wenn die Funktion aktiviert ist, führt das Blockieren des ReCAPTCHA-JavaScript auf der Clientseite dazu, dass verschiedene Funktionen (wie
z.B. der Anmeldebereich) nicht funktionieren.</p>
<a name="additional_security"></a><h2><strong><u>Zusätzliche Sicherheits- / Zugriffskontrollen</u></strong></h2>
<a id="additional_security"></a><h2><strong><span class="underline">Zusätzliche Sicherheits- / Zugriffskontrollen</span></strong></h2>
<p>Systemadministratoren können andere Methoden auswählen, um den öffentlichen Zugriff zu deaktivieren, z. B. mithilfe von Firewalls (sodass Clients überhaupt nicht auf den Server zugreifen können) oder indem Sie einen Kennwortschutz auf der Ebene der HTTP-Webserversoftware einrichten,
z. B. "Basic Auth" bei Apache
(damit die Clients nicht auf das Verzeichnis zugreifen können, in dem OIDplus installiert ist).</p>
<a name="encrypted_connections"></a><h2><strong><u>Verschlüsselte Netzwerkverbindungen</u></strong></h2>
<a id="encrypted_connections"></a><h2><strong><span class="underline">Verschlüsselte Netzwerkverbindungen</span></strong></h2>
<p>Der Serveradministrator ist für die Sicherung der Netzwerkverbindungen mit HTTPS verantwortlich. Dies erfolgt auf HTTP-Webserverebene (d.h. einem Apache-Modul / einer Apache-Einstellung) und unabhängig von OIDplus.</p>
</body>
 
/trunk/res/OIDplus/privacy_documentation.html
4,9 → 4,6
 
<head>
<title>Procedural documentation related to privacy</title>
</head>
 
<body>
<style>
h2 {
font-size:large !important;
14,11 → 11,17
h3 {
font-size:medium !important;
}
.underline {
text-decoration: underline;
}
</style>
</head>
 
<body>
<h1>Procedural documentation related to privacy</h1>
<p><em>Revision: 29 August 2020</em></p>
<p><strong><em>Important</em></strong><em>: This document is written by ViaThinkSoft (the developer of the software &ldquo;OIDplus&rdquo;) and gives general information on how OIDplus works regarding privacy-related topics. Since OIDplus is a web-software that can be downloaded, installed, and operated by anyone on their server systems, this document DOES NOT describe how the owners/administrators of this particular installation of OIDplus are handling your data. Therefore, the owner of this system should provide an additional/individual privacy statement.</em></p>
<a name="terminology"></a><h2><strong><u>Parties / Terminology</u></strong></h2>
<a id="terminology"></a><h2><strong><span class="underline">Parties / Terminology</span></strong></h2>
<p><strong>ViaThinkSoft</strong> is the developer of the software solution &ldquo;OIDplus&rdquo;.</p>
<p><strong>OIDplus</strong> is a software solution to organize, manage and publish information about <strong>Object Identifiers</strong> (hereinafter referred to as OIDs) and their owners
(hereinafter referred to as <strong>Registration Authority</strong> or <strong>RA</strong>).
26,16 → 29,16
Operators of OIDplus instances are usually software developers, workgroups, companies, or other organizations, hereinafter referred to as <strong>system owner</strong>.
A <strong>system administrator</strong> is a person who manages and maintains the OIDplus software and is usually also the same person who manages the server&rsquo;s hardware and software.</p>
<p><strong>Object Identifiers</strong> are organized in a hierarchical structure where RAs are delegating OIDs underneath the OIDs they are managing, to other RAs. In the context of a specific RA and OID, the &ldquo;<strong>Superior RA</strong>&rdquo; is the RA that has delegated the root OID of a specific RA. However, the statements about &ldquo;Superior RAs&rdquo; in this document do only apply if the Superior RA is using OIDplus to delegate the OID.</p>
<a name="server_client_side"></a><h2><strong><u>Definition of server-side and client-side</u></strong></h2>
<a id="server_client_side"></a><h2><strong><span class="underline">Definition of server-side and client-side</span></strong></h2>
<p>OIDplus is a web application written in the programming languages PHP (running on server-side) and HTML/JavaScript (running on the client-side).</p>
<h3><u>Server-side</u></h3>
<h3><span class="underline">Server-side</span></h3>
<p>The PHP scripts of OIDplus are processed through a PHP script interpreter running on top of a web server software (&ldquo;HTTP web server&rdquo;), for example, &ldquo;Apache&rdquo; or &ldquo;Nginx&rdquo;. The actual data of OIDplus (OIDs, RAs, &hellip;) is stored in a DBMS (Database Management
System) e.g. &ldquo;MySQL&rdquo;, &ldquo;MariaDB&rdquo; or &ldquo;PostgreSQL&rdquo;. The DBMS is usually installed on the same server machine where PHP/Apache is installed, but it can be installed on any machine by the server administrator.</p>
<h3><u>Client-side</u></h3>
<h3><span class="underline">Client-side</span></h3>
<p>While the user browses OIDplus, the server-side serves HTML and JavaScript contents to the client computer. Using a web browser software (like &ldquo;Chrome&rdquo; or &ldquo;Firefox&rdquo;), these contents are processed and displayed on the screen. Various JavaScript scripts are either required to run OIDplus or are improving the user experience, e.g. by reloading OID descriptions without reloading the whole page while the user browses OIDplus. There might be a few external JavaScripts included (currently only ReCaptcha), which are described at the end of the document.</p>
<a name="scope"></a><h2><strong><u>Scope of this document</u></strong></h2>
<a id="scope"></a><h2><strong><span class="underline">Scope of this document</span></strong></h2>
<p>This document contains information about the OIDplus software only. It is independent of the behavior of the client-side software (web browser, Operating system, firewalls, &hellip;), independent from the behavior of hardware (network routers or firewalls, &hellip;), independent from the behavior of the server-side software (Apache, PHP, MySQL/MariaDB/PostgreSQL/..., Operating system, etc.) and the practices how the system administrator is operating the server software, stores log files, manages firewalls, etc.</p>
<a name="oid_information"></a><h2><strong><u>OID information</u></strong></h2>
<a id="oid_information"></a><h2><strong><span class="underline">OID information</span></strong></h2>
<p>The main purpose of OIDplus is to show and manage information on OID information.</p>
<p>Some attributes of Object Identifiers (like ASN.1 identifiers) can only be changed by the Superior RA and not by the RA of that OID. On the other hand, some other information (like the title and description) can only be changed by the RA owning the OID and not by the Superior RA. The system administrator can edit all information.</p>
<h3><em>Hidden OID information</em></h3>
175,7 → 178,7
</tr>
</tbody>
</table>
<a name="ra_information"></a><h2><strong><u>RA information</u></strong></h2>
<a id="ra_information"></a><h2><strong><span class="underline">RA information</span></strong></h2>
<p>The information about RAs owning OIDs can be seen publicly. A RA can manage their contact data in the OIDplus system (login-area) and mark their information as &ldquo;private&rdquo; to limit the information visible to the public.</p>
<p>Following RA information is always displayed (even if marked &ldquo;private&rdquo;):</p>
<h3><em>Overview: Managed information about RAs:</em></h3>
373,12 → 376,12
</tr>
</tbody>
</table>
<a name="ra_invitation"></a><h2><strong><u>Invitation of RAs</u></strong></h2>
<a id="ra_invitation"></a><h2><strong><span class="underline">Invitation of RAs</span></strong></h2>
<p>When an OID is created by a RA or by the system administrator, the owner of the OID will be defined by an email address (which will be shown publicly). Therefore, it is possible to own an OID, even if you are not registered in the OIDplus system.</p>
<p>When the OID is created and the RA with such an email address does not exist in the OIDplus system, the creator will be asked if they want to send an invitation. If they agree, an email will be sent to this email address, allowing them to click a link to register to the OIDplus system, so that they can add more contact data as well as be able to delegate and edit OID information.</p>
<p>Currently, a RA cannot register themselves. They need an invitation by the system administrator or their superior RA to be able to register to the OIDplus system. (Note: To resend an invitation, the system administrator or superior RA needs to click &ldquo;Update&rdquo; at the OID delegation table, so that they are asked again to send the invitation).</p>
<p>In addition to the invitation system, the system administrator can create RA accounts without email address verification.</p>
<a name="oidinfo_publishing"></a><h2><strong><u>Publishing RAs/OIDs to oid-info.com</u></strong></h2>
<a id="oidinfo_publishing"></a><h2><strong><span class="underline">Publishing RAs/OIDs to oid-info.com</span></strong></h2>
<p>oid-info.com is a web page that collects and displays information about OIDs, like a Wiki. OIDplus contains features to submit data of its database to oid-info.com</p>
<p>There are two possibilities:</p>
<ol>
387,14 → 390,14
the OIDplus system will transmit XML data containing RA/OID information through an encrypted interface to ViaThinkSoft,
and ViaThinkSoft after regular manual check submits the data to the oid-info.com administrator.</li>
</ol>
<a name="systemid"></a><h2><strong><u>Unique system ID</u></strong></h2>
<a id="systemid"></a><h2><strong><span class="underline">Unique system ID</span></strong></h2>
<p>During the initial setup, a public/private-key-pair will be created which can be used for various purposes, e.g. to encrypt data between OIDplus and ViaThinkSoft if the &ldquo;system registration&rdquo; service is used (see below) or to sign OID-WHOIS responses.</p>
<p>From this public key, a unique system ID will be derivated. The unique system ID and the public key can be seen in the setup screen.</p>
<a name="system_registration"></a><h2><strong><u>System registration and automatic publishing to oid-info.com</u></strong></h2>
<a id="system_registration"></a><h2><strong><span class="underline">System registration and automatic publishing to oid-info.com</span></strong></h2>
<p>During initial setup, the system administrator can choose between the following options:</p>
<p>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Register to directory service and automatically publish RA/OID data at oid-info.com<br /> 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Only register to directory service<br /> 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hide system</p>
<p>This setting can always be changed in the administrator login/control panel.</p>
<h3><em><u>Registering the system to the directory service (option 0 and 1)</u></em></h3>
<h3><em><span class="underline">Registering the system to the directory service (option 0 and 1)</span></em></h3>
<p>The registration of the OIDplus system has various advantages:</p><!-- please keep in sync with plugins/adminPages/120_registration/info.html document -->
<ul>
<li>The public key of the OIDplus instance will be published to the ViaThinkSoft web directory, so that users can check the integrity of the data (e.g. signed OID-WHOIS requests).</li>
427,13 → 430,13
<p>The other information will stay on the ViaThinkSoft internal database and will not be shared with other parties.</p>
<p>If the system administrator enabled this option and want to revoke the permission, the system administrator has to change the privacy level in the administrator login/control panel. The system will automatically contact the ViaThinkSoft server again and performs the deletion of all data.</p>
<p>Please note that the deletion of the record in the directory service does not delete OID/RA information which is already submitted at oid-info.com (if option 0 was chosen). To delete this data, the system administrator needs to contact the OID Repository Webmaster at <a href="mailto:admin@oid-info.com">admin@oid-info.com</a></p>
<h3><em><u>Publish RA/OID data at oid-info.com (option 0)</u></em></h3>
<h3><em><span class="underline">Publish RA/OID data at oid-info.com (option 0)</span></em></h3>
<p>If privacy level option 0 is chosen, the system regularly contacts the ViaThinkSoft server through a secure connection and sends the public RA/OID data. ViaThinkSoft will store this data and redirect it to the OID Repository Webmaster who will review the data and eventually submit it to the public repository www.oid-info.com</p>
<p>If the system administrator enabled this option and want to revoke the permission, the system administrator has to change the privacy level in the administrator login/control panel to option 1 or 2 (to avoid that data is sent again). To remove already submitted OIDs, the system administrator needs to contact the OID Repository Webmaster at <a href="mailto:admin@oid-info.com">admin@oid-info.com</a></p>
<h3><em><u>Hide system (option 2)</u></em></h3>
<h3><em><span class="underline">Hide system (option 2)</span></em></h3>
<p>If privacy level option 2 was chosen, the system will neither contact ViaThinkSoft, nor oid-info.com.</p>
<a name="logfiles"></a><h2><strong><u>Log files</u></strong></h2>
<h3><em><u>Logs by OIDplus</u></em></h3>
<a id="logfiles"></a><h2><strong><span class="underline">Log files</span></strong></h2>
<h3><em><span class="underline">Logs by OIDplus</span></em></h3>
<p>OIDplus manages log entries for specific events like logins, OID/RA modifications, creating and deletion of OIDs, etc.</p>
<p>These log messages are stored in the DBMS only.</p>
<p>All log events are visible to the system administrator.</p>
440,10 → 443,10
<p>Some events are visible to the RA and/or the Superior RA.</p>
<p>Log events may show the IP addresses of the computer that was connected to the OIDplus system and the email address if the RA was logged in using their credentials.</p>
<p>OIDplus does not provide a function to delete log events. A deletion must be done in the database directly, e.g. using a database client like phpMyAdmin.</p>
<h3><em><u>Logs by host software, firewalls, etc.</u></em></h3>
<h3><em><span class="underline">Logs by host software, firewalls, etc.</span></em></h3>
<p>Besides logs created by OIDplus, other client-side or server-side software involved in processing the web requests (like the HTTP web server, the PHP script interpreter, the database server, the Operating System, the web browser, or various firewalls) might log traffic and queries in various ways. These logs are independent of OIDplus and need to be managed by the system administrator and/or network administrators.</p>
<p>If you are concerned about the contents of the log files, please contact the system administrator.</p>
<a name="cookies"></a><h2><strong><u>Cookies</u></strong></h2>
<a id="cookies"></a><h2><strong><span class="underline">Cookies</span></strong></h2>
<p>A cookie is a small text file that is sent to this
website every time you visit it, e.g. to identify you
as a logged in user.</p>
520,17 → 523,17
</tr>
</tbody>
</table>
<a name="external_javascripts"></a><h2><strong><u>External JavaScripts</u></strong></h2>
<a id="external_javascripts"></a><h2><strong><span class="underline">External JavaScripts</span></strong></h2>
<p>During the loading of the web page, various JavaScripts are included to improve the user experience and add essential functionalities. The basic scripts are the JavaScript files of OIDplus itself, which are stored on the server of the particular OIDplus installation.</p>
<p>Following JavaScripts are loaded from an external source/server:</p>
<h3><em><u>ReCAPTCHA (only if &ldquo;ReCAPTCHA&rdquo; is enabled)</u></em></h3>
<h3><em><span class="underline">ReCAPTCHA (only if &ldquo;ReCAPTCHA&rdquo; is enabled)</span></em></h3>
<p>To protect sensitive functions of OIDplus (e.g. the login form) from hackers, the system administrator can enable &ldquo;ReCAPTCHA&rdquo; which is a service of Google. Before enabling ReCAPTCHA in the OIDplus setup/settings, the system administrator has to request an API key from Google. The usage of ReCAPTCHA will probably introduce additional cookies that are out of the control of OIDplus.</p>
<p>Please see <a href="https://policies.google.com/privacy">Google&rsquo;s Privacy Policy</a> and <a href="https://policies.google.com/terms">Terms of service</a> for more information.</p>
<p>If the system administrator has not enabled the ReCAPTCHA feature, no external script will be included at all.</p>
<p>If the feature is enabled, blocking the ReCAPTCHA JavaScript on the client-side will result in various functionalities (like the login form) not working.</p>
<a name="additional_security"></a><h2><strong><u>Additional security / access controls</u></strong></h2>
<a id="additional_security"></a><h2><strong><span class="underline">Additional security / access controls</span></strong></h2>
<p>System administrators can choose other methods to disable access from the public, e.g. by using firewalls (so that clients cannot access the server at all) or by setting up password protection at the level of the HTTP web server software (e.g. &ldquo;Basic Auth&rdquo; on Apache, so that the clients cannot access the directory where OIDplus is installed in).</p>
<a name="encrypted_connections"></a><h2><strong><u>Encrypted network connections</u></strong></h2>
<a id="encrypted_connections"></a><h2><strong><span class="underline">Encrypted network connections</span></strong></h2>
<p>The server administrator is responsible for securing the network connections using &ldquo;HTTPS&rdquo;. This is done at the HTTP web server level (i.e. an Apache module/setting) and independent from OIDplus.</p>
</body>