Merge remote-tracking branch 'upstream/dev' into dev
This commit is contained in:
commit
b41357e2a1
55
Zotlabs/Daemon/CurlAuth.php
Normal file
55
Zotlabs/Daemon/CurlAuth.php
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Zotlabs\Daemon;
|
||||||
|
|
||||||
|
// generate a curl compatible cookie file with an authenticated session for the given channel_id.
|
||||||
|
// If this file is then used with curl and the destination url is sent through zid() or manually
|
||||||
|
// manipulated to add a zid, it should allow curl to provide zot magic-auth across domains.
|
||||||
|
|
||||||
|
// Handles expiration of stale cookies currently by deleting them and rewriting the file.
|
||||||
|
|
||||||
|
class CurlAuth {
|
||||||
|
|
||||||
|
static public function run($argc,$argv) {
|
||||||
|
|
||||||
|
if($argc != 2)
|
||||||
|
killme();
|
||||||
|
|
||||||
|
\App::$session->start();
|
||||||
|
|
||||||
|
$_SESSION['authenticated'] = 1;
|
||||||
|
$_SESSION['uid'] = $argv[1];
|
||||||
|
|
||||||
|
$x = session_id();
|
||||||
|
|
||||||
|
$f = 'store/[data]/cookie_' . $argv[1];
|
||||||
|
$c = 'store/[data]/cookien_' . $argv[1];
|
||||||
|
|
||||||
|
$e = file_exists($f);
|
||||||
|
|
||||||
|
$output = '';
|
||||||
|
|
||||||
|
if($e) {
|
||||||
|
$lines = file($f);
|
||||||
|
if($lines) {
|
||||||
|
foreach($lines as $line) {
|
||||||
|
if(strlen($line) > 0 && $line[0] != '#' && substr_count($line, "\t") == 6) {
|
||||||
|
$tokens = explode("\t", $line);
|
||||||
|
$tokens = array_map('trim', $tokens);
|
||||||
|
if($tokens[4] > time()) {
|
||||||
|
$output .= $line . "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$output .= $line;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$t = time() + (24 * 3600);
|
||||||
|
file_put_contents($f, $output . 'HttpOnly_' . \App::get_hostname() . "\tFALSE\t/\tTRUE\t$t\tPHPSESSID\t" . $x, (($e) ? FILE_APPEND : 0));
|
||||||
|
|
||||||
|
file_put_contents($c,$x);
|
||||||
|
|
||||||
|
killme();
|
||||||
|
}
|
||||||
|
}
|
43
Zotlabs/Daemon/README.md
Normal file
43
Zotlabs/Daemon/README.md
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
Daemon (background) Processes
|
||||||
|
=============================
|
||||||
|
|
||||||
|
|
||||||
|
This directory provides background tasks which are executed by a
|
||||||
|
command-line process and detached from normal web processing.
|
||||||
|
|
||||||
|
Background tasks are invoked by calling
|
||||||
|
|
||||||
|
|
||||||
|
Zotlabs\Daemon\Master::Summon([ $cmd, $arg1, $argn... ]);
|
||||||
|
|
||||||
|
The Master class loads the desired command file and passes the arguments.
|
||||||
|
|
||||||
|
|
||||||
|
To create a background task 'Foo' use the following template.
|
||||||
|
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Zotlabs\Daemon;
|
||||||
|
|
||||||
|
class Foo {
|
||||||
|
|
||||||
|
static public function run($argc,$argv) {
|
||||||
|
// do something
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
The Master class "summons" the command by creating an executable script
|
||||||
|
from the provided arguments, then it invokes "Release" to execute the script
|
||||||
|
detached from web processing. This process calls the static::run() function
|
||||||
|
with any command line arguments using the traditional argc, argv format.
|
||||||
|
|
||||||
|
Please note: These are *real* $argc, $argv variables passed from the command
|
||||||
|
line, and not the parsed argc() and argv() functions/variables which were
|
||||||
|
obtained from parsing path components of the request URL by web processes.
|
||||||
|
|
||||||
|
Background processes do not emit displayable output except through logs. They
|
||||||
|
should also not make any assumptions about their HTML and web environment
|
||||||
|
(as they do not have a web environment), particularly with respect to global
|
||||||
|
variables such as $_SERVER, $_REQUEST, $_GET, $_POST, $_COOKIES, and $_SESSION.
|
||||||
|
|
@ -26,6 +26,7 @@ class SuperCurl {
|
|||||||
|
|
||||||
private $request_method = 'GET';
|
private $request_method = 'GET';
|
||||||
private $upload = false;
|
private $upload = false;
|
||||||
|
private $cookies = false;
|
||||||
|
|
||||||
|
|
||||||
private function set_data($s) {
|
private function set_data($s) {
|
||||||
@ -62,6 +63,11 @@ class SuperCurl {
|
|||||||
case 'http_auth':
|
case 'http_auth':
|
||||||
$this->auth = $v;
|
$this->auth = $v;
|
||||||
break;
|
break;
|
||||||
|
case 'magicauth':
|
||||||
|
// currently experimental
|
||||||
|
$this->magicauth = $v;
|
||||||
|
\Zotlabs\Daemon\Master::Summon([ 'CurlAuth', $v ]);
|
||||||
|
break;
|
||||||
case 'custom':
|
case 'custom':
|
||||||
$this->request_method = $v;
|
$this->request_method = $v;
|
||||||
break;
|
break;
|
||||||
@ -90,8 +96,17 @@ class SuperCurl {
|
|||||||
|
|
||||||
function exec() {
|
function exec() {
|
||||||
$opts = $this->curlopts;
|
$opts = $this->curlopts;
|
||||||
|
$url = $this->url;
|
||||||
if($this->auth)
|
if($this->auth)
|
||||||
$opts['http_auth'] = $this->auth;
|
$opts['http_auth'] = $this->auth;
|
||||||
|
if($this->magicauth) {
|
||||||
|
$opts['cookiejar'] = 'store/[data]/cookie_' . $this->magicauth;
|
||||||
|
$opts['cookiefile'] = 'store/[data]/cookie_' . $this->magicauth;
|
||||||
|
$opts['cookie'] = 'PHPSESSID=' . trim(file_get_contents('store/[data]/cookien_' . $this->magicauth));
|
||||||
|
$c = channelx_by_n($this->magicauth);
|
||||||
|
if($c)
|
||||||
|
$url = zid($this->url,$c['channel_address'] . '@' . \App::get_hostname());
|
||||||
|
}
|
||||||
if($this->custom)
|
if($this->custom)
|
||||||
$opts['custom'] = $this->custom;
|
$opts['custom'] = $this->custom;
|
||||||
if($this->headers)
|
if($this->headers)
|
||||||
|
@ -418,7 +418,7 @@ class ThreadItem {
|
|||||||
if(($nb_children > $visible_comments) || ($thread_level > 1)) {
|
if(($nb_children > $visible_comments) || ($thread_level > 1)) {
|
||||||
$result['children'][0]['comment_firstcollapsed'] = true;
|
$result['children'][0]['comment_firstcollapsed'] = true;
|
||||||
$result['children'][0]['num_comments'] = $comment_count_txt;
|
$result['children'][0]['num_comments'] = $comment_count_txt;
|
||||||
$result['children'][0]['hide_text'] = t('[+] show all');
|
$result['children'][0]['hide_text'] = sprintf( t('%s show all'), '<i class="fa fa-chevron-down"></i>');
|
||||||
if($thread_level > 1) {
|
if($thread_level > 1) {
|
||||||
$result['children'][$nb_children - 1]['comment_lastcollapsed'] = true;
|
$result['children'][$nb_children - 1]['comment_lastcollapsed'] = true;
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ class Achievements extends \Zotlabs\Web\Controller {
|
|||||||
|
|
||||||
$profile = 0;
|
$profile = 0;
|
||||||
$profile = argv(1);
|
$profile = argv(1);
|
||||||
profile_load($a,$which,$profile);
|
profile_load($which,$profile);
|
||||||
|
|
||||||
$r = q("select channel_id from channel where channel_address = '%s'",
|
$r = q("select channel_id from channel where channel_address = '%s'",
|
||||||
dbesc($which)
|
dbesc($which)
|
||||||
|
@ -12,7 +12,7 @@ class Block extends \Zotlabs\Web\Controller {
|
|||||||
|
|
||||||
$which = argv(1);
|
$which = argv(1);
|
||||||
$profile = 0;
|
$profile = 0;
|
||||||
profile_load($a,$which,$profile);
|
profile_load($which,$profile);
|
||||||
|
|
||||||
if(\App::$profile['profile_uid'])
|
if(\App::$profile['profile_uid'])
|
||||||
head_set_icon(\App::$profile['thumb']);
|
head_set_icon(\App::$profile['thumb']);
|
||||||
|
@ -22,7 +22,7 @@ class Blocks extends \Zotlabs\Web\Controller {
|
|||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
|
|
||||||
profile_load($a,$which);
|
profile_load($which);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ class Cal extends \Zotlabs\Web\Controller {
|
|||||||
if(argc() > 1) {
|
if(argc() > 1) {
|
||||||
$nick = argv(1);
|
$nick = argv(1);
|
||||||
|
|
||||||
profile_load($a,$nick);
|
profile_load($nick);
|
||||||
|
|
||||||
$channelx = channelx_by_nick($nick);
|
$channelx = channelx_by_nick($nick);
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ class Channel extends \Zotlabs\Web\Controller {
|
|||||||
// Run profile_load() here to make sure the theme is set before
|
// Run profile_load() here to make sure the theme is set before
|
||||||
// we start loading content
|
// we start loading content
|
||||||
|
|
||||||
profile_load($a,$which,$profile);
|
profile_load($which,$profile);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ class Chat extends \Zotlabs\Web\Controller {
|
|||||||
// Run profile_load() here to make sure the theme is set before
|
// Run profile_load() here to make sure the theme is set before
|
||||||
// we start loading content
|
// we start loading content
|
||||||
|
|
||||||
profile_load($a,$which,$profile);
|
profile_load($which,$profile);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ class Cloud extends \Zotlabs\Web\Controller {
|
|||||||
\App::$page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . z_root() . '/feed/' . $which . '" />' . "\r\n";
|
\App::$page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . z_root() . '/feed/' . $which . '" />' . "\r\n";
|
||||||
|
|
||||||
if ($which)
|
if ($which)
|
||||||
profile_load($a, $which, $profile);
|
profile_load( $which, $profile);
|
||||||
|
|
||||||
$auth = new \Zotlabs\Storage\BasicAuth();
|
$auth = new \Zotlabs\Storage\BasicAuth();
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ class Common extends \Zotlabs\Web\Controller {
|
|||||||
);
|
);
|
||||||
|
|
||||||
if($x)
|
if($x)
|
||||||
profile_load($a,$x[0]['channel_address'],0);
|
profile_load($x[0]['channel_address'],0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ class Connect extends \Zotlabs\Web\Controller {
|
|||||||
if($r)
|
if($r)
|
||||||
\App::$data['channel'] = $r[0];
|
\App::$data['channel'] = $r[0];
|
||||||
|
|
||||||
profile_load($a,$which,'');
|
profile_load($which,'');
|
||||||
}
|
}
|
||||||
|
|
||||||
function post() {
|
function post() {
|
||||||
|
@ -433,7 +433,7 @@ class Connedit extends \Zotlabs\Web\Controller {
|
|||||||
else {
|
else {
|
||||||
|
|
||||||
// if you are on a different network we'll force a refresh of the connection basic info
|
// if you are on a different network we'll force a refresh of the connection basic info
|
||||||
Zotlabs\Daemon\Master::Summon(array('Notifier','permission_update',$contact_id));
|
\Zotlabs\Daemon\Master::Summon(array('Notifier','permission_update',$contact_id));
|
||||||
}
|
}
|
||||||
goaway(z_root() . '/connedit/' . $contact_id);
|
goaway(z_root() . '/connedit/' . $contact_id);
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ class Cover_photo extends \Zotlabs\Web\Controller {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$channel = \App::get_channel();
|
$channel = \App::get_channel();
|
||||||
profile_load($a,$channel['channel_address']);
|
profile_load($channel['channel_address']);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -50,7 +50,7 @@ class Cover_photo extends \Zotlabs\Web\Controller {
|
|||||||
|
|
||||||
check_form_security_token_redirectOnErr('/cover_photo', 'cover_photo');
|
check_form_security_token_redirectOnErr('/cover_photo', 'cover_photo');
|
||||||
|
|
||||||
if((x($_POST,'cropfinal')) && ($_POST['cropfinal'] == 1)) {
|
if((array_key_exists('cropfinal',$_POST)) && ($_POST['cropfinal'] == 1)) {
|
||||||
|
|
||||||
// phase 2 - we have finished cropping
|
// phase 2 - we have finished cropping
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ class Dav extends \Zotlabs\Web\Controller {
|
|||||||
\App::$page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . z_root() . '/feed/' . $which . '" />' . "\r\n";
|
\App::$page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . z_root() . '/feed/' . $which . '" />' . "\r\n";
|
||||||
|
|
||||||
if ($which)
|
if ($which)
|
||||||
profile_load($a, $which, $profile);
|
profile_load( $which, $profile);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,7 +16,24 @@ class Dreport extends \Zotlabs\Web\Controller {
|
|||||||
$channel = \App::get_channel();
|
$channel = \App::get_channel();
|
||||||
|
|
||||||
$mid = ((argc() > 1) ? argv(1) : '');
|
$mid = ((argc() > 1) ? argv(1) : '');
|
||||||
|
|
||||||
|
if($mid === 'push') {
|
||||||
|
$table = 'push';
|
||||||
|
$mid = ((argc() > 2) ? argv(2) : '');
|
||||||
|
if($mid) {
|
||||||
|
$i = q("select id from item where mid = '%s' and author_xchan = '%s' and uid = %d",
|
||||||
|
dbesc($mid),
|
||||||
|
dbesc($channel['channel_hash']),
|
||||||
|
intval($channel['channel_id'])
|
||||||
|
);
|
||||||
|
if($i) {
|
||||||
|
\Zotlabs\Daemon\Master::Summon([ 'Notifier', 'edit_post', $i[0]['id'] ]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sleep(3);
|
||||||
|
goaway(z_root() . '/dreport/' . urlencode($mid));
|
||||||
|
}
|
||||||
|
|
||||||
if($mid === 'mail') {
|
if($mid === 'mail') {
|
||||||
$table = 'mail';
|
$table = 'mail';
|
||||||
$mid = ((argc() > 2) ? argv(2) : '');
|
$mid = ((argc() > 2) ? argv(2) : '');
|
||||||
@ -59,11 +76,7 @@ class Dreport extends \Zotlabs\Web\Controller {
|
|||||||
notice( t('no results') . EOL);
|
notice( t('no results') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$o .= '<div class="generic-content-wrapper-styled">';
|
|
||||||
$o .= '<h2>' . sprintf( t('Delivery report for %1$s'),substr($mid,0,32)) . '...' . '</h2>';
|
|
||||||
$o .= '<table>';
|
|
||||||
|
|
||||||
for($x = 0; $x < count($r); $x++ ) {
|
for($x = 0; $x < count($r); $x++ ) {
|
||||||
$r[$x]['name'] = escape_tags(substr($r[$x]['dreport_recip'],strpos($r[$x]['dreport_recip'],' ')));
|
$r[$x]['name'] = escape_tags(substr($r[$x]['dreport_recip'],strpos($r[$x]['dreport_recip'],' ')));
|
||||||
|
|
||||||
@ -119,13 +132,24 @@ class Dreport extends \Zotlabs\Web\Controller {
|
|||||||
}
|
}
|
||||||
|
|
||||||
usort($r,'self::dreport_gravity_sort');
|
usort($r,'self::dreport_gravity_sort');
|
||||||
|
|
||||||
|
$entries = array();
|
||||||
foreach($r as $rr) {
|
foreach($r as $rr) {
|
||||||
$o .= '<tr><td width="40%">' . $rr['name'] . '</td><td width="20%">' . escape_tags($rr['dreport_result']) . '</td><td width="20%">' . escape_tags($rr['dreport_time']) . '</td></tr>';
|
$entries[] = [
|
||||||
|
'name' => $rr['name'],
|
||||||
|
'result' => escape_tags($rr['dreport_result']),
|
||||||
|
'time' => escape_tags(datetime_convert('UTC',date_default_timezone_get(),$rr['dreport_time']))
|
||||||
|
];
|
||||||
}
|
}
|
||||||
$o .= '</table>';
|
|
||||||
$o .= '</div>';
|
$o = replace_macros(get_markup_template('dreport.tpl'), array(
|
||||||
|
'$title' => sprintf( t('Delivery report for %1$s'),substr($mid,0,32)) . '...',
|
||||||
|
'$table' => $table,
|
||||||
|
'$mid' => urlencode($mid),
|
||||||
|
'$push' => t('Redeliver'),
|
||||||
|
'$entries' => $entries
|
||||||
|
));
|
||||||
|
|
||||||
|
|
||||||
return $o;
|
return $o;
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ class Editblock extends \Zotlabs\Web\Controller {
|
|||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
|
|
||||||
profile_load($a,$which);
|
profile_load($which);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ class Editlayout extends \Zotlabs\Web\Controller {
|
|||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
|
|
||||||
profile_load($a,$which);
|
profile_load($which);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ class Editwebpage extends \Zotlabs\Web\Controller {
|
|||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
|
|
||||||
profile_load($a,$which);
|
profile_load($which);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ class Hcard extends \Zotlabs\Web\Controller {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
profile_load($a,$which,$profile);
|
profile_load($which,$profile);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -57,7 +57,7 @@ class Id extends \Zotlabs\Web\Controller {
|
|||||||
|
|
||||||
$profile = '';
|
$profile = '';
|
||||||
$channel = \App::get_channel();
|
$channel = \App::get_channel();
|
||||||
profile_load($a,$which,$profile);
|
profile_load($which,$profile);
|
||||||
|
|
||||||
$op = new MysqlProvider;
|
$op = new MysqlProvider;
|
||||||
$op->server();
|
$op->server();
|
||||||
|
@ -21,7 +21,7 @@ class Layouts extends \Zotlabs\Web\Controller {
|
|||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
|
|
||||||
profile_load($a,$which);
|
profile_load($which);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ class New_channel extends \Zotlabs\Web\Controller {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function post() {
|
function post() {
|
||||||
|
|
||||||
$arr = $_POST;
|
$arr = $_POST;
|
||||||
|
|
||||||
@ -96,7 +96,7 @@ class New_channel extends \Zotlabs\Web\Controller {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function get() {
|
function get() {
|
||||||
|
|
||||||
$acc = \App::get_account();
|
$acc = \App::get_account();
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ class Page extends \Zotlabs\Web\Controller {
|
|||||||
|
|
||||||
$which = argv(1);
|
$which = argv(1);
|
||||||
$profile = 0;
|
$profile = 0;
|
||||||
profile_load($a,$which,$profile);
|
profile_load($which,$profile);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
namespace Zotlabs\Module;
|
namespace Zotlabs\Module;
|
||||||
|
|
||||||
require_once('include/security.php');
|
require_once('include/security.php');
|
||||||
|
require_once('include/attach.php');
|
||||||
require_once('include/photo/photo_driver.php');
|
require_once('include/photo/photo_driver.php');
|
||||||
|
|
||||||
|
|
||||||
@ -10,6 +11,8 @@ class Photo extends \Zotlabs\Web\Controller {
|
|||||||
function init() {
|
function init() {
|
||||||
|
|
||||||
$prvcachecontrol = false;
|
$prvcachecontrol = false;
|
||||||
|
$streaming = null;
|
||||||
|
$channel = null;
|
||||||
|
|
||||||
switch(argc()) {
|
switch(argc()) {
|
||||||
case 4:
|
case 4:
|
||||||
@ -131,6 +134,8 @@ class Photo extends \Zotlabs\Web\Controller {
|
|||||||
|
|
||||||
$sql_extra = permissions_sql($r[0]['uid']);
|
$sql_extra = permissions_sql($r[0]['uid']);
|
||||||
|
|
||||||
|
$channel = channelx_by_n($r[0]['uid']);
|
||||||
|
|
||||||
// Now we'll see if we can access the photo
|
// Now we'll see if we can access the photo
|
||||||
|
|
||||||
$r = q("SELECT * FROM photo WHERE resource_id = '%s' AND imgscale = %d $sql_extra LIMIT 1",
|
$r = q("SELECT * FROM photo WHERE resource_id = '%s' AND imgscale = %d $sql_extra LIMIT 1",
|
||||||
@ -141,8 +146,9 @@ class Photo extends \Zotlabs\Web\Controller {
|
|||||||
if($r && $allowed) {
|
if($r && $allowed) {
|
||||||
$data = dbunescbin($r[0]['content']);
|
$data = dbunescbin($r[0]['content']);
|
||||||
$mimetype = $r[0]['mimetype'];
|
$mimetype = $r[0]['mimetype'];
|
||||||
if(intval($r[0]['os_storage']))
|
if(intval($r[0]['os_storage'])) {
|
||||||
$data = file_get_contents($data);
|
$streaming = $data;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
@ -242,7 +248,25 @@ class Photo extends \Zotlabs\Web\Controller {
|
|||||||
header("Cache-Control: max-age=" . $cache);
|
header("Cache-Control: max-age=" . $cache);
|
||||||
|
|
||||||
}
|
}
|
||||||
echo $data;
|
|
||||||
|
// If it's a file resource, stream it.
|
||||||
|
|
||||||
|
if($streaming && $channel) {
|
||||||
|
if(strpos($streaming,'store') !== false)
|
||||||
|
$istream = fopen($streaming,'rb');
|
||||||
|
else
|
||||||
|
$istream = fopen('store/' . $channel['channel_address'] . '/' . $streaming,'rb');
|
||||||
|
$ostream = fopen('php://output','wb');
|
||||||
|
if($istream && $ostream) {
|
||||||
|
pipe_streams($istream,$ostream);
|
||||||
|
fclose($istream);
|
||||||
|
fclose($ostream);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo $data;
|
||||||
|
}
|
||||||
|
|
||||||
killme();
|
killme();
|
||||||
// NOTREACHED
|
// NOTREACHED
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ class Photos extends \Zotlabs\Web\Controller {
|
|||||||
if(argc() > 1) {
|
if(argc() > 1) {
|
||||||
$nick = argv(1);
|
$nick = argv(1);
|
||||||
|
|
||||||
profile_load($a,$nick);
|
profile_load($nick);
|
||||||
|
|
||||||
$channelx = channelx_by_nick($nick);
|
$channelx = channelx_by_nick($nick);
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ class Profile extends \Zotlabs\Web\Controller {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
profile_load($a,$which,$profile);
|
profile_load($which,$profile);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ class Profile_photo extends \Zotlabs\Web\Controller {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$channel = \App::get_channel();
|
$channel = \App::get_channel();
|
||||||
profile_load($a,$channel['channel_address']);
|
profile_load($channel['channel_address']);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,7 +53,7 @@ class Profile_photo extends \Zotlabs\Web\Controller {
|
|||||||
|
|
||||||
check_form_security_token_redirectOnErr('/profile_photo', 'profile_photo');
|
check_form_security_token_redirectOnErr('/profile_photo', 'profile_photo');
|
||||||
|
|
||||||
if((array_key_exists('postfinal',$_POST)) && (intval($_POST['cropfinal']) == 1)) {
|
if((array_key_exists('cropfinal',$_POST)) && (intval($_POST['cropfinal']) == 1)) {
|
||||||
|
|
||||||
// phase 2 - we have finished cropping
|
// phase 2 - we have finished cropping
|
||||||
|
|
||||||
@ -90,12 +90,11 @@ class Profile_photo extends \Zotlabs\Web\Controller {
|
|||||||
$srcY = $_POST['ystart'];
|
$srcY = $_POST['ystart'];
|
||||||
$srcW = $_POST['xfinal'] - $srcX;
|
$srcW = $_POST['xfinal'] - $srcX;
|
||||||
$srcH = $_POST['yfinal'] - $srcY;
|
$srcH = $_POST['yfinal'] - $srcY;
|
||||||
|
|
||||||
$r = q("SELECT * FROM photo WHERE resource_id = '%s' AND uid = %d AND imgscale = %d LIMIT 1",
|
$r = q("SELECT * FROM photo WHERE resource_id = '%s' AND uid = %d AND imgscale = %d LIMIT 1",
|
||||||
dbesc($image_id),
|
dbesc($image_id),
|
||||||
dbesc(local_channel()),
|
dbesc(local_channel()),
|
||||||
intval($scale));
|
intval($scale));
|
||||||
|
|
||||||
if($r) {
|
if($r) {
|
||||||
|
|
||||||
$base_image = $r[0];
|
$base_image = $r[0];
|
||||||
|
@ -193,7 +193,7 @@ class Profiles extends \Zotlabs\Web\Controller {
|
|||||||
|
|
||||||
$chan = \App::get_channel();
|
$chan = \App::get_channel();
|
||||||
|
|
||||||
profile_load($a,$chan['channel_address'],$r[0]['id']);
|
profile_load($chan['channel_address'],$r[0]['id']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -584,7 +584,7 @@ class Profiles extends \Zotlabs\Web\Controller {
|
|||||||
|
|
||||||
if($is_default) {
|
if($is_default) {
|
||||||
// reload the info for the sidebar widget - why does this not work?
|
// reload the info for the sidebar widget - why does this not work?
|
||||||
profile_load($a,$channel['channel_address']);
|
profile_load($channel['channel_address']);
|
||||||
\Zotlabs\Daemon\Master::Summon(array('Directory',local_channel()));
|
\Zotlabs\Daemon\Master::Summon(array('Directory',local_channel()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ class Profperm extends \Zotlabs\Web\Controller {
|
|||||||
|
|
||||||
$profile = \App::$argv[1];
|
$profile = \App::$argv[1];
|
||||||
|
|
||||||
profile_load($a,$which,$profile);
|
profile_load($which,$profile);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -259,7 +259,8 @@ class Register extends \Zotlabs\Web\Controller {
|
|||||||
'$email' => $email,
|
'$email' => $email,
|
||||||
'$pass1' => $password,
|
'$pass1' => $password,
|
||||||
'$pass2' => $password2,
|
'$pass2' => $password2,
|
||||||
'$submit' => ((UNO || $auto_create || $registration_is) ? t('Register') : t('Proceed to create your first channel'))
|
'$submit' => t('Register'),
|
||||||
|
'$verify_note' => t('This site may require email verification after submitting this form. If you are returned to a login page, please check your email for instructions.')
|
||||||
));
|
));
|
||||||
|
|
||||||
return $o;
|
return $o;
|
||||||
|
@ -596,7 +596,7 @@ class Setup extends \Zotlabs\Web\Controller {
|
|||||||
|
|
||||||
if(! is_writable('store')) {
|
if(! is_writable('store')) {
|
||||||
$status = false;
|
$status = false;
|
||||||
$help = t('Red uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder') . EOL;
|
$help = t('This software uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the Red top level folder') . EOL;
|
||||||
$help .= t('Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder.').EOL;
|
$help .= t('Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder.').EOL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -639,6 +639,9 @@ class Setup extends \Zotlabs\Web\Controller {
|
|||||||
$help .= t('If your certificate is not recognized, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues.') . EOL;
|
$help .= t('If your certificate is not recognized, members of other sites (who may themselves have valid certificates) will get a warning message on their own site complaining about security issues.') . EOL;
|
||||||
$help .= t('This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement.') .EOL;
|
$help .= t('This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement.') .EOL;
|
||||||
$help .= t('Providers are available that issue free certificates which are browser-valid.'). EOL;
|
$help .= t('Providers are available that issue free certificates which are browser-valid.'). EOL;
|
||||||
|
|
||||||
|
$help .= t('If you are confident that the certificate is valid and signed by a trusted authority, check to see if you have failed to install an intermediate cert. These are not normally required by browsers, but are required for server-to-server communications.') . EOL;
|
||||||
|
|
||||||
|
|
||||||
$this->check_add($checks, t('SSL certificate validation'), false, true, $help);
|
$this->check_add($checks, t('SSL certificate validation'), false, true, $help);
|
||||||
}
|
}
|
||||||
@ -695,6 +698,7 @@ class Setup extends \Zotlabs\Web\Controller {
|
|||||||
// install the standard theme
|
// install the standard theme
|
||||||
set_config('system', 'allowed_themes', 'redbasic');
|
set_config('system', 'allowed_themes', 'redbasic');
|
||||||
|
|
||||||
|
|
||||||
// Set a lenient list of ciphers if using openssl. Other ssl engines
|
// Set a lenient list of ciphers if using openssl. Other ssl engines
|
||||||
// (e.g. NSS used in RedHat) require different syntax, so hopefully
|
// (e.g. NSS used in RedHat) require different syntax, so hopefully
|
||||||
// the default curl cipher list will work for most sites. If not,
|
// the default curl cipher list will work for most sites. If not,
|
||||||
@ -704,7 +708,9 @@ class Setup extends \Zotlabs\Web\Controller {
|
|||||||
// z_fetch_url() is also used to import shared links and other content
|
// z_fetch_url() is also used to import shared links and other content
|
||||||
// so in theory most any cipher could show up and we should do our best
|
// so in theory most any cipher could show up and we should do our best
|
||||||
// to make the content available rather than tell folks that there's a
|
// to make the content available rather than tell folks that there's a
|
||||||
// weird SSL error which they can't do anything about.
|
// weird SSL error which they can't do anything about. This does not affect
|
||||||
|
// the SSL server, but is only a client negotiation to find something workable.
|
||||||
|
// Hence it will not make your system susceptible to POODL or other nasties.
|
||||||
|
|
||||||
$x = curl_version();
|
$x = curl_version();
|
||||||
if(stristr($x['ssl_version'],'openssl'))
|
if(stristr($x['ssl_version'],'openssl'))
|
||||||
|
@ -10,8 +10,11 @@ class Viewconnections extends \Zotlabs\Web\Controller {
|
|||||||
if(observer_prohibited()) {
|
if(observer_prohibited()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(argc() > 1)
|
|
||||||
profile_load($a,argv(1));
|
if(argc() > 1) {
|
||||||
|
profile_load(argv(1));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function get() {
|
function get() {
|
||||||
|
@ -23,7 +23,7 @@ class Webpages extends \Zotlabs\Web\Controller {
|
|||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
|
|
||||||
profile_load($a,$which);
|
profile_load($which);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,11 +20,23 @@ class Wiki extends \Zotlabs\Web\Controller {
|
|||||||
notice(t('You must be logged in to see this page.') . EOL);
|
notice(t('You must be logged in to see this page.') . EOL);
|
||||||
goaway('/login');
|
goaway('/login');
|
||||||
}
|
}
|
||||||
|
profile_load($nick);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function get() {
|
function get() {
|
||||||
|
|
||||||
|
if(observer_prohibited(true)) {
|
||||||
|
return login();
|
||||||
|
}
|
||||||
|
|
||||||
|
$tab = 'wiki';
|
||||||
|
|
||||||
|
|
||||||
require_once('include/wiki.php');
|
require_once('include/wiki.php');
|
||||||
require_once('include/acl_selectors.php');
|
require_once('include/acl_selectors.php');
|
||||||
|
require_once('include/conversation.php');
|
||||||
|
|
||||||
// TODO: Combine the interface configuration into a unified object
|
// TODO: Combine the interface configuration into a unified object
|
||||||
// Something like $interface = array('new_page_button' => false, 'new_wiki_button' => false, ...)
|
// Something like $interface = array('new_page_button' => false, 'new_wiki_button' => false, ...)
|
||||||
$wiki_owner = false;
|
$wiki_owner = false;
|
||||||
@ -74,7 +86,9 @@ class Wiki extends \Zotlabs\Web\Controller {
|
|||||||
// Configure page template
|
// Configure page template
|
||||||
$wikiheaderName = t('Wiki');
|
$wikiheaderName = t('Wiki');
|
||||||
$wikiheaderPage = t('Sandbox');
|
$wikiheaderPage = t('Sandbox');
|
||||||
$content = '"# Wiki Sandbox\n\nContent you **edit** and **preview** here *will not be saved*."';
|
require_once('library/markdown.php');
|
||||||
|
$content = t('"# Wiki Sandbox\n\nContent you **edit** and **preview** here *will not be saved*."');
|
||||||
|
$renderedContent = Markdown(json_decode($content));
|
||||||
$hide_editor = false;
|
$hide_editor = false;
|
||||||
$showPageControls = false;
|
$showPageControls = false;
|
||||||
$showNewWikiButton = $wiki_owner;
|
$showNewWikiButton = $wiki_owner;
|
||||||
@ -121,7 +135,10 @@ class Wiki extends \Zotlabs\Web\Controller {
|
|||||||
notice('Error retrieving page content' . EOL);
|
notice('Error retrieving page content' . EOL);
|
||||||
goaway('/'.argv(0).'/'.argv(1).'/'.$wikiUrlName);
|
goaway('/'.argv(0).'/'.argv(1).'/'.$wikiUrlName);
|
||||||
}
|
}
|
||||||
$content = ($p['content'] !== '' ? $p['content'] : '"# New page\n"');
|
$content = ($p['content'] !== '' ? htmlspecialchars_decode($p['content'],ENT_COMPAT) : '"# New page\n"');
|
||||||
|
// Render the Markdown-formatted page content in HTML
|
||||||
|
require_once('library/markdown.php');
|
||||||
|
$renderedContent = wiki_convert_links(Markdown(json_decode($content)),argv(0).'/'.argv(1).'/'.$wikiUrlName);
|
||||||
$hide_editor = false;
|
$hide_editor = false;
|
||||||
$showPageControls = $wiki_editor;
|
$showPageControls = $wiki_editor;
|
||||||
$showNewWikiButton = $wiki_owner;
|
$showNewWikiButton = $wiki_owner;
|
||||||
@ -133,8 +150,6 @@ class Wiki extends \Zotlabs\Web\Controller {
|
|||||||
default: // Strip the extraneous URL components
|
default: // Strip the extraneous URL components
|
||||||
goaway('/'.argv(0).'/'.argv(1).'/'.$wikiUrlName.'/'.$pageUrlName);
|
goaway('/'.argv(0).'/'.argv(1).'/'.$wikiUrlName.'/'.$pageUrlName);
|
||||||
}
|
}
|
||||||
// Render the Markdown-formatted page content in HTML
|
|
||||||
require_once('library/markdown.php');
|
|
||||||
|
|
||||||
$wikiModalID = random_string(3);
|
$wikiModalID = random_string(3);
|
||||||
$wikiModal = replace_macros(
|
$wikiModal = replace_macros(
|
||||||
@ -145,7 +160,12 @@ class Wiki extends \Zotlabs\Web\Controller {
|
|||||||
'$cancel' => t('Cancel')
|
'$cancel' => t('Cancel')
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$is_owner = ((local_channel()) && (local_channel() == \App::$profile['profile_uid']) ? true : false);
|
||||||
|
|
||||||
|
$o .= profile_tabs($a, $is_owner, \App::$profile['channel_address']);
|
||||||
|
|
||||||
|
|
||||||
$o .= replace_macros(get_markup_template('wiki.tpl'),array(
|
$o .= replace_macros(get_markup_template('wiki.tpl'),array(
|
||||||
'$wikiheaderName' => $wikiheaderName,
|
'$wikiheaderName' => $wikiheaderName,
|
||||||
'$wikiheaderPage' => $wikiheaderPage,
|
'$wikiheaderPage' => $wikiheaderPage,
|
||||||
@ -162,7 +182,7 @@ class Wiki extends \Zotlabs\Web\Controller {
|
|||||||
'$acl' => $x['acl'],
|
'$acl' => $x['acl'],
|
||||||
'$bang' => $x['bang'],
|
'$bang' => $x['bang'],
|
||||||
'$content' => $content,
|
'$content' => $content,
|
||||||
'$renderedContent' => Markdown(json_decode($content)),
|
'$renderedContent' => $renderedContent,
|
||||||
'$wikiName' => array('wikiName', t('Enter the name of your new wiki:'), '', ''),
|
'$wikiName' => array('wikiName', t('Enter the name of your new wiki:'), '', ''),
|
||||||
'$pageName' => array('pageName', t('Enter the name of the new page:'), '', ''),
|
'$pageName' => array('pageName', t('Enter the name of the new page:'), '', ''),
|
||||||
'$pageRename' => array('pageRename', t('Enter the new name:'), '', ''),
|
'$pageRename' => array('pageRename', t('Enter the new name:'), '', ''),
|
||||||
@ -170,7 +190,17 @@ class Wiki extends \Zotlabs\Web\Controller {
|
|||||||
'$pageHistory' => $pageHistory['history'],
|
'$pageHistory' => $pageHistory['history'],
|
||||||
'$wikiModal' => $wikiModal,
|
'$wikiModal' => $wikiModal,
|
||||||
'$wikiModalID' => $wikiModalID,
|
'$wikiModalID' => $wikiModalID,
|
||||||
'$commit' => 'HEAD'
|
'$commit' => 'HEAD',
|
||||||
|
'$embedPhotos' => t('Embed image from photo albums'),
|
||||||
|
'$embedPhotosModalTitle' => t('Embed an image from your albums'),
|
||||||
|
'$embedPhotosModalCancel' => t('Cancel'),
|
||||||
|
'$embedPhotosModalOK' => t('OK'),
|
||||||
|
'$modalchooseimages' => t('Choose images to embed'),
|
||||||
|
'$modalchoosealbum' => t('Choose an album'),
|
||||||
|
'$modaldiffalbum' => t('Choose a different album...'),
|
||||||
|
'$modalerrorlist' => t('Error getting album list'),
|
||||||
|
'$modalerrorlink' => t('Error getting photo link'),
|
||||||
|
'$modalerroralbum' => t('Error getting album'),
|
||||||
));
|
));
|
||||||
head_add_js('library/ace/ace.js'); // Ace Code Editor
|
head_add_js('library/ace/ace.js'); // Ace Code Editor
|
||||||
return $o;
|
return $o;
|
||||||
@ -183,8 +213,12 @@ class Wiki extends \Zotlabs\Web\Controller {
|
|||||||
// Render mardown-formatted text in HTML for preview
|
// Render mardown-formatted text in HTML for preview
|
||||||
if((argc() > 2) && (argv(2) === 'preview')) {
|
if((argc() > 2) && (argv(2) === 'preview')) {
|
||||||
$content = $_POST['content'];
|
$content = $_POST['content'];
|
||||||
|
$resource_id = $_POST['resource_id'];
|
||||||
require_once('library/markdown.php');
|
require_once('library/markdown.php');
|
||||||
$html = purify_html(Markdown($content));
|
$html = purify_html(Markdown($content));
|
||||||
|
$w = wiki_get_wiki($resource_id);
|
||||||
|
$wikiURL = argv(0).'/'.argv(1).'/'.$w['urlName'];
|
||||||
|
$html = wiki_convert_links($html,$wikiURL);
|
||||||
json_return_and_die(array('html' => $html, 'success' => true));
|
json_return_and_die(array('html' => $html, 'success' => true));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -202,6 +236,7 @@ class Wiki extends \Zotlabs\Web\Controller {
|
|||||||
}
|
}
|
||||||
$wiki = array();
|
$wiki = array();
|
||||||
// Generate new wiki info from input name
|
// Generate new wiki info from input name
|
||||||
|
$wiki['postVisible'] = ((intval($_POST['postVisible']) === 0) ? 0 : 1);
|
||||||
$wiki['rawName'] = $_POST['wikiName'];
|
$wiki['rawName'] = $_POST['wikiName'];
|
||||||
$wiki['htmlName'] = escape_tags($_POST['wikiName']);
|
$wiki['htmlName'] = escape_tags($_POST['wikiName']);
|
||||||
$wiki['urlName'] = urlencode($_POST['wikiName']);
|
$wiki['urlName'] = urlencode($_POST['wikiName']);
|
||||||
@ -235,20 +270,7 @@ class Wiki extends \Zotlabs\Web\Controller {
|
|||||||
if (local_channel() !== intval($channel['channel_id'])) {
|
if (local_channel() !== intval($channel['channel_id'])) {
|
||||||
logger('Wiki delete permission denied.' . EOL);
|
logger('Wiki delete permission denied.' . EOL);
|
||||||
json_return_and_die(array('message' => 'Wiki delete permission denied.', 'success' => false));
|
json_return_and_die(array('message' => 'Wiki delete permission denied.', 'success' => false));
|
||||||
} else {
|
}
|
||||||
/*
|
|
||||||
$channel = get_channel_by_nick($nick);
|
|
||||||
$observer_hash = get_observer_hash();
|
|
||||||
// Figure out who the page owner is.
|
|
||||||
$perms = get_all_perms(intval($channel['channel_id']), $observer_hash);
|
|
||||||
// TODO: Create a new permission setting for wiki analogous to webpages. Until
|
|
||||||
// then, use webpage permissions
|
|
||||||
if (!$perms['write_pages']) {
|
|
||||||
logger('Wiki delete permission denied.' . EOL);
|
|
||||||
json_return_and_die(array('success' => false));
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
$resource_id = $_POST['resource_id'];
|
$resource_id = $_POST['resource_id'];
|
||||||
$deleted = wiki_delete_wiki($resource_id);
|
$deleted = wiki_delete_wiki($resource_id);
|
||||||
if ($deleted['success']) {
|
if ($deleted['success']) {
|
||||||
@ -482,7 +504,6 @@ class Wiki extends \Zotlabs\Web\Controller {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$renamed = wiki_rename_page(array('resource_id' => $resource_id, 'pageUrlName' => $pageUrlName, 'pageNewName' => $pageNewName));
|
$renamed = wiki_rename_page(array('resource_id' => $resource_id, 'pageUrlName' => $pageUrlName, 'pageNewName' => $pageNewName));
|
||||||
logger('$renamed: ' . json_encode($renamed));
|
|
||||||
if($renamed['success']) {
|
if($renamed['success']) {
|
||||||
$ob = \App::get_observer();
|
$ob = \App::get_observer();
|
||||||
$commit = wiki_git_commit(array(
|
$commit = wiki_git_commit(array(
|
||||||
|
@ -219,7 +219,7 @@ class Browser extends DAV\Browser\Plugin {
|
|||||||
|
|
||||||
$output = '';
|
$output = '';
|
||||||
if ($this->enablePost) {
|
if ($this->enablePost) {
|
||||||
$this->server->emit('onHTMLActionsPanel', array($parent, &$output));
|
$this->server->emit('onHTMLActionsPanel', array($parent, &$output, $path));
|
||||||
}
|
}
|
||||||
|
|
||||||
$html .= replace_macros(get_markup_template('cloud.tpl'), array(
|
$html .= replace_macros(get_markup_template('cloud.tpl'), array(
|
||||||
@ -266,7 +266,7 @@ class Browser extends DAV\Browser\Plugin {
|
|||||||
* @param \Sabre\DAV\INode $node
|
* @param \Sabre\DAV\INode $node
|
||||||
* @param string &$output
|
* @param string &$output
|
||||||
*/
|
*/
|
||||||
public function htmlActionsPanel(DAV\INode $node, &$output) {
|
public function htmlActionsPanel(DAV\INode $node, &$output, $path) {
|
||||||
if (! $node instanceof DAV\ICollection)
|
if (! $node instanceof DAV\ICollection)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
[h2]Documentation for Hub Administrators[/h2]
|
[h2]Documentation for Hub Administrators[/h2]
|
||||||
|
[h3]Deploying your hub[/h3]
|
||||||
[h3]Administrators[/h3]
|
|
||||||
|
|
||||||
[zrl=[baseurl]/help/install]Install[/zrl]
|
[zrl=[baseurl]/help/install]Install[/zrl]
|
||||||
[zrl=[baseurl]/help/red2pi]Installing $Projectname on the Raspberry Pi[/zrl]
|
[zrl=[baseurl]/help/red2pi]Installing $Projectname on the Raspberry Pi[/zrl]
|
||||||
[zrl=[baseurl]/help/Hubzilla_on_OpenShift]$Projectname on OpenShift[/zrl]
|
[zrl=[baseurl]/help/Hubzilla_on_OpenShift]$Projectname on OpenShift[/zrl]
|
||||||
|
[h3]Taking care of your hub[/h3]
|
||||||
[zrl=[baseurl]/help/troubleshooting]Troubleshooting Tips[/zrl]
|
[zrl=[baseurl]/help/troubleshooting]Troubleshooting Tips[/zrl]
|
||||||
|
[zrl=[baseurl]/help/theme_management]Theme Management[/zrl]
|
||||||
[zrl=[baseurl]/help/hidden_configs]Tweaking $Projectname's Hidden Configurations[/zrl]
|
[zrl=[baseurl]/help/hidden_configs]Tweaking $Projectname's Hidden Configurations[/zrl]
|
||||||
[zrl=[baseurl]/help/faq_admins]FAQ For Admins[/zrl]
|
|
||||||
[zrl=[baseurl]/help/service_classes]Service Classes[/zrl]
|
[zrl=[baseurl]/help/service_classes]Service Classes[/zrl]
|
||||||
[zrl=[baseurl]/help/directories]Working with and configuring Directories[/zrl]
|
[zrl=[baseurl]/help/directories]Working with and configuring Directories[/zrl]
|
||||||
[zrl=[baseurl]/help/theme_management]Theme Management[/zrl]
|
[h3]Frequently asked questions[/h3]
|
||||||
|
[zrl=[baseurl]/help/faq_admins]FAQ For Admins[/zrl]
|
||||||
|
|
||||||
|
#include doc/macros/main_footer.bb;
|
||||||
|
@ -1,19 +1,23 @@
|
|||||||
[b]Channels[/b]
|
[h2]Channels[/h2]
|
||||||
|
|
||||||
|
[h3]What are channels?[/h3]
|
||||||
|
|
||||||
Channels are simply collections of content stored in one place. A channel can represent anything. It could represent you, a website, a forum, photo albums, anything. For most people, their first channel with be "Me".
|
Channels are simply collections of content stored in one place. A channel can represent anything. It could represent you, a website, a forum, photo albums, anything. For most people, their first channel with be "Me".
|
||||||
|
|
||||||
The most important features for a channel that represents "me" are:
|
The most important features for a channel that represents "me" are:
|
||||||
|
[ul]
|
||||||
|
[*]Secure and private "spam free" communications
|
||||||
|
|
||||||
Secure and private "spam free" communications
|
[*]Identity and "single-signon" across the entire network
|
||||||
|
|
||||||
Identity and "single-signon" across the entire network
|
[*]Privacy controls and permissions which extend to the entire network
|
||||||
|
|
||||||
Privacy controls and permissions which extend to the entire network
|
|
||||||
|
|
||||||
Directory services (like a phone book)
|
|
||||||
|
|
||||||
|
[*]Directory services (like a phone book)
|
||||||
|
[/ul]
|
||||||
In short, a channel that represents yourself is "me, on the internet".
|
In short, a channel that represents yourself is "me, on the internet".
|
||||||
|
|
||||||
|
[h3]Creating channels[/h3]
|
||||||
|
|
||||||
You will be required to create your first channel as part of the sign up process. You can also create additonal channels from the "Select channel" link.
|
You will be required to create your first channel as part of the sign up process. You can also create additonal channels from the "Select channel" link.
|
||||||
|
|
||||||
You will be asked to provide a channel name, and a short nick name. For a channel that represents yourself, it is a good idea to use your real name here to ensure your friends can find you, and connect to your channel. The short nickname will be used to generate a "webbie". This is a bit like a username, and will look like an email address, taking the form nickname@domain. You should put a little thought into what you want to use here. Imagine somebody asking for your webbie and having to tell them it is "llamas-are_kewl.123". "llamasarecool" would be a much better choice.
|
You will be asked to provide a channel name, and a short nick name. For a channel that represents yourself, it is a good idea to use your real name here to ensure your friends can find you, and connect to your channel. The short nickname will be used to generate a "webbie". This is a bit like a username, and will look like an email address, taking the form nickname@domain. You should put a little thought into what you want to use here. Imagine somebody asking for your webbie and having to tell them it is "llamas-are_kewl.123". "llamasarecool" would be a much better choice.
|
||||||
@ -22,9 +26,14 @@ Once you have created your channel, you will be taken to the settings page, wher
|
|||||||
|
|
||||||
Once you have done this, your channel is ready to use. At [observer=1][observer.url][/observer][observer=0]example.com/channel/username[/observer] you will find your channel "stream". This is where your recent activity will appear, in reverse chronological order. If you post in the box marked "share", the entry will appear at the top of your stream. You will also find links to all the other communication areas for this channel here. The "About" tab contains your "profile", the photos page contain photo albums, and the events page contains events share by both yourself and your contacts.
|
Once you have done this, your channel is ready to use. At [observer=1][observer.url][/observer][observer=0]example.com/channel/username[/observer] you will find your channel "stream". This is where your recent activity will appear, in reverse chronological order. If you post in the box marked "share", the entry will appear at the top of your stream. You will also find links to all the other communication areas for this channel here. The "About" tab contains your "profile", the photos page contain photo albums, and the events page contains events share by both yourself and your contacts.
|
||||||
|
|
||||||
|
[h3]The grid, permissions and delegation[/h3]
|
||||||
|
|
||||||
The "Grid" page contains all recent posts from across the $Projectname network, again in reverse chronologial order. The exact posts that appear here depend largely on your permissions. At their most permissive, you will receive posts from complete strangers. At the other end of the scale, you may see posts from only your friends - or if you're feeling really anti-social, only your own posts.
|
The "Grid" page contains all recent posts from across the $Projectname network, again in reverse chronologial order. The exact posts that appear here depend largely on your permissions. At their most permissive, you will receive posts from complete strangers. At the other end of the scale, you may see posts from only your friends - or if you're feeling really anti-social, only your own posts.
|
||||||
|
|
||||||
As mentioned at the start, many other kinds of channel are possible, however, the creation procedure is the same. The difference between channels lies primarily in the permissions assigned. For example, a channel for sharing documents with colleagues at work would probably want more permissive settings for "Can write to my "public" file storage" than a personal account. For more information, see the permissions section.
|
As mentioned at the start, many other kinds of channel are possible, however, the creation procedure is the same. The difference between channels lies primarily in the permissions assigned. For example, a channel for sharing documents with colleagues at work would probably want more permissive settings for "Can write to my "public" file storage" than a personal account. For more information, see the [zrl=[baseurl]/help/roles]permissions section[/zrl].
|
||||||
|
|
||||||
|
You can also delegate control of your channels' posts and connections, but not its configurations, to another channel. That is done by editing a connection and assigning it the permission to administer your channel's resources.
|
||||||
|
|
||||||
#include doc/macros/main_footer.bb;
|
#include doc/macros/main_footer.bb;
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,20 +1,21 @@
|
|||||||
[b]External Resource Links[/b]
|
[h2]External resource links[/h2]
|
||||||
|
[h3]Third-Party Themes[/h3]
|
||||||
[b][color= grey][size=24]External Links[/size][/color][/b]
|
[ul]
|
||||||
[b]Third-Party Themes[/b]
|
|
||||||
|
|
||||||
[*][url=https://github.com/omigeot/redstrap3]Redstrap[/url]
|
[*][url=https://github.com/omigeot/redstrap3]Redstrap[/url]
|
||||||
[*][url=https://bitbucket.org/tobiasd/red-clean]Clean[/url]
|
[*][url=https://bitbucket.org/tobiasd/red-clean]Clean[/url]
|
||||||
[*][url=https://github.com/tonybaldwin/redmatrixthemes/]nubasic[/url]
|
[*][url=https://github.com/tonybaldwin/redmatrixthemes/]nubasic[/url]
|
||||||
[*][url=https://github.com/deadsuperhero/redmatrix-themes]Sean Tilley's themes[/url]
|
[*][url=https://github.com/deadsuperhero/redmatrix-themes]Sean Tilley's themes[/url]
|
||||||
|
[/ul]
|
||||||
[b]Third-Party Addons[/b]
|
[h3]Third-Party addons[/h3]
|
||||||
|
[ul]
|
||||||
[*][url=https://abcentric.net/git/abcjsplugin.git]ABCjs integration - display scores in posts (WIP)[/url]
|
[*][url=https://abcentric.net/git/abcjsplugin.git]ABCjs integration - display scores in posts (WIP)[/url]
|
||||||
[b]Related Projects[/b]
|
[/ul]
|
||||||
|
[h3]Related projects[/h3]
|
||||||
|
[ul]
|
||||||
[*][url=https://addons.mozilla.org/en-US/firefox/addon/redshare/]Redshare for Firefox[/url]
|
[*][url=https://addons.mozilla.org/en-US/firefox/addon/redshare/]Redshare for Firefox[/url]
|
||||||
[*][url=https://github.com/cvogeley/red-for-android]Red for Android[/url]
|
[*][url=https://github.com/cvogeley/red-for-android]Red for Android[/url]
|
||||||
[*][url=https://github.com/zzottel/feed2red]feed2red.pl (posts Atom/RSS feeds to channel)[/url]
|
[*][url=https://github.com/zzottel/feed2red]feed2red.pl (posts Atom/RSS feeds to channel)[/url]
|
||||||
[*][url=https://wordpress.org/plugins/hubzilla-wp/]WordPress gateway (combine with wppost addon for full features)[/url]
|
[*][url=https://wordpress.org/plugins/hubzilla-wp/]WordPress gateway (combine with wppost addon for full features)[/url]
|
||||||
|
[/ul]
|
||||||
|
|
||||||
#include doc/macros/main_footer.bb;
|
#include doc/macros/main_footer.bb;
|
||||||
|
@ -1,20 +1,16 @@
|
|||||||
|
[h2]Project and site information[/h2]
|
||||||
[h2]Project/Site Information[/h2]
|
[h3]$Projectname[/h3]
|
||||||
|
|
||||||
[zrl=[baseurl]/help/Privacy]Privacy Policy[/zrl]
|
[zrl=[baseurl]/help/Privacy]Privacy Policy[/zrl]
|
||||||
|
|
||||||
[zrl=[baseurl]/help/history]$Projectname history[/zrl]
|
[zrl=[baseurl]/help/history]$Projectname history[/zrl]
|
||||||
|
[h3]External resources[/h3]
|
||||||
[h3]External Resources[/h3]
|
[zrl=[baseurl]/help/external-resource-links]List of external resources[/zrl]
|
||||||
[zrl=[baseurl]/help/external-resource-links]External Resource Links[/zrl]
|
|
||||||
|
|
||||||
[url=https://github.com/redmatrix/hubzilla]Main Website[/url]
|
[url=https://github.com/redmatrix/hubzilla]Main Website[/url]
|
||||||
[url=https://github.com/redmatrix/hubzilla-addons]Addon Website[/url]
|
[url=https://github.com/redmatrix/hubzilla-addons]Addon Website[/url]
|
||||||
|
|
||||||
[url=[baseurl]/help/credits]$Projectname Credits[/url]
|
[url=[baseurl]/help/credits]$Projectname Credits[/url]
|
||||||
|
[h3]About this $Projectname hub[/h3]
|
||||||
[h3]About This $Projectname Hub[/h3]
|
|
||||||
[zrl=[baseurl]/help/TermsOfService]Terms of Service For This Hub[/zrl]
|
[zrl=[baseurl]/help/TermsOfService]Terms of Service For This Hub[/zrl]
|
||||||
[zrl=[baseurl]/siteinfo]Hub Information (/siteinfo)[/zrl]
|
[zrl=[baseurl]/siteinfo]Hub Information (/siteinfo)[/zrl]
|
||||||
[zrl=[baseurl]/siteinfo/json]Detailed Technical Hub Information in JSON format(/siteinfo/json)[/zrl]
|
[zrl=[baseurl]/siteinfo/json]Detailed Technical Hub Information in JSON format(/siteinfo/json)[/zrl]
|
||||||
|
|
||||||
|
#include doc/macros/main_footer.bb;
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
[h2]Documentation for Hub Members[/h2]
|
[h2]Documentation for hub members[/h2]
|
||||||
|
[h3]Getting started[/h3]
|
||||||
[h3]Getting Started[/h3]
|
|
||||||
[zrl=[baseurl]/help/registration]Account Registration[/zrl]
|
[zrl=[baseurl]/help/registration]Account Registration[/zrl]
|
||||||
[zrl=[baseurl]/help/accounts_profiles_channels_basics]You at $Projectname: accounts, profiles and channels in short[/zrl]
|
[zrl=[baseurl]/help/accounts_profiles_channels_basics]You at $Projectname: accounts, profiles and channels in short[/zrl]
|
||||||
[zrl=[baseurl]/help/profiles]Profiles[/zrl]
|
[zrl=[baseurl]/help/profiles]Profiles[/zrl]
|
||||||
@ -11,8 +10,7 @@
|
|||||||
[zrl=[baseurl]/help/permissions]Permissions And Encryption: You Are In Control[/zrl]
|
[zrl=[baseurl]/help/permissions]Permissions And Encryption: You Are In Control[/zrl]
|
||||||
[zrl=[baseurl]/help/cloud]Cloud Storage[/zrl]
|
[zrl=[baseurl]/help/cloud]Cloud Storage[/zrl]
|
||||||
[zrl=[baseurl]/help/remove_account]Remove Channel or Account[/zrl]
|
[zrl=[baseurl]/help/remove_account]Remove Channel or Account[/zrl]
|
||||||
|
[h3]Members help[/h3]
|
||||||
[h3]Members Help[/h3]
|
|
||||||
[zrl=[baseurl]/help/tags_and_mentions]Tags and Mentions[/zrl]
|
[zrl=[baseurl]/help/tags_and_mentions]Tags and Mentions[/zrl]
|
||||||
[zrl=[baseurl]/help/webpages]Web Pages[/zrl]
|
[zrl=[baseurl]/help/webpages]Web Pages[/zrl]
|
||||||
[zrl=[baseurl]/help/bbcode]BBcode reference for posts and comments[/zrl]
|
[zrl=[baseurl]/help/bbcode]BBcode reference for posts and comments[/zrl]
|
||||||
@ -23,3 +21,5 @@
|
|||||||
[zrl=[baseurl]/help/diaspora_compat]Diaspora Communications Compatibility (Diaspora and Friendica)[/zrl]
|
[zrl=[baseurl]/help/diaspora_compat]Diaspora Communications Compatibility (Diaspora and Friendica)[/zrl]
|
||||||
[zrl=[baseurl]/help/faq_members]FAQ For Members[/zrl]
|
[zrl=[baseurl]/help/faq_members]FAQ For Members[/zrl]
|
||||||
[zrl=[baseurl]/help/bugs]Bugs, Issues, and things that go bump in the night...[/zrl]
|
[zrl=[baseurl]/help/bugs]Bugs, Issues, and things that go bump in the night...[/zrl]
|
||||||
|
|
||||||
|
#include doc/macros/main_footer.bb;
|
||||||
|
@ -1,17 +1,21 @@
|
|||||||
[h1]Permissions[/h1]
|
[h1]Permissions[/h1]
|
||||||
Permissions in the $Projectname are more complete than you may be used to. This allows us to define more fine graded relationships than the black and white "this person is my friend, so they can do everything" or "this person is not my friend, so they can't do anything" permissions you may find elsewhere.
|
Permissions in $Projectname are more complete than you may be used to. This allows us to define more fine graded relationships than the black and white "this person is my friend, so they can do everything" or "this person is not my friend, so they can't do anything" permissions you may find elsewhere.
|
||||||
|
|
||||||
|
[b]Permission Roles[/b]
|
||||||
|
|
||||||
|
When you create a channel we allow you to select different 'roles' for that channel. These create an entire family of permissions and privacy settings that are appropriate for that role. Typical roles are "Social - mostly public", "Social - mostly private", "Forum - public" and many others. These bring a level of simplicity to managing permissions. Just choose a role and appropriate permissions are automatically applied. You can also choose 'Custom/Expert mode' and change any individual permission setting in any way you desire.
|
||||||
|
|
||||||
|
|
||||||
[b]Default Permissions[/b]
|
[b]Default Permission Limits[/b]
|
||||||
|
|
||||||
On your settings page, you will find a list of default permissions. These permissions are automatically applied to everybody unless you specify otherwise. The scope of these permissions varies from "Only me" to "Everybody" - though some scopes may not be available for some permissions. For example, you can't allow "anybody on the internet" to send you private messages, because we'd have no way to identify the sender, therefore no way to reply to them.
|
There are a large number of individual permissions. These control everything from the ability to view your stream to the ability to chat with you. Every permission has a limit. The scope of these permissions varies from "Only me" to "Everybody on the internet" - though some scopes may not be available for some permissions. The limit applies to any published thing you create which has no privacy or access control. For example if you publish a photo and didn't select a specific audience with permission to view it, we apply the limit. These limits apply to everything within that permission rule, so you cannot apply a limit to one photo. The limit applies to all your photos. If all your photos are visible to everybody on the internet and you reduce the limit only to friends, [b]all[/b] of your photos will now be visible only to friends.
|
||||||
|
|
||||||
|
[b]Access Control[/b]
|
||||||
|
|
||||||
|
Access Control is the preferred method of managing privacy in [i]most[/i] cases, rather than using permission limits. This creates lists of either connections or privacy groups (or both) and uses the access list to decide if a permission is allowed. An access list is attached to everything you publish. Unlike permission limits, if you change the access control list on a single photo, it doesn't affect any of your other photos. You can use privacy groups and a "default access control list" to create and automate the management of access control lists to provide any level of privacy you desire on anything you publish.
|
||||||
|
|
||||||
We highly recommend that you use the "typical social network" settings when you create your first channel, as it allows others to communicate with you and help you out if you have difficulty. You will find that these settings allow you as much privacy as you desire - when you desire it; but also allow you to communicate in public if you choose to. You are free to use much more private settings once you have learned your way around.
|
We highly recommend that you use the "typical social network" settings when you create your first channel, as it allows others to communicate with you and help you out if you have difficulty. You will find that these settings allow you as much privacy as you desire - when you desire it; but also allow you to communicate in public if you choose to. You are free to use much more private settings once you have learned your way around.
|
||||||
|
|
||||||
Be aware that altering the scope of who can see your "public" items is a more or less [b]permanent[/b] change. Your public items have no identified permissions attached to them - they are public. If you restrict who can see these items, there is no way of making any single item public ever again - without allowing access to every public item you ever created. You are certainly free to do this, but beware of the consequences.
|
|
||||||
|
|
||||||
A more useful privacy setup is to leave "public" items visible to anybody on the internet; but force everything you create to be restricted. This can be done on your Channel Settings page by selecting the role "Social - restricted". This ensures a Default Privacy Group for all new contacts, and sets your Default Post Permissions to restrict all your posts to that group. We use the Default Post Permissions for everything you create - posts, photos, events, webpages, and everything else. However you can then edit the permissions when you create any individual thing and remove your default privacy group to make just that item visible to anybody.
|
|
||||||
|
|
||||||
|
|
||||||
[dl terms="l"]
|
[dl terms="l"]
|
||||||
[*= The scopes of permissions are:]
|
[*= The scopes of permissions are:]
|
||||||
@ -22,11 +26,11 @@ A more useful privacy setup is to leave "public" items visible to anybody on the
|
|||||||
|
|
||||||
[*= Anybody in your address book ] Anybody you do not know will have this permission denied, but anybody you accept as a contact will have this permission approved. This is the way most legacy platforms handle permissions.
|
[*= Anybody in your address book ] Anybody you do not know will have this permission denied, but anybody you accept as a contact will have this permission approved. This is the way most legacy platforms handle permissions.
|
||||||
|
|
||||||
[*= Anybody On This Hub ] Anybody using the same hub as you will have permission approved. Anybody who registered at a different hub will have this permission denied.
|
[*= Anybody On This Hub ] Anybody with a channel on the same hub/website as you will have permission approved. Anybody who is registered at a different hub will have this permission denied.
|
||||||
|
|
||||||
[*= Anybody in this network ] Anybody in the $Projectname will have this permission approved. Even complete strangers. However, anybody not logged in/authenticated will have this permission denied.
|
[*= Anybody in this network ] Anybody in the $Projectname will have this permission approved. Even complete strangers. However, anybody not logged in/authenticated will have this permission denied.
|
||||||
|
|
||||||
[*= Anybody authenticated ] This is similar to "anybody in this network" except that it can include anybody who can authenticate by any means - and therefore may include visitors from other networks.
|
[*= Anybody authenticated ] This is similar to "anybody in this network" except that it can include anybody who can authenticate by any means - and therefore [i]may[/i] include visitors from other networks.
|
||||||
|
|
||||||
[*= Anybody on the internet ] Completely public. This permission will be approved for anybody at all.
|
[*= Anybody on the internet ] Completely public. This permission will be approved for anybody at all.
|
||||||
[/dl]
|
[/dl]
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
[b]Troubleshooting[/b]
|
[h2]Troubleshooting[/h2]
|
||||||
|
|
||||||
[li][zrl=[baseurl]/help/problems-following-an-update]Problems following an update[/zrl][/li]
|
|
||||||
|
|
||||||
When reporting issues, please try to provide as much detail as may be necessary for developers to reproduce the issue and provide the complete text of all error messages.
|
When reporting issues, please try to provide as much detail as may be necessary for developers to reproduce the issue and provide the complete text of all error messages.
|
||||||
|
|
||||||
@ -13,9 +11,12 @@ In the case of "500" errors, the issues may often be logged in your webserver lo
|
|||||||
|
|
||||||
We encourage you to try to the best of your abilities to use these logs combined with the source code in your possession to troubleshoot issues and find their cause. The community is often able to help, but only you have access to your site logfiles and it is considered a security risk to share them.
|
We encourage you to try to the best of your abilities to use these logs combined with the source code in your possession to troubleshoot issues and find their cause. The community is often able to help, but only you have access to your site logfiles and it is considered a security risk to share them.
|
||||||
|
|
||||||
|
|
||||||
If a code issue has been uncovered, please report it on the project bugtracker (https://github.com/redmatrix/hubzilla/issues). Again provide as much detail as possible to avoid us going back and forth asking questions about your configuration or how to duplicate the problem, so that we can get right to the problem and figure out what to do about it. You are also welcome to offer your own solutions and submit patches. In fact we encourage this as we are all volunteers and have little spare time available. The more people that help, the easier the workload for everybody. It's OK if your solution isn't perfect. Every little bit helps and perhaps we can improve on it.
|
If a code issue has been uncovered, please report it on the project bugtracker (https://github.com/redmatrix/hubzilla/issues). Again provide as much detail as possible to avoid us going back and forth asking questions about your configuration or how to duplicate the problem, so that we can get right to the problem and figure out what to do about it. You are also welcome to offer your own solutions and submit patches. In fact we encourage this as we are all volunteers and have little spare time available. The more people that help, the easier the workload for everybody. It's OK if your solution isn't perfect. Every little bit helps and perhaps we can improve on it.
|
||||||
|
|
||||||
#include doc/macros/troubleshooting_footer.bb;
|
[h3]Troubleshooting updates[/h3]
|
||||||
|
[ul]
|
||||||
|
[li][zrl=[baseurl]/help/problems-following-an-update]Problems following an update[/zrl][/li]
|
||||||
|
[/ul]
|
||||||
|
|
||||||
#include doc/macros/main_footer.bb;
|
#include doc/macros/main_footer.bb;
|
||||||
|
|
||||||
|
@ -499,11 +499,27 @@ function account_approve($hash) {
|
|||||||
intval($register[0]['uid'])
|
intval($register[0]['uid'])
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// get a fresh copy after we've modified it.
|
||||||
|
|
||||||
|
$account = q("SELECT * FROM account WHERE account_id = %d LIMIT 1",
|
||||||
|
intval($register[0]['uid'])
|
||||||
|
);
|
||||||
|
|
||||||
|
if(! $account)
|
||||||
|
return $ret;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(get_config('system','auto_channel_create') || UNO)
|
if(get_config('system','auto_channel_create') || UNO)
|
||||||
auto_channel_create($register[0]['uid']);
|
auto_channel_create($register[0]['uid']);
|
||||||
|
else {
|
||||||
|
$_SESSION['login_return_url'] = 'new_channel';
|
||||||
|
authenticate_success($account[0],true,true,false,true);
|
||||||
|
}
|
||||||
|
|
||||||
info( t('Account verified. Please login.') . EOL );
|
|
||||||
|
// info( t('Account verified. Please login.') . EOL );
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1468,7 +1468,7 @@ function find_filename_by_hash($channel_id, $attachHash) {
|
|||||||
function pipe_streams($in, $out) {
|
function pipe_streams($in, $out) {
|
||||||
$size = 0;
|
$size = 0;
|
||||||
while (!feof($in))
|
while (!feof($in))
|
||||||
$size += fwrite($out, fread($in, 8192));
|
$size += fwrite($out, fread($in, 16384));
|
||||||
|
|
||||||
return $size;
|
return $size;
|
||||||
}
|
}
|
||||||
@ -1909,4 +1909,4 @@ function get_attach_binname($s) {
|
|||||||
$p = substr($p,strpos($p,'/')+1);
|
$p = substr($p,strpos($p,'/')+1);
|
||||||
}
|
}
|
||||||
return $p;
|
return $p;
|
||||||
}
|
}
|
||||||
|
@ -498,6 +498,18 @@ function bb_highlight($match) {
|
|||||||
return $match[0];
|
return $match[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function bb_fixtable_lf($match) {
|
||||||
|
|
||||||
|
// remove extraneous whitespace between table element tags since newlines will all
|
||||||
|
// be converted to '<br />' and turn your neatly crafted tables into a whole lot of
|
||||||
|
// empty space.
|
||||||
|
|
||||||
|
$x = preg_replace("/\]\s+\[/",'][',$match[1]);
|
||||||
|
return '[table]' . $x . '[/table]';
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// BBcode 2 HTML was written by WAY2WEB.net
|
// BBcode 2 HTML was written by WAY2WEB.net
|
||||||
// extended to work with Mistpark/Friendica/Redmatrix/Hubzilla - Mike Macgirvin
|
// extended to work with Mistpark/Friendica/Redmatrix/Hubzilla - Mike Macgirvin
|
||||||
@ -579,7 +591,7 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false)
|
|||||||
$Text = preg_replace_callback("/\[code=(.*?)\](.*?)\[\/code\]/ism", 'bb_highlight', $Text);
|
$Text = preg_replace_callback("/\[code=(.*?)\](.*?)\[\/code\]/ism", 'bb_highlight', $Text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$Text = preg_replace_callback("/\[table\](.*?)\[\/table\]/ism",'bb_fixtable_lf',$Text);
|
||||||
|
|
||||||
// Convert new line chars to html <br /> tags
|
// Convert new line chars to html <br /> tags
|
||||||
|
|
||||||
|
@ -747,6 +747,44 @@ function identity_export_year($channel_id,$year,$month = 0) {
|
|||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// export items within an arbitrary date range. Date/time is in UTC.
|
||||||
|
|
||||||
|
function channel_export_items($channel_id,$start,$finish) {
|
||||||
|
|
||||||
|
if(! $start)
|
||||||
|
return array();
|
||||||
|
else
|
||||||
|
$start = datetime_convert('UTC','UTC',$start);
|
||||||
|
|
||||||
|
$finish = datetime_convert('UTC','UTC',(($finish) ? $finish : 'now'));
|
||||||
|
if($finish < $start)
|
||||||
|
return array();
|
||||||
|
|
||||||
|
$ret = array();
|
||||||
|
|
||||||
|
$ch = channelx_by_n($channel_id);
|
||||||
|
if($ch) {
|
||||||
|
$ret['relocate'] = [ 'channel_address' => $ch['channel_address'], 'url' => z_root()];
|
||||||
|
}
|
||||||
|
|
||||||
|
$r = q("select * from item where ( item_wall = 1 or item_type != %d ) and item_deleted = 0 and uid = %d and created >= '%s' and created < '%s' and resource_type = '' order by created",
|
||||||
|
intval(ITEM_TYPE_POST),
|
||||||
|
intval($channel_id),
|
||||||
|
dbesc($start),
|
||||||
|
dbesc($finish)
|
||||||
|
);
|
||||||
|
|
||||||
|
if($r) {
|
||||||
|
$ret['item'] = array();
|
||||||
|
xchan_query($r);
|
||||||
|
$r = fetch_post_tags($r,true);
|
||||||
|
foreach($r as $rr)
|
||||||
|
$ret['item'][] = encode_item($rr,true);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Loads a profile into the App structure.
|
* @brief Loads a profile into the App structure.
|
||||||
@ -761,11 +799,10 @@ function identity_export_year($channel_id,$year,$month = 0) {
|
|||||||
*
|
*
|
||||||
* The channel default theme is also selected for use, unless over-riden elsewhere.
|
* The channel default theme is also selected for use, unless over-riden elsewhere.
|
||||||
*
|
*
|
||||||
* @param[in,out] App &$a
|
|
||||||
* @param string $nickname
|
* @param string $nickname
|
||||||
* @param string $profile
|
* @param string $profile
|
||||||
*/
|
*/
|
||||||
function profile_load(&$a, $nickname, $profile = '') {
|
function profile_load($nickname, $profile = '') {
|
||||||
|
|
||||||
// logger('profile_load: ' . $nickname . (($profile) ? ' profile: ' . $profile : ''));
|
// logger('profile_load: ' . $nickname . (($profile) ? ' profile: ' . $profile : ''));
|
||||||
|
|
||||||
|
@ -1703,13 +1703,19 @@ function profile_tabs($a, $is_owner = false, $nickname = null){
|
|||||||
'title' => t('Manage Webpages'),
|
'title' => t('Manage Webpages'),
|
||||||
'id' => 'webpages-tab',
|
'id' => 'webpages-tab',
|
||||||
);
|
);
|
||||||
} else {
|
}
|
||||||
/**
|
|
||||||
* @FIXME we probably need a listing of events that were created by
|
if(feature_enabled($uid,'wiki') && (! UNO)) {
|
||||||
* this channel and are visible to the observer
|
$tabs[] = array(
|
||||||
*/
|
'label' => t('Wiki'),
|
||||||
|
'url' => z_root() . '/wiki/' . $nickname,
|
||||||
|
'sel' => ((argv(0) == 'wiki') ? 'active' : ''),
|
||||||
|
'title' => t('Wiki'),
|
||||||
|
'id' => 'wiki-tab',
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$arr = array('is_owner' => $is_owner, 'nickname' => $nickname, 'tab' => (($tab) ? $tab : false), 'tabs' => $tabs);
|
$arr = array('is_owner' => $is_owner, 'nickname' => $nickname, 'tab' => (($tab) ? $tab : false), 'tabs' => $tabs);
|
||||||
call_hooks('profile_tabs', $arr);
|
call_hooks('profile_tabs', $arr);
|
||||||
|
|
||||||
|
@ -52,6 +52,7 @@ function get_features($filtered = true) {
|
|||||||
array('advanced_profiles', t('Advanced Profiles'), t('Additional profile sections and selections'),false,get_config('feature_lock','advanced_profiles')),
|
array('advanced_profiles', t('Advanced Profiles'), t('Additional profile sections and selections'),false,get_config('feature_lock','advanced_profiles')),
|
||||||
array('profile_export', t('Profile Import/Export'), t('Save and load profile details across sites/channels'),false,get_config('feature_lock','profile_export')),
|
array('profile_export', t('Profile Import/Export'), t('Save and load profile details across sites/channels'),false,get_config('feature_lock','profile_export')),
|
||||||
array('webpages', t('Web Pages'), t('Provide managed web pages on your channel'),false,get_config('feature_lock','webpages')),
|
array('webpages', t('Web Pages'), t('Provide managed web pages on your channel'),false,get_config('feature_lock','webpages')),
|
||||||
|
array('wiki', t('Wiki'), t('Provide a wiki for your channel'),((UNO) ? false : true),get_config('feature_lock','wiki')),
|
||||||
array('hide_rating', t('Hide Rating'), t('Hide the rating buttons on your channel and profile pages. Note: People can still rate you somewhere else.'),false,get_config('feature_lock','hide_rating')),
|
array('hide_rating', t('Hide Rating'), t('Hide the rating buttons on your channel and profile pages. Note: People can still rate you somewhere else.'),false,get_config('feature_lock','hide_rating')),
|
||||||
array('private_notes', t('Private Notes'), t('Enables a tool to store notes and reminders (note: not encrypted)'),false,get_config('feature_lock','private_notes')),
|
array('private_notes', t('Private Notes'), t('Enables a tool to store notes and reminders (note: not encrypted)'),false,get_config('feature_lock','private_notes')),
|
||||||
array('nav_channel_select', t('Navigation Channel Select'), t('Change channels directly from within the navigation dropdown menu'),false,get_config('feature_lock','nav_channel_select')),
|
array('nav_channel_select', t('Navigation Channel Select'), t('Change channels directly from within the navigation dropdown menu'),false,get_config('feature_lock','nav_channel_select')),
|
||||||
|
@ -4,10 +4,10 @@ function js_strings() {
|
|||||||
return replace_macros(get_markup_template('js_strings.tpl'), array(
|
return replace_macros(get_markup_template('js_strings.tpl'), array(
|
||||||
'$delitem' => t('Delete this item?'),
|
'$delitem' => t('Delete this item?'),
|
||||||
'$comment' => t('Comment'),
|
'$comment' => t('Comment'),
|
||||||
'$showmore' => t('[+] show all'),
|
'$showmore' => sprintf( t('%s show all'), '<i class=\'fa fa-chevron-down\'></i>'),
|
||||||
'$showfewer' => t('[-] show less'),
|
'$showfewer' => sprintf( t('%s show less'), '<i class=\'fa fa-chevron-up\'></i>'),
|
||||||
'$divgrowmore' => t('[+] expand'),
|
'$divgrowmore' => sprintf( t('%s expand'), '<i class=\'fa fa-chevron-down\'></i>'),
|
||||||
'$divgrowless' => t('[-] collapse'),
|
'$divgrowless' => sprintf( t('%s collapse'),'<i class=\'fa fa-chevron-up\'></i>'),
|
||||||
'$pwshort' => t("Password too short"),
|
'$pwshort' => t("Password too short"),
|
||||||
'$pwnomatch' => t("Passwords do not match"),
|
'$pwnomatch' => t("Passwords do not match"),
|
||||||
'$everybody' => t('everybody'),
|
'$everybody' => t('everybody'),
|
||||||
|
@ -104,6 +104,8 @@ EOT;
|
|||||||
|
|
||||||
if(feature_enabled($channel['channel_id'],'webpages') && (! UNO))
|
if(feature_enabled($channel['channel_id'],'webpages') && (! UNO))
|
||||||
$nav['usermenu'][] = Array('webpages/' . $channel['channel_address'],t('Webpages'),"",t('Your webpages'),'webpages_nav_btn');
|
$nav['usermenu'][] = Array('webpages/' . $channel['channel_address'],t('Webpages'),"",t('Your webpages'),'webpages_nav_btn');
|
||||||
|
if(feature_enabled($channel['channel_id'],'wiki') && (! UNO))
|
||||||
|
$nav['usermenu'][] = Array('wiki/' . $channel['channel_address'],t('Wiki'),"",t('Your wiki'),'wiki_nav_btn');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(! get_account_id()) {
|
if(! get_account_id()) {
|
||||||
@ -126,7 +128,7 @@ EOT;
|
|||||||
$nav['lock'] = array('logout','','lock',
|
$nav['lock'] = array('logout','','lock',
|
||||||
sprintf( t('%s - click to logout'), $observer['xchan_addr']));
|
sprintf( t('%s - click to logout'), $observer['xchan_addr']));
|
||||||
}
|
}
|
||||||
else {
|
elseif(! $_SESSION['authenticated']) {
|
||||||
$nav['loginmenu'][] = Array('rmagic',t('Remote authentication'),'',t('Click to authenticate to your home hub'),'rmagic_nav_btn');
|
$nav['loginmenu'][] = Array('rmagic',t('Remote authentication'),'',t('Click to authenticate to your home hub'),'rmagic_nav_btn');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -143,7 +145,7 @@ EOT;
|
|||||||
if((App::$module != 'home') && (! (local_channel())))
|
if((App::$module != 'home') && (! (local_channel())))
|
||||||
$nav['home'] = array($homelink, t('Home'), "", t('Home Page'),'home_nav_btn');
|
$nav['home'] = array($homelink, t('Home'), "", t('Home Page'),'home_nav_btn');
|
||||||
|
|
||||||
if((App::$config['system']['register_policy'] == REGISTER_OPEN) && (! local_channel()) && (! remote_channel()))
|
if((App::$config['system']['register_policy'] == REGISTER_OPEN) && (! $_SESSION['authenticated']))
|
||||||
$nav['register'] = array('register',t('Register'), "", t('Create an account'),'register_nav_btn');
|
$nav['register'] = array('register',t('Register'), "", t('Create an account'),'register_nav_btn');
|
||||||
|
|
||||||
if(! get_config('system','hide_help')) {
|
if(! get_config('system','hide_help')) {
|
||||||
|
@ -101,6 +101,9 @@ function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) {
|
|||||||
if(x($opts,'cookiefile'))
|
if(x($opts,'cookiefile'))
|
||||||
@curl_setopt($ch, CURLOPT_COOKIEFILE, $opts['cookiefile']);
|
@curl_setopt($ch, CURLOPT_COOKIEFILE, $opts['cookiefile']);
|
||||||
|
|
||||||
|
if(x($opts,'cookie'))
|
||||||
|
@curl_setopt($ch, CURLOPT_COOKIE, $opts['cookie']);
|
||||||
|
|
||||||
@curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,
|
@curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,
|
||||||
((x($opts,'novalidate') && intval($opts['novalidate'])) ? false : true));
|
((x($opts,'novalidate') && intval($opts['novalidate'])) ? false : true));
|
||||||
|
|
||||||
@ -258,6 +261,10 @@ function z_post_url($url,$params, $redirects = 0, $opts = array()) {
|
|||||||
if(x($opts,'cookiefile'))
|
if(x($opts,'cookiefile'))
|
||||||
@curl_setopt($ch, CURLOPT_COOKIEFILE, $opts['cookiefile']);
|
@curl_setopt($ch, CURLOPT_COOKIEFILE, $opts['cookiefile']);
|
||||||
|
|
||||||
|
|
||||||
|
if(x($opts,'cookie'))
|
||||||
|
@curl_setopt($ch, CURLOPT_COOKIE, $opts['cookie']);
|
||||||
|
|
||||||
@curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,
|
@curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,
|
||||||
((x($opts,'novalidate') && intval($opts['novalidate'])) ? false : true));
|
((x($opts,'novalidate') && intval($opts['novalidate'])) ? false : true));
|
||||||
|
|
||||||
@ -1336,8 +1343,20 @@ function discover_by_webbie($webbie) {
|
|||||||
$fullname = $vcard['fn'];
|
$fullname = $vcard['fn'];
|
||||||
if($vcard['photo'] && (strpos($vcard['photo'],'http') !== 0))
|
if($vcard['photo'] && (strpos($vcard['photo'],'http') !== 0))
|
||||||
$vcard['photo'] = $diaspora_base . '/' . $vcard['photo'];
|
$vcard['photo'] = $diaspora_base . '/' . $vcard['photo'];
|
||||||
|
if(($vcard['key']) && (! $pubkey))
|
||||||
|
$pubkey = $vcard['key'];
|
||||||
if(! $avatar)
|
if(! $avatar)
|
||||||
$avatar = $vcard['photo'];
|
$avatar = $vcard['photo'];
|
||||||
|
if($diaspora) {
|
||||||
|
if(($vcard['guid']) && (! $diaspora_guid))
|
||||||
|
$diaspora_guid = $vcard['guid'];
|
||||||
|
if(($vcard['url']) && (! $diaspora_base))
|
||||||
|
$diaspora_base = $vcard['url'];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,12 +27,6 @@ function oembed_action($embedurl) {
|
|||||||
|
|
||||||
logger('oembed_action: ' . $embedurl, LOGGER_DEBUG, LOG_INFO);
|
logger('oembed_action: ' . $embedurl, LOGGER_DEBUG, LOG_INFO);
|
||||||
|
|
||||||
// These media files should now be caught in bbcode.php
|
|
||||||
// left here as a fallback in case this is called from another source
|
|
||||||
|
|
||||||
$noexts = array("mp3","mp4","ogg","ogv","oga","ogm","webm","opus");
|
|
||||||
$ext = pathinfo(strtolower($embedurl),PATHINFO_EXTENSION);
|
|
||||||
|
|
||||||
if(strpos($embedurl,'http://') === 0) {
|
if(strpos($embedurl,'http://') === 0) {
|
||||||
if(intval(get_config('system','embed_sslonly'))) {
|
if(intval(get_config('system','embed_sslonly'))) {
|
||||||
$action = 'block';
|
$action = 'block';
|
||||||
@ -121,14 +115,19 @@ function oembed_fetch_url($embedurl){
|
|||||||
// These media files should now be caught in bbcode.php
|
// These media files should now be caught in bbcode.php
|
||||||
// left here as a fallback in case this is called from another source
|
// left here as a fallback in case this is called from another source
|
||||||
|
|
||||||
$noexts = array("mp3","mp4","ogg","ogv","oga","ogm","webm","opus");
|
$noexts = array(".mp3",".mp4",".ogg",".ogv",".oga",".ogm",".webm",".opus");
|
||||||
$ext = pathinfo(strtolower($embedurl),PATHINFO_EXTENSION);
|
|
||||||
|
|
||||||
$result = oembed_action($embedurl);
|
$result = oembed_action($embedurl);
|
||||||
|
|
||||||
$embedurl = $result['url'];
|
$embedurl = $result['url'];
|
||||||
$action = $result['action'];
|
$action = $result['action'];
|
||||||
|
|
||||||
|
foreach($noexts as $ext) {
|
||||||
|
if(strpos(strtolower($embedurl),$ext) !== false) {
|
||||||
|
$action = 'block';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$txt = null;
|
$txt = null;
|
||||||
|
|
||||||
if($action !== 'block') {
|
if($action !== 'block') {
|
||||||
@ -153,7 +152,7 @@ function oembed_fetch_url($embedurl){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (! in_array($ext, $noexts) && $action !== 'block') {
|
if ($action !== 'block') {
|
||||||
// try oembed autodiscovery
|
// try oembed autodiscovery
|
||||||
$redirects = 0;
|
$redirects = 0;
|
||||||
$result = z_fetch_url($furl, false, $redirects, array('timeout' => 15, 'accept_content' => "text/*", 'novalidate' => true ));
|
$result = z_fetch_url($furl, false, $redirects, array('timeout' => 15, 'accept_content' => "text/*", 'novalidate' => true ));
|
||||||
|
@ -551,15 +551,21 @@ function head_get_css() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function format_css_if_exists($source) {
|
function format_css_if_exists($source) {
|
||||||
if (strpos($source[0], '/') !== false)
|
$path_prefix = script_path() . '/';
|
||||||
|
|
||||||
|
if (strpos($source[0], '/') !== false) {
|
||||||
|
// The source is a URL
|
||||||
$path = $source[0];
|
$path = $source[0];
|
||||||
else
|
// If the url starts with // then it's an absolute URL
|
||||||
|
if($source[0][0] === '/' && $source[0][1] === '/') $path_prefix = '';
|
||||||
|
} else {
|
||||||
|
// It's a file from the theme
|
||||||
$path = theme_include($source[0]);
|
$path = theme_include($source[0]);
|
||||||
|
}
|
||||||
|
|
||||||
if($path) {
|
if($path) {
|
||||||
$path = script_path() . '/' . $path;
|
|
||||||
$qstring = ((parse_url($path, PHP_URL_QUERY)) ? '&' : '?') . 'v=' . STD_VERSION;
|
$qstring = ((parse_url($path, PHP_URL_QUERY)) ? '&' : '?') . 'v=' . STD_VERSION;
|
||||||
return '<link rel="stylesheet" href="' . $path . $qstring . '" type="text/css" media="' . $source[1] . '">' . "\r\n";
|
return '<link rel="stylesheet" href="' . $path_prefix . $path . $qstring . '" type="text/css" media="' . $source[1] . '">' . "\r\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -643,14 +649,20 @@ function head_get_main_js() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function format_js_if_exists($source) {
|
function format_js_if_exists($source) {
|
||||||
if(strpos($source,'/') !== false)
|
$path_prefix = script_path() . '/';
|
||||||
|
|
||||||
|
if(strpos($source,'/') !== false) {
|
||||||
|
// The source is a URL
|
||||||
$path = $source;
|
$path = $source;
|
||||||
else
|
// If the url starts with // then it's an absolute URL
|
||||||
|
if($source[0] === '/' && $source[1] === '/') $path_prefix = '';
|
||||||
|
} else {
|
||||||
|
// It's a file from the theme
|
||||||
$path = theme_include($source);
|
$path = theme_include($source);
|
||||||
|
}
|
||||||
if($path) {
|
if($path) {
|
||||||
$path = script_path() . '/' . $path;
|
|
||||||
$qstring = ((parse_url($path, PHP_URL_QUERY)) ? '&' : '?') . 'v=' . STD_VERSION;
|
$qstring = ((parse_url($path, PHP_URL_QUERY)) ? '&' : '?') . 'v=' . STD_VERSION;
|
||||||
return '<script src="' . $path . $qstring . '" ></script>' . "\r\n" ;
|
return '<script src="' . $path_prefix . $path . $qstring . '" ></script>' . "\r\n" ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ function wiki_init_wiki($channel, $wiki) {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
// Create GitRepo object
|
// Create GitRepo object
|
||||||
$git = new GitRepo($channel['channel_address'], null, false, $name, __DIR__ . '/../' . $path);
|
$git = new GitRepo($channel['channel_address'], null, false, $wiki['urlName'], __DIR__ . '/../' . $path);
|
||||||
if(!$git->initRepo()) {
|
if(!$git->initRepo()) {
|
||||||
logger('Error creating new git repo in ' . $git->path);
|
logger('Error creating new git repo in ' . $git->path);
|
||||||
return null;
|
return null;
|
||||||
@ -82,7 +82,7 @@ function wiki_create_wiki($channel, $observer_hash, $wiki, $acl) {
|
|||||||
$ac = $acl->get();
|
$ac = $acl->get();
|
||||||
$mid = item_message_id();
|
$mid = item_message_id();
|
||||||
$arr = array(); // Initialize the array of parameters for the post
|
$arr = array(); // Initialize the array of parameters for the post
|
||||||
$item_hidden = 0; // TODO: Allow form creator to send post to ACL about new game automatically
|
$item_hidden = ((intval($wiki['postVisible']) === 0) ? 1 : 0);
|
||||||
$wiki_url = z_root() . '/wiki/' . $channel['channel_address'] . '/' . $wiki['urlName'];
|
$wiki_url = z_root() . '/wiki/' . $channel['channel_address'] . '/' . $wiki['urlName'];
|
||||||
$arr['aid'] = $channel['channel_account_id'];
|
$arr['aid'] = $channel['channel_account_id'];
|
||||||
$arr['uid'] = $channel['channel_id'];
|
$arr['uid'] = $channel['channel_id'];
|
||||||
@ -240,13 +240,11 @@ function wiki_rename_page($arr) {
|
|||||||
return array('message' => 'Wiki not found.', 'success' => false);
|
return array('message' => 'Wiki not found.', 'success' => false);
|
||||||
}
|
}
|
||||||
$page_path_old = $w['path'].'/'.$pageUrlName.'.md';
|
$page_path_old = $w['path'].'/'.$pageUrlName.'.md';
|
||||||
logger('$page_path_old: ' . $page_path_old);
|
|
||||||
if (!is_readable($page_path_old) === true) {
|
if (!is_readable($page_path_old) === true) {
|
||||||
return array('message' => 'Cannot read wiki page: ' . $page_path_old, 'success' => false);
|
return array('message' => 'Cannot read wiki page: ' . $page_path_old, 'success' => false);
|
||||||
}
|
}
|
||||||
$page = array('rawName' => $pageNewName, 'htmlName' => escape_tags($pageNewName), 'urlName' => urlencode(escape_tags($pageNewName)), 'fileName' => urlencode(escape_tags($pageNewName)).'.md');
|
$page = array('rawName' => $pageNewName, 'htmlName' => escape_tags($pageNewName), 'urlName' => urlencode(escape_tags($pageNewName)), 'fileName' => urlencode(escape_tags($pageNewName)).'.md');
|
||||||
$page_path_new = $w['path'] . '/' . $page['fileName'] ;
|
$page_path_new = $w['path'] . '/' . $page['fileName'] ;
|
||||||
logger('$page_path_new: ' . $page_path_new);
|
|
||||||
if (is_file($page_path_new)) {
|
if (is_file($page_path_new)) {
|
||||||
return array('message' => 'Page already exists.', 'success' => false);
|
return array('message' => 'Page already exists.', 'success' => false);
|
||||||
}
|
}
|
||||||
@ -475,4 +473,24 @@ function wiki_generate_page_filename($name) {
|
|||||||
} else {
|
} else {
|
||||||
return $file . '.md';
|
return $file . '.md';
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function wiki_convert_links($s, $wikiURL) {
|
||||||
|
|
||||||
|
if (strpos($s,'[[') !== false) {
|
||||||
|
preg_match_all("/\[\[(.*?)\]\]/", $s, $match);
|
||||||
|
$pages = $pageURLs = array();
|
||||||
|
foreach ($match[1] as $m) {
|
||||||
|
// TODO: Why do we need to double urlencode for this to work?
|
||||||
|
$pageURLs[] = urlencode(urlencode(escape_tags($m)));
|
||||||
|
$pages[] = $m;
|
||||||
|
}
|
||||||
|
$idx = 0;
|
||||||
|
while(strpos($s,'[[') !== false) {
|
||||||
|
$replace = '<a href="'.$wikiURL.'/'.$pageURLs[$idx].'">'.$pages[$idx].'</a>';
|
||||||
|
$s = preg_replace("/\[\[(.*?)\]\]/", $replace, $s, 1);
|
||||||
|
$idx++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $s;
|
||||||
}
|
}
|
@ -827,15 +827,15 @@ CREATE TABLE "obj" (
|
|||||||
"obj_id" serial NOT NULL,
|
"obj_id" serial NOT NULL,
|
||||||
"obj_page" char(64) NOT NULL DEFAULT '',
|
"obj_page" char(64) NOT NULL DEFAULT '',
|
||||||
"obj_verb" text NOT NULL DEFAULT '',
|
"obj_verb" text NOT NULL DEFAULT '',
|
||||||
"obj_type" bigint NOT NULL DEFAULT '0',
|
"obj_type" bigint NOT NULL DEFAULT 0,
|
||||||
"obj_obj" text NOT NULL DEFAULT '',
|
"obj_obj" text NOT NULL DEFAULT '',
|
||||||
"obj_channel" bigint NOT NULL DEFAULT '0',
|
"obj_channel" bigint NOT NULL DEFAULT 0,
|
||||||
"obj_term" char(255) NOT NULL DEFAULT '',
|
"obj_term" char(255) NOT NULL DEFAULT '',
|
||||||
"obj_url" char(255) NOT NULL DEFAULT '',
|
"obj_url" char(255) NOT NULL DEFAULT '',
|
||||||
"obj_imgurl" char(255) NOT NULL DEFAULT '',
|
"obj_imgurl" char(255) NOT NULL DEFAULT '',
|
||||||
"obj_created" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
|
"obj_created" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
|
||||||
"obj_edited" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
|
"obj_edited" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
|
||||||
"obj_quantity" int(11) NOT NULL DEFAUL '0'.
|
"obj_quantity" bigint NOT NULL DEFAULT 0,
|
||||||
"allow_cid" text NOT NULL,
|
"allow_cid" text NOT NULL,
|
||||||
"allow_gid" text NOT NULL,
|
"allow_gid" text NOT NULL,
|
||||||
"deny_cid" text NOT NULL,
|
"deny_cid" text NOT NULL,
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
##
|
##
|
||||||
## Bundle of CA Root Certificates
|
## Bundle of CA Root Certificates
|
||||||
##
|
##
|
||||||
## Certificate data from Mozilla as of: Wed Sep 2 18:30:34 2015
|
## Certificate data from Mozilla as of: Wed Apr 20 03:12:05 2016
|
||||||
##
|
##
|
||||||
## This is a bundle of X.509 certificates of public Certificate Authorities
|
## This is a bundle of X.509 certificates of public Certificate Authorities
|
||||||
## (CA). These were automatically extracted from Mozilla's root certificates
|
## (CA). These were automatically extracted from Mozilla's root certificates
|
||||||
@ -14,30 +14,10 @@
|
|||||||
## Just configure this file as the SSLCACertificateFile.
|
## Just configure this file as the SSLCACertificateFile.
|
||||||
##
|
##
|
||||||
## Conversion done with mk-ca-bundle.pl version 1.25.
|
## Conversion done with mk-ca-bundle.pl version 1.25.
|
||||||
## SHA1: ed3c0bbfb7912bcc00cd2033b0cb85c98d10559c
|
## SHA1: 5df367cda83086392e1acdf22bfef00c48d5eba6
|
||||||
##
|
##
|
||||||
|
|
||||||
|
|
||||||
Equifax Secure CA
|
|
||||||
=================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE
|
|
||||||
ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
|
|
||||||
MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT
|
|
||||||
B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB
|
|
||||||
nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR
|
|
||||||
fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW
|
|
||||||
8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG
|
|
||||||
A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE
|
|
||||||
CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG
|
|
||||||
A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS
|
|
||||||
spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB
|
|
||||||
Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961
|
|
||||||
zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB
|
|
||||||
BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
|
|
||||||
70+sB3c4
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
GlobalSign Root CA
|
GlobalSign Root CA
|
||||||
==================
|
==================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -105,30 +85,6 @@ xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa
|
|||||||
t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
|
t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
Verisign Class 4 Public Primary Certification Authority - G3
|
|
||||||
============================================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
|
|
||||||
UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
|
|
||||||
cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
|
||||||
IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
|
|
||||||
dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
|
|
||||||
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
|
|
||||||
dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
|
|
||||||
cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg
|
|
||||||
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
|
||||||
ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS
|
|
||||||
tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM
|
|
||||||
8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW
|
|
||||||
Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX
|
|
||||||
Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
|
|
||||||
j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt
|
|
||||||
mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
|
|
||||||
fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd
|
|
||||||
RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG
|
|
||||||
UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Entrust.net Premium 2048 Secure Server CA
|
Entrust.net Premium 2048 Secure Server CA
|
||||||
=========================================
|
=========================================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -673,53 +629,6 @@ EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
|
|||||||
llpwrN9M
|
llpwrN9M
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
Staat der Nederlanden Root CA
|
|
||||||
=============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE
|
|
||||||
ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g
|
|
||||||
Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w
|
|
||||||
HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh
|
|
||||||
bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt
|
|
||||||
vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P
|
|
||||||
jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca
|
|
||||||
C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth
|
|
||||||
vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6
|
|
||||||
22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV
|
|
||||||
HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v
|
|
||||||
dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN
|
|
||||||
BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR
|
|
||||||
EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw
|
|
||||||
MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y
|
|
||||||
nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
|
|
||||||
iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
UTN DATACorp SGC Root CA
|
|
||||||
========================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE
|
|
||||||
BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
|
|
||||||
IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ
|
|
||||||
BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa
|
|
||||||
MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w
|
|
||||||
HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy
|
|
||||||
dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC
|
|
||||||
AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys
|
|
||||||
raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo
|
|
||||||
wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA
|
|
||||||
9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv
|
|
||||||
33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud
|
|
||||||
DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9
|
|
||||||
BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD
|
|
||||||
LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3
|
|
||||||
DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft
|
|
||||||
Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0
|
|
||||||
I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx
|
|
||||||
EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP
|
|
||||||
DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
UTN USERFirst Hardware Root CA
|
UTN USERFirst Hardware Root CA
|
||||||
==============================
|
==============================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -800,41 +709,6 @@ IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes
|
|||||||
t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
|
t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
NetLock Notary (Class A) Root
|
|
||||||
=============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI
|
|
||||||
EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
|
|
||||||
dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j
|
|
||||||
ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX
|
|
||||||
DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH
|
|
||||||
EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD
|
|
||||||
VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz
|
|
||||||
cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM
|
|
||||||
D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ
|
|
||||||
z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC
|
|
||||||
/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7
|
|
||||||
tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6
|
|
||||||
4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG
|
|
||||||
A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC
|
|
||||||
Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv
|
|
||||||
bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu
|
|
||||||
IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn
|
|
||||||
LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0
|
|
||||||
ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz
|
|
||||||
IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh
|
|
||||||
IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu
|
|
||||||
b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh
|
|
||||||
bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg
|
|
||||||
Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp
|
|
||||||
bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5
|
|
||||||
ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP
|
|
||||||
ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB
|
|
||||||
CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr
|
|
||||||
KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM
|
|
||||||
8CgHrTwXZoi1/baI
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
XRamp Global CA Root
|
XRamp Global CA Root
|
||||||
====================
|
====================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -1142,54 +1016,6 @@ vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3
|
|||||||
oKfN5XozNmr6mis=
|
oKfN5XozNmr6mis=
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
TURKTRUST Certificate Services Provider Root 1
|
|
||||||
==============================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
|
|
||||||
bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGDAJUUjEP
|
|
||||||
MA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykgMjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0
|
|
||||||
acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMx
|
|
||||||
MDI3MTdaFw0xNTAzMjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsg
|
|
||||||
U2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYDVQQHDAZB
|
|
||||||
TktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBC
|
|
||||||
aWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOC
|
|
||||||
AQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GX
|
|
||||||
yGl8hMW0kWxsE2qkVa2kheiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8i
|
|
||||||
Si9BB35JYbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5CurKZ
|
|
||||||
8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1JuTm5Rh8i27fbMx4
|
|
||||||
W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51b0dewQIDAQABoxAwDjAMBgNVHRME
|
|
||||||
BTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46
|
|
||||||
sWrv7/hg0Uw2ZkUd82YCdAR7kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxE
|
|
||||||
q8Sn5RTOPEFhfEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy
|
|
||||||
B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdAaLX/7KfS0zgY
|
|
||||||
nNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKSRGQDJereW26fyfJOrN3H
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
TURKTRUST Certificate Services Provider Root 2
|
|
||||||
==============================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF
|
|
||||||
bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
|
|
||||||
MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
|
|
||||||
QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN
|
|
||||||
MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr
|
|
||||||
dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G
|
|
||||||
A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
|
|
||||||
acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G
|
|
||||||
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe
|
|
||||||
LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI
|
|
||||||
x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g
|
|
||||||
QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr
|
|
||||||
5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB
|
|
||||||
AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G
|
|
||||||
A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt
|
|
||||||
Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4
|
|
||||||
Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+
|
|
||||||
hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P
|
|
||||||
9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5
|
|
||||||
UrbnBEI=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
SwissSign Gold CA - G2
|
SwissSign Gold CA - G2
|
||||||
======================
|
======================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -1589,56 +1415,6 @@ PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
|
|||||||
WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
|
WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
TC TrustCenter Class 2 CA II
|
|
||||||
============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC
|
|
||||||
REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy
|
|
||||||
IENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYw
|
|
||||||
MTEyMTQzODQzWhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1
|
|
||||||
c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UE
|
|
||||||
AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
|
|
||||||
AQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jftMjWQ+nEdVl//OEd+DFw
|
|
||||||
IxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKguNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2
|
|
||||||
xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2JXjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQ
|
|
||||||
Xa7pIXSSTYtZgo+U4+lK8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7u
|
|
||||||
SNQZu+995OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1UdEwEB
|
|
||||||
/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3kUrL84J6E1wIqzCB
|
|
||||||
7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90
|
|
||||||
Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU
|
|
||||||
cnVzdENlbnRlciUyMENsYXNzJTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i
|
|
||||||
SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
|
|
||||||
TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iSGNn3Bzn1LL4G
|
|
||||||
dXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprtZjluS5TmVfwLG4t3wVMTZonZ
|
|
||||||
KNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8au0WOB9/WIFaGusyiC2y8zl3gK9etmF1Kdsj
|
|
||||||
TYjKUCjLhdLTEKJZbtOTVAB6okaVhgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kP
|
|
||||||
JOzHdiEoZa5X6AeIdUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfk
|
|
||||||
vQ==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
TC TrustCenter Universal CA I
|
|
||||||
=============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTELMAkGA1UEBhMC
|
|
||||||
REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy
|
|
||||||
IFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcN
|
|
||||||
MDYwMzIyMTU1NDI4WhcNMjUxMjMxMjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMg
|
|
||||||
VHJ1c3RDZW50ZXIgR21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYw
|
|
||||||
JAYDVQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcNAQEBBQAD
|
|
||||||
ggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSRJJZ4Hgmgm5qVSkr1YnwC
|
|
||||||
qMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3TfCZdzHd55yx4Oagmcw6iXSVphU9VDprv
|
|
||||||
xrlE4Vc93x9UIuVvZaozhDrzznq+VZeujRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtw
|
|
||||||
ag+1m7Z3W0hZneTvWq3zwZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9O
|
|
||||||
gdwZu5GQfezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYDVR0j
|
|
||||||
BBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
|
|
||||||
AYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0GCSqGSIb3DQEBBQUAA4IBAQAo0uCG
|
|
||||||
1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X17caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/Cy
|
|
||||||
vwbZ71q+s2IhtNerNXxTPqYn8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3
|
|
||||||
ghUJGooWMNjsydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT
|
|
||||||
ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/2TYcuiUaUj0a
|
|
||||||
7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Deutsche Telekom Root CA 2
|
Deutsche Telekom Root CA 2
|
||||||
==========================
|
==========================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -1661,28 +1437,6 @@ dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
|
|||||||
Cm26OWMohpLzGITY+9HPBVZkVw==
|
Cm26OWMohpLzGITY+9HPBVZkVw==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
ComSign Secured CA
|
|
||||||
==================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDqzCCApOgAwIBAgIRAMcoRwmzuGxFjB36JPU2TukwDQYJKoZIhvcNAQEFBQAwPDEbMBkGA1UE
|
|
||||||
AxMSQ29tU2lnbiBTZWN1cmVkIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQGEwJJTDAeFw0w
|
|
||||||
NDAzMjQxMTM3MjBaFw0yOTAzMTYxNTA0NTZaMDwxGzAZBgNVBAMTEkNvbVNpZ24gU2VjdXJlZCBD
|
|
||||||
QTEQMA4GA1UEChMHQ29tU2lnbjELMAkGA1UEBhMCSUwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
|
|
||||||
ggEKAoIBAQDGtWhfHZQVw6QIVS3joFd67+l0Kru5fFdJGhFeTymHDEjWaueP1H5XJLkGieQcPOqs
|
|
||||||
49ohgHMhCu95mGwfCP+hUH3ymBvJVG8+pSjsIQQPRbsHPaHA+iqYHU4Gk/v1iDurX8sWv+bznkqH
|
|
||||||
7Rnqwp9D5PGBpX8QTz7RSmKtUxvLg/8HZaWSLWapW7ha9B20IZFKF3ueMv5WJDmyVIRD9YTC2LxB
|
|
||||||
kMyd1mja6YJQqTtoz7VdApRgFrFD2UNd3V2Hbuq7s8lr9gOUCXDeFhF6K+h2j0kQmHe5Y1yLM5d1
|
|
||||||
9guMsqtb3nQgJT/j8xH5h2iGNXHDHYwt6+UarA9z1YJZQIDTAgMBAAGjgacwgaQwDAYDVR0TBAUw
|
|
||||||
AwEB/zBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vZmVkaXIuY29tc2lnbi5jby5pbC9jcmwvQ29t
|
|
||||||
U2lnblNlY3VyZWRDQS5jcmwwDgYDVR0PAQH/BAQDAgGGMB8GA1UdIwQYMBaAFMFL7XC29z58ADsA
|
|
||||||
j8c+DkWfHl3sMB0GA1UdDgQWBBTBS+1wtvc+fAA7AI/HPg5Fnx5d7DANBgkqhkiG9w0BAQUFAAOC
|
|
||||||
AQEAFs/ukhNQq3sUnjO2QiBq1BW9Cav8cujvR3qQrFHBZE7piL1DRYHjZiM/EoZNGeQFsOY3wo3a
|
|
||||||
BijJD4mkU6l1P7CW+6tMM1X5eCZGbxs2mPtCdsGCuY7e+0X5YxtiOzkGynd6qDwJz2w2PQ8KRUtp
|
|
||||||
FhpFfTMDZflScZAmlaxMDPWLkz/MdXSFmLr/YnpNH4n+rr2UAJm/EaXc4HnFFgt9AmEd6oX5AhVP
|
|
||||||
51qJThRv4zdLhfXBPGHg/QVBspJ/wx2g0K5SZGBrGMYmnNj1ZOQ2GmKfig8+/21OGVZOIJFsnzQz
|
|
||||||
OjRXUDpvgV4GxvU+fE6OK85lBi5d0ipTdF7Tbieejw==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Cybertrust Global Root
|
Cybertrust Global Root
|
||||||
======================
|
======================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -1784,26 +1538,6 @@ fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w
|
|||||||
wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
|
wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
Buypass Class 3 CA 1
|
|
||||||
====================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDUzCCAjugAwIBAgIBAjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
|
|
||||||
QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMyBDQSAxMB4XDTA1
|
|
||||||
MDUwOTE0MTMwM1oXDTE1MDUwOTE0MTMwM1owSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
|
|
||||||
c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDMgQ0EgMTCCASIwDQYJKoZI
|
|
||||||
hvcNAQEBBQADggEPADCCAQoCggEBAKSO13TZKWTeXx+HgJHqTjnmGcZEC4DVC69TB4sSveZn8AKx
|
|
||||||
ifZgisRbsELRwCGoy+Gb72RRtqfPFfV0gGgEkKBYouZ0plNTVUhjP5JW3SROjvi6K//zNIqeKNc0
|
|
||||||
n6wv1g/xpC+9UrJJhW05NfBEMJNGJPO251P7vGGvqaMU+8IXF4Rs4HyI+MkcVyzwPX6UvCWThOia
|
|
||||||
AJpFBUJXgPROztmuOfbIUxAMZTpHe2DC1vqRycZxbL2RhzyRhkmr8w+gbCZ2Xhysm3HljbybIR6c
|
|
||||||
1jh+JIAVMYKWsUnTYjdbiAwKYjT+p0h+mbEwi5A3lRyoH6UsjfRVyNvdWQrCrXig9IsCAwEAAaNC
|
|
||||||
MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUOBTmyPCppAP0Tj4io1vy1uCtQHQwDgYDVR0P
|
|
||||||
AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQABZ6OMySU9E2NdFm/soT4JXJEVKirZgCFPBdy7
|
|
||||||
pYmrEzMqnji3jG8CcmPHc3ceCQa6Oyh7pEfJYWsICCD8igWKH7y6xsL+z27sEzNxZy5p+qksP2bA
|
|
||||||
EllNC1QCkoS72xLvg3BweMhT+t/Gxv/ciC8HwEmdMldg0/L2mSlf56oBzKwzqBwKu5HEA6BvtjT5
|
|
||||||
htOzdlSY9EqBs1OdTUDs5XcTRa9bqh/YL0yCe/4qxFi7T/ye/QNlGioOw6UgFpRreaaiErS7GqQj
|
|
||||||
el/wroQk5PMr+4okoyeYZdowdXb8GZHo2+ubPzK/QJcHJrrM85SFSnonk8+QQtS4Wxam58tAA915
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1
|
EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1
|
||||||
==========================================================================
|
==========================================================================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -2085,30 +1819,6 @@ IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm
|
|||||||
66+KAQ==
|
66+KAQ==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
CA Disig
|
|
||||||
========
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMK
|
|
||||||
QnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwHhcNMDYw
|
|
||||||
MzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlz
|
|
||||||
bGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3
|
|
||||||
DQEBAQUAA4IBDwAwggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgm
|
|
||||||
GErENx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnXmjxUizkD
|
|
||||||
Pw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYDXcDtab86wYqg6I7ZuUUo
|
|
||||||
hwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhWS8+2rT+MitcE5eN4TPWGqvWP+j1scaMt
|
|
||||||
ymfraHtuM6kMgiioTGohQBUgDCZbg8KpFhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8w
|
|
||||||
gfwwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0P
|
|
||||||
AQH/BAQDAgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cuZGlz
|
|
||||||
aWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5zay9jYS9jcmwvY2Ff
|
|
||||||
ZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2svY2EvY3JsL2NhX2Rpc2lnLmNybDAa
|
|
||||||
BgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEwDQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59t
|
|
||||||
WDYcPQuBDRIrRhCA/ec8J9B6yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3
|
|
||||||
mkkp7M5+cTxqEEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/
|
|
||||||
CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeBEicTXxChds6K
|
|
||||||
ezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFNPGO+I++MzVpQuGhU+QqZMxEA
|
|
||||||
4Z7CRneC9VkGjCFMhwnN5ag=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Juur-SK
|
Juur-SK
|
||||||
=======
|
=======
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -2635,29 +2345,6 @@ iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt
|
|||||||
+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
|
+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
A-Trust-nQual-03
|
|
||||||
================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJBVDFIMEYGA1UE
|
|
||||||
Cgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy
|
|
||||||
a2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5RdWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5R
|
|
||||||
dWFsLTAzMB4XDTA1MDgxNzIyMDAwMFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgw
|
|
||||||
RgYDVQQKDD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0
|
|
||||||
ZW52ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMMEEEtVHJ1
|
|
||||||
c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtPWFuA/OQO8BBC4SA
|
|
||||||
zewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUjlUC5B3ilJfYKvUWG6Nm9wASOhURh73+n
|
|
||||||
yfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZznF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPE
|
|
||||||
SU7l0+m0iKsMrmKS1GWH2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4
|
|
||||||
iHQF63n1k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs2e3V
|
|
||||||
cuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECERqlWdV
|
|
||||||
eRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAVdRU0VlIXLOThaq/Yy/kgM40
|
|
||||||
ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fGKOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmr
|
|
||||||
sQd7TZjTXLDR8KdCoLXEjq/+8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZd
|
|
||||||
JXDRZslo+S4RFGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS
|
|
||||||
mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmEDNuxUCAKGkq6
|
|
||||||
ahq97BvIxYSazQ==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
TWCA Root Certification Authority
|
TWCA Root Certification Authority
|
||||||
=================================
|
=================================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -3986,6 +3673,196 @@ PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX
|
|||||||
kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C
|
kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C
|
||||||
ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
|
ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5
|
||||||
|
=========================================================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIxDzAN
|
||||||
|
BgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
|
||||||
|
bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4xQjBABgNVBAMMOVTDnFJLVFJVU1Qg
|
||||||
|
RWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBINTAeFw0xMzA0MzAw
|
||||||
|
ODA3MDFaFw0yMzA0MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0w
|
||||||
|
SwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnE
|
||||||
|
n2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRp
|
||||||
|
ZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
||||||
|
CgKCAQEApCUZ4WWe60ghUEoI5RHwWrom/4NZzkQqL/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537
|
||||||
|
jVJp45wnEFPzpALFp/kRGml1bsMdi9GYjZOHp3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1m
|
||||||
|
ep5Fimh34khon6La8eHBEJ/rPCmBp+EyCNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z5UNP
|
||||||
|
9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0hO8EuPbJbKoCPrZV
|
||||||
|
4jI3X/xml1/N1p7HIL9Nxqw/dV8c7TKcfGkAaZHjIxhT6QIDAQABo0IwQDAdBgNVHQ4EFgQUVpkH
|
||||||
|
HtOsDGlktAxQR95DLL4gwPswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
|
||||||
|
hvcNAQELBQADggEBAJ5FdnsXSDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPo
|
||||||
|
BP5yCccLqh0lVX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwq
|
||||||
|
URawXs3qZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nfpeYVhDfwwvJl
|
||||||
|
lpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CFYv4HAqGEVka+lgqaE9chTLd8
|
||||||
|
B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H6
|
||||||
|
=========================================================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEJjCCAw6gAwIBAgIGfaHyZeyKMA0GCSqGSIb3DQEBCwUAMIGxMQswCQYDVQQGEwJUUjEPMA0G
|
||||||
|
A1UEBwwGQW5rYXJhMU0wSwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
|
||||||
|
acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBF
|
||||||
|
bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg2MB4XDTEzMTIxODA5
|
||||||
|
MDQxMFoXDTIzMTIxNjA5MDQxMFowgbExCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExTTBL
|
||||||
|
BgNVBAoMRFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBCaWxpxZ9pbSBHw7x2ZW5sacSf
|
||||||
|
aSBIaXptZXRsZXJpIEEuxZ4uMUIwQAYDVQQDDDlUw5xSS1RSVVNUIEVsZWt0cm9uaWsgU2VydGlm
|
||||||
|
aWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLEgSDYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
|
||||||
|
AoIBAQCdsGjW6L0UlqMACprx9MfMkU1xeHe59yEmFXNRFpQJRwXiM/VomjX/3EsvMsew7eKC5W/a
|
||||||
|
2uqsxgbPJQ1BgfbBOCK9+bGlprMBvD9QFyv26WZV1DOzXPhDIHiTVRZwGTLmiddk671IUP320EED
|
||||||
|
wnS3/faAz1vFq6TWlRKb55cTMgPp1KtDWxbtMyJkKbbSk60vbNg9tvYdDjTu0n2pVQ8g9P0pu5Fb
|
||||||
|
HH3GQjhtQiht1AH7zYiXSX6484P4tZgvsycLSF5W506jM7NE1qXyGJTtHB6plVxiSvgNZ1GpryHV
|
||||||
|
+DKdeboaX+UEVU0TRv/yz3THGmNtwx8XEsMeED5gCLMxAgMBAAGjQjBAMB0GA1UdDgQWBBTdVRcT
|
||||||
|
9qzoSCHK77Wv0QAy7Z6MtTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
|
||||||
|
9w0BAQsFAAOCAQEAb1gNl0OqFlQ+v6nfkkU/hQu7VtMMUszIv3ZnXuaqs6fvuay0EBQNdH49ba3R
|
||||||
|
fdCaqaXKGDsCQC4qnFAUi/5XfldcEQlLNkVS9z2sFP1E34uXI9TDwe7UU5X+LEr+DXCqu4svLcsy
|
||||||
|
o4LyVN/Y8t3XSHLuSqMplsNEzm61kod2pLv0kmzOLBQJZo6NrRa1xxsJYTvjIKIDgI6tflEATseW
|
||||||
|
hvtDmHd9KMeP2Cpu54Rvl0EpABZeTeIT6lnAY2c6RPuY/ATTMHKm9ocJV612ph1jmv3XZch4gyt1
|
||||||
|
O6VbuA1df74jrlZVlFjvH4GMKrLN5ptjnhi85WsGtAuYSyher4hYyw==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
Certinomis - Root CA
|
||||||
|
====================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
|
||||||
|
Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAbBgNVBAMTFENlcnRpbm9taXMg
|
||||||
|
LSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMzMTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIx
|
||||||
|
EzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRD
|
||||||
|
ZXJ0aW5vbWlzIC0gUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQos
|
||||||
|
P5L2fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJflLieY6pOo
|
||||||
|
d5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQVWZUKxkd8aRi5pwP5ynap
|
||||||
|
z8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDFTKWrteoB4owuZH9kb/2jJZOLyKIOSY00
|
||||||
|
8B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09x
|
||||||
|
RLWtwHkziOC/7aOgFLScCbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE
|
||||||
|
6OXWk6RiwsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJwx3t
|
||||||
|
FvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SGm/lg0h9tkQPTYKbV
|
||||||
|
PZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4F2iw4lNVYC2vPsKD2NkJK/DAZNuH
|
||||||
|
i5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZngWVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGj
|
||||||
|
YzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I
|
||||||
|
6tNxIqSSaHh02TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF
|
||||||
|
AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/0KGRHCwPT5iV
|
||||||
|
WVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWwF6YSjNRieOpWauwK0kDDPAUw
|
||||||
|
Pk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZSg081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAX
|
||||||
|
lCOotQqSD7J6wWAsOMwaplv/8gzjqh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJ
|
||||||
|
y29SWwNyhlCVCNSNh4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9
|
||||||
|
Iff/ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8Vbtaw5Bng
|
||||||
|
DwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwjY/M50n92Uaf0yKHxDHYi
|
||||||
|
I0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nM
|
||||||
|
cyrDflOR1m749fPH0FFNjkulW+YZFzvWgQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVr
|
||||||
|
hkIGuUE=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
OISTE WISeKey Global Root GB CA
|
||||||
|
===============================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQG
|
||||||
|
EwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl
|
||||||
|
ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAw
|
||||||
|
MzJaFw0zOTEyMDExNTEwMzFaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYD
|
||||||
|
VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEds
|
||||||
|
b2JhbCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3HEokKtaX
|
||||||
|
scriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGxWuR51jIjK+FTzJlFXHtP
|
||||||
|
rby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk
|
||||||
|
9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNku7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4o
|
||||||
|
Qnc/nSMbsrY9gBQHTC5P99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvg
|
||||||
|
GUpuuy9rM2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB
|
||||||
|
/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZI
|
||||||
|
hvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrghcViXfa43FK8+5/ea4n32cZiZBKpD
|
||||||
|
dHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0
|
||||||
|
VQreUGdNZtGn//3ZwLWoo4rOZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEui
|
||||||
|
HZeeevJuQHHfaPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic
|
||||||
|
Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
Certification Authority of WoSign G2
|
||||||
|
====================================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDfDCCAmSgAwIBAgIQayXaioidfLwPBbOxemFFRDANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQG
|
||||||
|
EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxLTArBgNVBAMTJENlcnRpZmljYXRpb24g
|
||||||
|
QXV0aG9yaXR5IG9mIFdvU2lnbiBHMjAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4NThaMFgx
|
||||||
|
CzAJBgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEtMCsGA1UEAxMkQ2VydGlm
|
||||||
|
aWNhdGlvbiBBdXRob3JpdHkgb2YgV29TaWduIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
||||||
|
CgKCAQEAvsXEoCKASU+/2YcRxlPhuw+9YH+v9oIOH9ywjj2X4FA8jzrvZjtFB5sg+OPXJYY1kBai
|
||||||
|
XW8wGQiHC38Gsp1ij96vkqVg1CuAmlI/9ZqD6TRay9nVYlzmDuDfBpgOgHzKtB0TiGsOqCR3A9Du
|
||||||
|
W/PKaZE1OVbFbeP3PU9ekzgkyhjpJMuSA93MHD0JcOQg5PGurLtzaaNjOg9FD6FKmsLRY6zLEPg9
|
||||||
|
5k4ot+vElbGs/V6r+kHLXZ1L3PR8du9nfwB6jdKgGlxNIuG12t12s9R23164i5jIFFTMaxeSt+BK
|
||||||
|
v0mUYQs4kI9dJGwlezt52eJ+na2fmKEG/HgUYFf47oB3sQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC
|
||||||
|
AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU+mCp62XF3RYUCE4MD42b4Pdkr2cwDQYJKoZI
|
||||||
|
hvcNAQELBQADggEBAFfDejaCnI2Y4qtAqkePx6db7XznPWZaOzG73/MWM5H8fHulwqZm46qwtyeY
|
||||||
|
P0nXYGdnPzZPSsvxFPpahygc7Y9BMsaV+X3avXtbwrAh449G3CE4Q3RM+zD4F3LBMvzIkRfEzFg3
|
||||||
|
TgvMWvchNSiDbGAtROtSjFA9tWwS1/oJu2yySrHFieT801LYYRf+epSEj3m2M1m6D8QL4nCgS3gu
|
||||||
|
+sif/a+RZQp4OBXllxcU3fngLDT4ONCEIgDAFFEYKwLcMFrw6AF8NTojrwjkr6qOKEJJLvD1mTS+
|
||||||
|
7Q9LGOHSJDy7XUe3IfKN0QqZjuNuPq1w4I+5ysxugTH2e5x6eeRncRg=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
CA WoSign ECC Root
|
||||||
|
==================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICCTCCAY+gAwIBAgIQaEpYcIBr8I8C+vbe6LCQkDAKBggqhkjOPQQDAzBGMQswCQYDVQQGEwJD
|
||||||
|
TjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMTEkNBIFdvU2lnbiBFQ0MgUm9v
|
||||||
|
dDAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4NThaMEYxCzAJBgNVBAYTAkNOMRowGAYDVQQK
|
||||||
|
ExFXb1NpZ24gQ0EgTGltaXRlZDEbMBkGA1UEAxMSQ0EgV29TaWduIEVDQyBSb290MHYwEAYHKoZI
|
||||||
|
zj0CAQYFK4EEACIDYgAE4f2OuEMkq5Z7hcK6C62N4DrjJLnSsb6IOsq/Srj57ywvr1FQPEd1bPiU
|
||||||
|
t5v8KB7FVMxjnRZLU8HnIKvNrCXSf4/CwVqCXjCLelTOA7WRf6qU0NGKSMyCBSah1VES1ns2o0Iw
|
||||||
|
QDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUqv3VWqP2h4syhf3R
|
||||||
|
MluARZPzA7gwCgYIKoZIzj0EAwMDaAAwZQIxAOSkhLCB1T2wdKyUpOgOPQB0TKGXa/kNUTyh2Tv0
|
||||||
|
Daupn75OcsqF1NnstTJFGG+rrQIwfcf3aWMvoeGY7xMQ0Xk/0f7qO3/eVvSQsRUR2LIiFdAvwyYu
|
||||||
|
a/GRspBl9JrmkO5K
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
SZAFIR ROOT CA2
|
||||||
|
===============
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQELBQAwUTELMAkG
|
||||||
|
A1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6ZW5pb3dhIFMuQS4xGDAWBgNV
|
||||||
|
BAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkwNzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJ
|
||||||
|
BgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYD
|
||||||
|
VQQDDA9TWkFGSVIgUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5Q
|
||||||
|
qEvNQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT3PSQ1hNK
|
||||||
|
DJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw3gAeqDRHu5rr/gsUvTaE
|
||||||
|
2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr63fE9biCloBK0TXC5ztdyO4mTp4CEHCdJ
|
||||||
|
ckm1/zuVnsHMyAHs6A6KCpbns6aH5db5BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwi
|
||||||
|
ieDhZNRnvDF5YTy7ykHNXGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P
|
||||||
|
AQH/BAQDAgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsFAAOC
|
||||||
|
AQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw8PRBEew/R40/cof5
|
||||||
|
O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOGnXkZ7/e7DDWQw4rtTw/1zBLZpD67
|
||||||
|
oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCPoky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul
|
||||||
|
4+vJhaAlIDf7js4MNIThPIGyd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6
|
||||||
|
+/NNIxuZMzSgLvWpCz/UXeHPhJ/iGcJfitYgHuNztw==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
Certum Trusted Network CA 2
|
||||||
|
===========================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UE
|
||||||
|
BhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1
|
||||||
|
bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29y
|
||||||
|
ayBDQSAyMCIYDzIwMTExMDA2MDgzOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQ
|
||||||
|
TDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENl
|
||||||
|
cnRpZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENB
|
||||||
|
IDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWADGSdhhuWZGc/IjoedQF9
|
||||||
|
7/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+o
|
||||||
|
CgCXhVqqndwpyeI1B+twTUrWwbNWuKFBOJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40b
|
||||||
|
Rr5HMNUuctHFY9rnY3lEfktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2p
|
||||||
|
uTRZCr+ESv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1mo130
|
||||||
|
GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02isx7QBlrd9pPPV3WZ
|
||||||
|
9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOWOZV7bIBaTxNyxtd9KXpEulKkKtVB
|
||||||
|
Rgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgezTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pye
|
||||||
|
hizKV/Ma5ciSixqClnrDvFASadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vM
|
||||||
|
BhBgu4M1t15n3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
|
||||||
|
AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI
|
||||||
|
hvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQF/xlhMcQSZDe28cmk4gmb3DW
|
||||||
|
Al45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTfCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuA
|
||||||
|
L55MYIR4PSFk1vtBHxgP58l1cb29XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMo
|
||||||
|
clm2q8KMZiYcdywmdjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tM
|
||||||
|
pkT/WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jbAoJnwTnb
|
||||||
|
w3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksqP/ujmv5zMnHCnsZy4Ypo
|
||||||
|
J/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Kob7a6bINDd82Kkhehnlt4Fj1F4jNy3eFm
|
||||||
|
ypnTycUm/Q1oBEauttmbjL4ZvrHG8hnjXALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLX
|
||||||
|
is7VmFxWlgPF7ncGNf/P5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7
|
||||||
|
zAYspsbiDrW5viSP
|
||||||
|
-----END CERTIFICATE-----
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIGCDCCA/CgAwIBAgIQKy5u6tl1NmwUim7bo3yMBzANBgkqhkiG9w0BAQwFADCB
|
MIIGCDCCA/CgAwIBAgIQKy5u6tl1NmwUim7bo3yMBzANBgkqhkiG9w0BAQwFADCB
|
||||||
hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
|
hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
|
||||||
@ -4078,33 +3955,30 @@ Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
|
|||||||
c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
|
c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
|
||||||
mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
|
mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
Lets Encrypt
|
|
||||||
============
|
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIEqDCCA5CgAwIBAgIRAJgT9HUT5XULQ+dDHpceRL0wDQYJKoZIhvcNAQELBQAw
|
MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/
|
||||||
PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
|
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
|
||||||
Ew5EU1QgUm9vdCBDQSBYMzAeFw0xNTEwMTkyMjMzMzZaFw0yMDEwMTkyMjMzMzZa
|
DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow
|
||||||
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
|
SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT
|
||||||
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMTCCASIwDQYJKoZIhvcNAQEBBQAD
|
GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC
|
||||||
ggEPADCCAQoCggEBAJzTDPBa5S5Ht3JdN4OzaGMw6tc1Jhkl4b2+NfFwki+3uEtB
|
AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF
|
||||||
BaupnjUIWOyxKsRohwuj43Xk5vOnYnG6eYFgH9eRmp/z0HhncchpDpWRz/7mmelg
|
q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8
|
||||||
PEjMfspNdxIknUcbWuu57B43ABycrHunBerOSuu9QeU2mLnL/W08lmjfIypCkAyG
|
SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0
|
||||||
dGfIf6WauFJhFBM/ZemCh8vb+g5W9oaJ84U/l4avsNwa72sNlRZ9xCugZbKZBDZ1
|
Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA
|
||||||
gGusSvMbkEl4L6KWTyogJSkExnTA0DHNjzE4lRa6qDO4Q/GxH8Mwf6J5MRM9LTb4
|
a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj
|
||||||
4/zyM2q5OTHFr8SNDR1kFjOq+oQpttQLwNh9w5MCAwEAAaOCAZIwggGOMBIGA1Ud
|
/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T
|
||||||
EwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMH8GCCsGAQUFBwEBBHMwcTAy
|
AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG
|
||||||
BggrBgEFBQcwAYYmaHR0cDovL2lzcmcudHJ1c3RpZC5vY3NwLmlkZW50cnVzdC5j
|
CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv
|
||||||
b20wOwYIKwYBBQUHMAKGL2h0dHA6Ly9hcHBzLmlkZW50cnVzdC5jb20vcm9vdHMv
|
bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k
|
||||||
ZHN0cm9vdGNheDMucDdjMB8GA1UdIwQYMBaAFMSnsaR7LHH62+FLkHX/xBVghYkQ
|
c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw
|
||||||
MFQGA1UdIARNMEswCAYGZ4EMAQIBMD8GCysGAQQBgt8TAQEBMDAwLgYIKwYBBQUH
|
VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC
|
||||||
AgEWImh0dHA6Ly9jcHMucm9vdC14MS5sZXRzZW5jcnlwdC5vcmcwPAYDVR0fBDUw
|
ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz
|
||||||
MzAxoC+gLYYraHR0cDovL2NybC5pZGVudHJ1c3QuY29tL0RTVFJPT1RDQVgzQ1JM
|
MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu
|
||||||
LmNybDATBgNVHR4EDDAKoQgwBoIELm1pbDAdBgNVHQ4EFgQUqEpqYwR93brm0Tm3
|
Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF
|
||||||
pkVl7/Oo7KEwDQYJKoZIhvcNAQELBQADggEBANHIIkus7+MJiZZQsY14cCoBG1hd
|
AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo
|
||||||
v0J20/FyWo5ppnfjL78S2k4s2GLRJ7iD9ZDKErndvbNFGcsW+9kKK/TnY21hp4Dd
|
uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/
|
||||||
ITv8S9ZYQ7oaoqs7HwhEMY9sibED4aXw09xrJZTC9zK1uIfW6t5dHQjuOWv+HHoW
|
wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu
|
||||||
ZnupyxpsEUlEaFb+/SCI4KCSBdAsYxAcsHYI5xxEI4LutHp6s3OT2FuO90WfdsIk
|
X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG
|
||||||
6q78OMSdn875bNjdBYAqxUp2/LEIHfDBkLoQz0hFJmwAbYahqKaLn73PAAm1X2kj
|
PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6
|
||||||
f1w8DdnkabOLGeOVcj9LQ+s67vBykx4anTjURkbqZslUEUsn2k5xeua2zUk=
|
KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
##
|
##
|
||||||
## Bundle of CA Root Certificates
|
## Bundle of CA Root Certificates
|
||||||
##
|
##
|
||||||
## Certificate data from Mozilla as of: Wed Sep 2 18:30:34 2015
|
## Certificate data from Mozilla as of: Wed Apr 20 03:12:05 2016
|
||||||
##
|
##
|
||||||
## This is a bundle of X.509 certificates of public Certificate Authorities
|
## This is a bundle of X.509 certificates of public Certificate Authorities
|
||||||
## (CA). These were automatically extracted from Mozilla's root certificates
|
## (CA). These were automatically extracted from Mozilla's root certificates
|
||||||
@ -14,30 +14,10 @@
|
|||||||
## Just configure this file as the SSLCACertificateFile.
|
## Just configure this file as the SSLCACertificateFile.
|
||||||
##
|
##
|
||||||
## Conversion done with mk-ca-bundle.pl version 1.25.
|
## Conversion done with mk-ca-bundle.pl version 1.25.
|
||||||
## SHA1: ed3c0bbfb7912bcc00cd2033b0cb85c98d10559c
|
## SHA1: 5df367cda83086392e1acdf22bfef00c48d5eba6
|
||||||
##
|
##
|
||||||
|
|
||||||
|
|
||||||
Equifax Secure CA
|
|
||||||
=================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE
|
|
||||||
ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
|
|
||||||
MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT
|
|
||||||
B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB
|
|
||||||
nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR
|
|
||||||
fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW
|
|
||||||
8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG
|
|
||||||
A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE
|
|
||||||
CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG
|
|
||||||
A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS
|
|
||||||
spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB
|
|
||||||
Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961
|
|
||||||
zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB
|
|
||||||
BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
|
|
||||||
70+sB3c4
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
GlobalSign Root CA
|
GlobalSign Root CA
|
||||||
==================
|
==================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -105,30 +85,6 @@ xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa
|
|||||||
t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
|
t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
Verisign Class 4 Public Primary Certification Authority - G3
|
|
||||||
============================================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
|
|
||||||
UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
|
|
||||||
cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
|
||||||
IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
|
|
||||||
dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
|
|
||||||
CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
|
|
||||||
dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
|
|
||||||
cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg
|
|
||||||
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
|
||||||
ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS
|
|
||||||
tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM
|
|
||||||
8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW
|
|
||||||
Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX
|
|
||||||
Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
|
|
||||||
j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt
|
|
||||||
mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
|
|
||||||
fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd
|
|
||||||
RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG
|
|
||||||
UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Entrust.net Premium 2048 Secure Server CA
|
Entrust.net Premium 2048 Secure Server CA
|
||||||
=========================================
|
=========================================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -673,53 +629,6 @@ EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
|
|||||||
llpwrN9M
|
llpwrN9M
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
Staat der Nederlanden Root CA
|
|
||||||
=============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE
|
|
||||||
ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g
|
|
||||||
Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w
|
|
||||||
HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh
|
|
||||||
bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt
|
|
||||||
vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P
|
|
||||||
jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca
|
|
||||||
C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth
|
|
||||||
vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6
|
|
||||||
22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV
|
|
||||||
HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v
|
|
||||||
dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN
|
|
||||||
BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR
|
|
||||||
EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw
|
|
||||||
MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y
|
|
||||||
nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
|
|
||||||
iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
UTN DATACorp SGC Root CA
|
|
||||||
========================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE
|
|
||||||
BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
|
|
||||||
IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ
|
|
||||||
BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa
|
|
||||||
MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w
|
|
||||||
HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy
|
|
||||||
dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC
|
|
||||||
AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys
|
|
||||||
raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo
|
|
||||||
wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA
|
|
||||||
9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv
|
|
||||||
33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud
|
|
||||||
DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9
|
|
||||||
BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD
|
|
||||||
LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3
|
|
||||||
DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft
|
|
||||||
Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0
|
|
||||||
I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx
|
|
||||||
EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP
|
|
||||||
DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
UTN USERFirst Hardware Root CA
|
UTN USERFirst Hardware Root CA
|
||||||
==============================
|
==============================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -800,41 +709,6 @@ IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes
|
|||||||
t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
|
t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
NetLock Notary (Class A) Root
|
|
||||||
=============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI
|
|
||||||
EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
|
|
||||||
dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j
|
|
||||||
ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX
|
|
||||||
DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH
|
|
||||||
EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD
|
|
||||||
VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz
|
|
||||||
cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM
|
|
||||||
D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ
|
|
||||||
z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC
|
|
||||||
/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7
|
|
||||||
tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6
|
|
||||||
4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG
|
|
||||||
A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC
|
|
||||||
Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv
|
|
||||||
bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu
|
|
||||||
IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn
|
|
||||||
LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0
|
|
||||||
ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz
|
|
||||||
IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh
|
|
||||||
IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu
|
|
||||||
b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh
|
|
||||||
bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg
|
|
||||||
Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp
|
|
||||||
bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5
|
|
||||||
ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP
|
|
||||||
ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB
|
|
||||||
CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr
|
|
||||||
KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM
|
|
||||||
8CgHrTwXZoi1/baI
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
XRamp Global CA Root
|
XRamp Global CA Root
|
||||||
====================
|
====================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -1142,54 +1016,6 @@ vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3
|
|||||||
oKfN5XozNmr6mis=
|
oKfN5XozNmr6mis=
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
TURKTRUST Certificate Services Provider Root 1
|
|
||||||
==============================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
|
|
||||||
bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGDAJUUjEP
|
|
||||||
MA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykgMjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0
|
|
||||||
acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMx
|
|
||||||
MDI3MTdaFw0xNTAzMjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsg
|
|
||||||
U2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYDVQQHDAZB
|
|
||||||
TktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBC
|
|
||||||
aWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOC
|
|
||||||
AQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GX
|
|
||||||
yGl8hMW0kWxsE2qkVa2kheiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8i
|
|
||||||
Si9BB35JYbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5CurKZ
|
|
||||||
8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1JuTm5Rh8i27fbMx4
|
|
||||||
W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51b0dewQIDAQABoxAwDjAMBgNVHRME
|
|
||||||
BTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46
|
|
||||||
sWrv7/hg0Uw2ZkUd82YCdAR7kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxE
|
|
||||||
q8Sn5RTOPEFhfEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy
|
|
||||||
B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdAaLX/7KfS0zgY
|
|
||||||
nNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKSRGQDJereW26fyfJOrN3H
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
TURKTRUST Certificate Services Provider Root 2
|
|
||||||
==============================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF
|
|
||||||
bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
|
|
||||||
MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
|
|
||||||
QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN
|
|
||||||
MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr
|
|
||||||
dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G
|
|
||||||
A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
|
|
||||||
acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G
|
|
||||||
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe
|
|
||||||
LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI
|
|
||||||
x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g
|
|
||||||
QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr
|
|
||||||
5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB
|
|
||||||
AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G
|
|
||||||
A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt
|
|
||||||
Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4
|
|
||||||
Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+
|
|
||||||
hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P
|
|
||||||
9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5
|
|
||||||
UrbnBEI=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
SwissSign Gold CA - G2
|
SwissSign Gold CA - G2
|
||||||
======================
|
======================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -1589,56 +1415,6 @@ PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
|
|||||||
WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
|
WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
TC TrustCenter Class 2 CA II
|
|
||||||
============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC
|
|
||||||
REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy
|
|
||||||
IENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYw
|
|
||||||
MTEyMTQzODQzWhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1
|
|
||||||
c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UE
|
|
||||||
AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
|
|
||||||
AQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jftMjWQ+nEdVl//OEd+DFw
|
|
||||||
IxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKguNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2
|
|
||||||
xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2JXjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQ
|
|
||||||
Xa7pIXSSTYtZgo+U4+lK8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7u
|
|
||||||
SNQZu+995OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1UdEwEB
|
|
||||||
/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3kUrL84J6E1wIqzCB
|
|
||||||
7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90
|
|
||||||
Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU
|
|
||||||
cnVzdENlbnRlciUyMENsYXNzJTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i
|
|
||||||
SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
|
|
||||||
TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iSGNn3Bzn1LL4G
|
|
||||||
dXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprtZjluS5TmVfwLG4t3wVMTZonZ
|
|
||||||
KNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8au0WOB9/WIFaGusyiC2y8zl3gK9etmF1Kdsj
|
|
||||||
TYjKUCjLhdLTEKJZbtOTVAB6okaVhgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kP
|
|
||||||
JOzHdiEoZa5X6AeIdUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfk
|
|
||||||
vQ==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
TC TrustCenter Universal CA I
|
|
||||||
=============================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTELMAkGA1UEBhMC
|
|
||||||
REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy
|
|
||||||
IFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcN
|
|
||||||
MDYwMzIyMTU1NDI4WhcNMjUxMjMxMjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMg
|
|
||||||
VHJ1c3RDZW50ZXIgR21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYw
|
|
||||||
JAYDVQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcNAQEBBQAD
|
|
||||||
ggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSRJJZ4Hgmgm5qVSkr1YnwC
|
|
||||||
qMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3TfCZdzHd55yx4Oagmcw6iXSVphU9VDprv
|
|
||||||
xrlE4Vc93x9UIuVvZaozhDrzznq+VZeujRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtw
|
|
||||||
ag+1m7Z3W0hZneTvWq3zwZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9O
|
|
||||||
gdwZu5GQfezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYDVR0j
|
|
||||||
BBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
|
|
||||||
AYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0GCSqGSIb3DQEBBQUAA4IBAQAo0uCG
|
|
||||||
1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X17caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/Cy
|
|
||||||
vwbZ71q+s2IhtNerNXxTPqYn8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3
|
|
||||||
ghUJGooWMNjsydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT
|
|
||||||
ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/2TYcuiUaUj0a
|
|
||||||
7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Deutsche Telekom Root CA 2
|
Deutsche Telekom Root CA 2
|
||||||
==========================
|
==========================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -1661,28 +1437,6 @@ dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
|
|||||||
Cm26OWMohpLzGITY+9HPBVZkVw==
|
Cm26OWMohpLzGITY+9HPBVZkVw==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
ComSign Secured CA
|
|
||||||
==================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDqzCCApOgAwIBAgIRAMcoRwmzuGxFjB36JPU2TukwDQYJKoZIhvcNAQEFBQAwPDEbMBkGA1UE
|
|
||||||
AxMSQ29tU2lnbiBTZWN1cmVkIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQGEwJJTDAeFw0w
|
|
||||||
NDAzMjQxMTM3MjBaFw0yOTAzMTYxNTA0NTZaMDwxGzAZBgNVBAMTEkNvbVNpZ24gU2VjdXJlZCBD
|
|
||||||
QTEQMA4GA1UEChMHQ29tU2lnbjELMAkGA1UEBhMCSUwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
|
|
||||||
ggEKAoIBAQDGtWhfHZQVw6QIVS3joFd67+l0Kru5fFdJGhFeTymHDEjWaueP1H5XJLkGieQcPOqs
|
|
||||||
49ohgHMhCu95mGwfCP+hUH3ymBvJVG8+pSjsIQQPRbsHPaHA+iqYHU4Gk/v1iDurX8sWv+bznkqH
|
|
||||||
7Rnqwp9D5PGBpX8QTz7RSmKtUxvLg/8HZaWSLWapW7ha9B20IZFKF3ueMv5WJDmyVIRD9YTC2LxB
|
|
||||||
kMyd1mja6YJQqTtoz7VdApRgFrFD2UNd3V2Hbuq7s8lr9gOUCXDeFhF6K+h2j0kQmHe5Y1yLM5d1
|
|
||||||
9guMsqtb3nQgJT/j8xH5h2iGNXHDHYwt6+UarA9z1YJZQIDTAgMBAAGjgacwgaQwDAYDVR0TBAUw
|
|
||||||
AwEB/zBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vZmVkaXIuY29tc2lnbi5jby5pbC9jcmwvQ29t
|
|
||||||
U2lnblNlY3VyZWRDQS5jcmwwDgYDVR0PAQH/BAQDAgGGMB8GA1UdIwQYMBaAFMFL7XC29z58ADsA
|
|
||||||
j8c+DkWfHl3sMB0GA1UdDgQWBBTBS+1wtvc+fAA7AI/HPg5Fnx5d7DANBgkqhkiG9w0BAQUFAAOC
|
|
||||||
AQEAFs/ukhNQq3sUnjO2QiBq1BW9Cav8cujvR3qQrFHBZE7piL1DRYHjZiM/EoZNGeQFsOY3wo3a
|
|
||||||
BijJD4mkU6l1P7CW+6tMM1X5eCZGbxs2mPtCdsGCuY7e+0X5YxtiOzkGynd6qDwJz2w2PQ8KRUtp
|
|
||||||
FhpFfTMDZflScZAmlaxMDPWLkz/MdXSFmLr/YnpNH4n+rr2UAJm/EaXc4HnFFgt9AmEd6oX5AhVP
|
|
||||||
51qJThRv4zdLhfXBPGHg/QVBspJ/wx2g0K5SZGBrGMYmnNj1ZOQ2GmKfig8+/21OGVZOIJFsnzQz
|
|
||||||
OjRXUDpvgV4GxvU+fE6OK85lBi5d0ipTdF7Tbieejw==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Cybertrust Global Root
|
Cybertrust Global Root
|
||||||
======================
|
======================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -1784,26 +1538,6 @@ fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w
|
|||||||
wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
|
wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
Buypass Class 3 CA 1
|
|
||||||
====================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDUzCCAjugAwIBAgIBAjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
|
|
||||||
QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMyBDQSAxMB4XDTA1
|
|
||||||
MDUwOTE0MTMwM1oXDTE1MDUwOTE0MTMwM1owSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
|
|
||||||
c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDMgQ0EgMTCCASIwDQYJKoZI
|
|
||||||
hvcNAQEBBQADggEPADCCAQoCggEBAKSO13TZKWTeXx+HgJHqTjnmGcZEC4DVC69TB4sSveZn8AKx
|
|
||||||
ifZgisRbsELRwCGoy+Gb72RRtqfPFfV0gGgEkKBYouZ0plNTVUhjP5JW3SROjvi6K//zNIqeKNc0
|
|
||||||
n6wv1g/xpC+9UrJJhW05NfBEMJNGJPO251P7vGGvqaMU+8IXF4Rs4HyI+MkcVyzwPX6UvCWThOia
|
|
||||||
AJpFBUJXgPROztmuOfbIUxAMZTpHe2DC1vqRycZxbL2RhzyRhkmr8w+gbCZ2Xhysm3HljbybIR6c
|
|
||||||
1jh+JIAVMYKWsUnTYjdbiAwKYjT+p0h+mbEwi5A3lRyoH6UsjfRVyNvdWQrCrXig9IsCAwEAAaNC
|
|
||||||
MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUOBTmyPCppAP0Tj4io1vy1uCtQHQwDgYDVR0P
|
|
||||||
AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQABZ6OMySU9E2NdFm/soT4JXJEVKirZgCFPBdy7
|
|
||||||
pYmrEzMqnji3jG8CcmPHc3ceCQa6Oyh7pEfJYWsICCD8igWKH7y6xsL+z27sEzNxZy5p+qksP2bA
|
|
||||||
EllNC1QCkoS72xLvg3BweMhT+t/Gxv/ciC8HwEmdMldg0/L2mSlf56oBzKwzqBwKu5HEA6BvtjT5
|
|
||||||
htOzdlSY9EqBs1OdTUDs5XcTRa9bqh/YL0yCe/4qxFi7T/ye/QNlGioOw6UgFpRreaaiErS7GqQj
|
|
||||||
el/wroQk5PMr+4okoyeYZdowdXb8GZHo2+ubPzK/QJcHJrrM85SFSnonk8+QQtS4Wxam58tAA915
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1
|
EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1
|
||||||
==========================================================================
|
==========================================================================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -2085,30 +1819,6 @@ IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm
|
|||||||
66+KAQ==
|
66+KAQ==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
CA Disig
|
|
||||||
========
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMK
|
|
||||||
QnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwHhcNMDYw
|
|
||||||
MzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlz
|
|
||||||
bGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3
|
|
||||||
DQEBAQUAA4IBDwAwggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgm
|
|
||||||
GErENx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnXmjxUizkD
|
|
||||||
Pw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYDXcDtab86wYqg6I7ZuUUo
|
|
||||||
hwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhWS8+2rT+MitcE5eN4TPWGqvWP+j1scaMt
|
|
||||||
ymfraHtuM6kMgiioTGohQBUgDCZbg8KpFhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8w
|
|
||||||
gfwwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0P
|
|
||||||
AQH/BAQDAgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cuZGlz
|
|
||||||
aWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5zay9jYS9jcmwvY2Ff
|
|
||||||
ZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2svY2EvY3JsL2NhX2Rpc2lnLmNybDAa
|
|
||||||
BgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEwDQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59t
|
|
||||||
WDYcPQuBDRIrRhCA/ec8J9B6yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3
|
|
||||||
mkkp7M5+cTxqEEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/
|
|
||||||
CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeBEicTXxChds6K
|
|
||||||
ezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFNPGO+I++MzVpQuGhU+QqZMxEA
|
|
||||||
4Z7CRneC9VkGjCFMhwnN5ag=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Juur-SK
|
Juur-SK
|
||||||
=======
|
=======
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -2635,29 +2345,6 @@ iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt
|
|||||||
+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
|
+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
A-Trust-nQual-03
|
|
||||||
================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJBVDFIMEYGA1UE
|
|
||||||
Cgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy
|
|
||||||
a2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5RdWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5R
|
|
||||||
dWFsLTAzMB4XDTA1MDgxNzIyMDAwMFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgw
|
|
||||||
RgYDVQQKDD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0
|
|
||||||
ZW52ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMMEEEtVHJ1
|
|
||||||
c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtPWFuA/OQO8BBC4SA
|
|
||||||
zewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUjlUC5B3ilJfYKvUWG6Nm9wASOhURh73+n
|
|
||||||
yfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZznF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPE
|
|
||||||
SU7l0+m0iKsMrmKS1GWH2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4
|
|
||||||
iHQF63n1k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs2e3V
|
|
||||||
cuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECERqlWdV
|
|
||||||
eRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAVdRU0VlIXLOThaq/Yy/kgM40
|
|
||||||
ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fGKOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmr
|
|
||||||
sQd7TZjTXLDR8KdCoLXEjq/+8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZd
|
|
||||||
JXDRZslo+S4RFGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS
|
|
||||||
mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmEDNuxUCAKGkq6
|
|
||||||
ahq97BvIxYSazQ==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
TWCA Root Certification Authority
|
TWCA Root Certification Authority
|
||||||
=================================
|
=================================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@ -3987,32 +3674,192 @@ kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C
|
|||||||
ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
|
ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
Lets Encrypt
|
TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5
|
||||||
============
|
=========================================================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIEqDCCA5CgAwIBAgIRAJgT9HUT5XULQ+dDHpceRL0wDQYJKoZIhvcNAQELBQAw
|
MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIxDzAN
|
||||||
PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
|
BgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
|
||||||
Ew5EU1QgUm9vdCBDQSBYMzAeFw0xNTEwMTkyMjMzMzZaFw0yMDEwMTkyMjMzMzZa
|
bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4xQjBABgNVBAMMOVTDnFJLVFJVU1Qg
|
||||||
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
|
RWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBINTAeFw0xMzA0MzAw
|
||||||
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMTCCASIwDQYJKoZIhvcNAQEBBQAD
|
ODA3MDFaFw0yMzA0MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0w
|
||||||
ggEPADCCAQoCggEBAJzTDPBa5S5Ht3JdN4OzaGMw6tc1Jhkl4b2+NfFwki+3uEtB
|
SwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnE
|
||||||
BaupnjUIWOyxKsRohwuj43Xk5vOnYnG6eYFgH9eRmp/z0HhncchpDpWRz/7mmelg
|
n2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRp
|
||||||
PEjMfspNdxIknUcbWuu57B43ABycrHunBerOSuu9QeU2mLnL/W08lmjfIypCkAyG
|
ZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
||||||
dGfIf6WauFJhFBM/ZemCh8vb+g5W9oaJ84U/l4avsNwa72sNlRZ9xCugZbKZBDZ1
|
CgKCAQEApCUZ4WWe60ghUEoI5RHwWrom/4NZzkQqL/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537
|
||||||
gGusSvMbkEl4L6KWTyogJSkExnTA0DHNjzE4lRa6qDO4Q/GxH8Mwf6J5MRM9LTb4
|
jVJp45wnEFPzpALFp/kRGml1bsMdi9GYjZOHp3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1m
|
||||||
4/zyM2q5OTHFr8SNDR1kFjOq+oQpttQLwNh9w5MCAwEAAaOCAZIwggGOMBIGA1Ud
|
ep5Fimh34khon6La8eHBEJ/rPCmBp+EyCNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z5UNP
|
||||||
EwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMH8GCCsGAQUFBwEBBHMwcTAy
|
9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0hO8EuPbJbKoCPrZV
|
||||||
BggrBgEFBQcwAYYmaHR0cDovL2lzcmcudHJ1c3RpZC5vY3NwLmlkZW50cnVzdC5j
|
4jI3X/xml1/N1p7HIL9Nxqw/dV8c7TKcfGkAaZHjIxhT6QIDAQABo0IwQDAdBgNVHQ4EFgQUVpkH
|
||||||
b20wOwYIKwYBBQUHMAKGL2h0dHA6Ly9hcHBzLmlkZW50cnVzdC5jb20vcm9vdHMv
|
HtOsDGlktAxQR95DLL4gwPswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
|
||||||
ZHN0cm9vdGNheDMucDdjMB8GA1UdIwQYMBaAFMSnsaR7LHH62+FLkHX/xBVghYkQ
|
hvcNAQELBQADggEBAJ5FdnsXSDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPo
|
||||||
MFQGA1UdIARNMEswCAYGZ4EMAQIBMD8GCysGAQQBgt8TAQEBMDAwLgYIKwYBBQUH
|
BP5yCccLqh0lVX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwq
|
||||||
AgEWImh0dHA6Ly9jcHMucm9vdC14MS5sZXRzZW5jcnlwdC5vcmcwPAYDVR0fBDUw
|
URawXs3qZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nfpeYVhDfwwvJl
|
||||||
MzAxoC+gLYYraHR0cDovL2NybC5pZGVudHJ1c3QuY29tL0RTVFJPT1RDQVgzQ1JM
|
lpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CFYv4HAqGEVka+lgqaE9chTLd8
|
||||||
LmNybDATBgNVHR4EDDAKoQgwBoIELm1pbDAdBgNVHQ4EFgQUqEpqYwR93brm0Tm3
|
B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU=
|
||||||
pkVl7/Oo7KEwDQYJKoZIhvcNAQELBQADggEBANHIIkus7+MJiZZQsY14cCoBG1hd
|
-----END CERTIFICATE-----
|
||||||
v0J20/FyWo5ppnfjL78S2k4s2GLRJ7iD9ZDKErndvbNFGcsW+9kKK/TnY21hp4Dd
|
|
||||||
ITv8S9ZYQ7oaoqs7HwhEMY9sibED4aXw09xrJZTC9zK1uIfW6t5dHQjuOWv+HHoW
|
TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H6
|
||||||
ZnupyxpsEUlEaFb+/SCI4KCSBdAsYxAcsHYI5xxEI4LutHp6s3OT2FuO90WfdsIk
|
=========================================================
|
||||||
6q78OMSdn875bNjdBYAqxUp2/LEIHfDBkLoQz0hFJmwAbYahqKaLn73PAAm1X2kj
|
-----BEGIN CERTIFICATE-----
|
||||||
f1w8DdnkabOLGeOVcj9LQ+s67vBykx4anTjURkbqZslUEUsn2k5xeua2zUk=
|
MIIEJjCCAw6gAwIBAgIGfaHyZeyKMA0GCSqGSIb3DQEBCwUAMIGxMQswCQYDVQQGEwJUUjEPMA0G
|
||||||
|
A1UEBwwGQW5rYXJhMU0wSwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
|
||||||
|
acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBF
|
||||||
|
bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg2MB4XDTEzMTIxODA5
|
||||||
|
MDQxMFoXDTIzMTIxNjA5MDQxMFowgbExCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExTTBL
|
||||||
|
BgNVBAoMRFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBCaWxpxZ9pbSBHw7x2ZW5sacSf
|
||||||
|
aSBIaXptZXRsZXJpIEEuxZ4uMUIwQAYDVQQDDDlUw5xSS1RSVVNUIEVsZWt0cm9uaWsgU2VydGlm
|
||||||
|
aWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLEgSDYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
|
||||||
|
AoIBAQCdsGjW6L0UlqMACprx9MfMkU1xeHe59yEmFXNRFpQJRwXiM/VomjX/3EsvMsew7eKC5W/a
|
||||||
|
2uqsxgbPJQ1BgfbBOCK9+bGlprMBvD9QFyv26WZV1DOzXPhDIHiTVRZwGTLmiddk671IUP320EED
|
||||||
|
wnS3/faAz1vFq6TWlRKb55cTMgPp1KtDWxbtMyJkKbbSk60vbNg9tvYdDjTu0n2pVQ8g9P0pu5Fb
|
||||||
|
HH3GQjhtQiht1AH7zYiXSX6484P4tZgvsycLSF5W506jM7NE1qXyGJTtHB6plVxiSvgNZ1GpryHV
|
||||||
|
+DKdeboaX+UEVU0TRv/yz3THGmNtwx8XEsMeED5gCLMxAgMBAAGjQjBAMB0GA1UdDgQWBBTdVRcT
|
||||||
|
9qzoSCHK77Wv0QAy7Z6MtTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
|
||||||
|
9w0BAQsFAAOCAQEAb1gNl0OqFlQ+v6nfkkU/hQu7VtMMUszIv3ZnXuaqs6fvuay0EBQNdH49ba3R
|
||||||
|
fdCaqaXKGDsCQC4qnFAUi/5XfldcEQlLNkVS9z2sFP1E34uXI9TDwe7UU5X+LEr+DXCqu4svLcsy
|
||||||
|
o4LyVN/Y8t3XSHLuSqMplsNEzm61kod2pLv0kmzOLBQJZo6NrRa1xxsJYTvjIKIDgI6tflEATseW
|
||||||
|
hvtDmHd9KMeP2Cpu54Rvl0EpABZeTeIT6lnAY2c6RPuY/ATTMHKm9ocJV612ph1jmv3XZch4gyt1
|
||||||
|
O6VbuA1df74jrlZVlFjvH4GMKrLN5ptjnhi85WsGtAuYSyher4hYyw==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
Certinomis - Root CA
|
||||||
|
====================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
|
||||||
|
Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAbBgNVBAMTFENlcnRpbm9taXMg
|
||||||
|
LSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMzMTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIx
|
||||||
|
EzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRD
|
||||||
|
ZXJ0aW5vbWlzIC0gUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQos
|
||||||
|
P5L2fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJflLieY6pOo
|
||||||
|
d5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQVWZUKxkd8aRi5pwP5ynap
|
||||||
|
z8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDFTKWrteoB4owuZH9kb/2jJZOLyKIOSY00
|
||||||
|
8B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09x
|
||||||
|
RLWtwHkziOC/7aOgFLScCbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE
|
||||||
|
6OXWk6RiwsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJwx3t
|
||||||
|
FvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SGm/lg0h9tkQPTYKbV
|
||||||
|
PZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4F2iw4lNVYC2vPsKD2NkJK/DAZNuH
|
||||||
|
i5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZngWVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGj
|
||||||
|
YzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I
|
||||||
|
6tNxIqSSaHh02TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF
|
||||||
|
AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/0KGRHCwPT5iV
|
||||||
|
WVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWwF6YSjNRieOpWauwK0kDDPAUw
|
||||||
|
Pk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZSg081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAX
|
||||||
|
lCOotQqSD7J6wWAsOMwaplv/8gzjqh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJ
|
||||||
|
y29SWwNyhlCVCNSNh4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9
|
||||||
|
Iff/ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8Vbtaw5Bng
|
||||||
|
DwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwjY/M50n92Uaf0yKHxDHYi
|
||||||
|
I0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nM
|
||||||
|
cyrDflOR1m749fPH0FFNjkulW+YZFzvWgQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVr
|
||||||
|
hkIGuUE=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
OISTE WISeKey Global Root GB CA
|
||||||
|
===============================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQG
|
||||||
|
EwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl
|
||||||
|
ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAw
|
||||||
|
MzJaFw0zOTEyMDExNTEwMzFaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYD
|
||||||
|
VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEds
|
||||||
|
b2JhbCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3HEokKtaX
|
||||||
|
scriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGxWuR51jIjK+FTzJlFXHtP
|
||||||
|
rby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk
|
||||||
|
9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNku7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4o
|
||||||
|
Qnc/nSMbsrY9gBQHTC5P99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvg
|
||||||
|
GUpuuy9rM2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB
|
||||||
|
/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZI
|
||||||
|
hvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrghcViXfa43FK8+5/ea4n32cZiZBKpD
|
||||||
|
dHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0
|
||||||
|
VQreUGdNZtGn//3ZwLWoo4rOZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEui
|
||||||
|
HZeeevJuQHHfaPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic
|
||||||
|
Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
Certification Authority of WoSign G2
|
||||||
|
====================================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDfDCCAmSgAwIBAgIQayXaioidfLwPBbOxemFFRDANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQG
|
||||||
|
EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxLTArBgNVBAMTJENlcnRpZmljYXRpb24g
|
||||||
|
QXV0aG9yaXR5IG9mIFdvU2lnbiBHMjAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4NThaMFgx
|
||||||
|
CzAJBgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEtMCsGA1UEAxMkQ2VydGlm
|
||||||
|
aWNhdGlvbiBBdXRob3JpdHkgb2YgV29TaWduIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
||||||
|
CgKCAQEAvsXEoCKASU+/2YcRxlPhuw+9YH+v9oIOH9ywjj2X4FA8jzrvZjtFB5sg+OPXJYY1kBai
|
||||||
|
XW8wGQiHC38Gsp1ij96vkqVg1CuAmlI/9ZqD6TRay9nVYlzmDuDfBpgOgHzKtB0TiGsOqCR3A9Du
|
||||||
|
W/PKaZE1OVbFbeP3PU9ekzgkyhjpJMuSA93MHD0JcOQg5PGurLtzaaNjOg9FD6FKmsLRY6zLEPg9
|
||||||
|
5k4ot+vElbGs/V6r+kHLXZ1L3PR8du9nfwB6jdKgGlxNIuG12t12s9R23164i5jIFFTMaxeSt+BK
|
||||||
|
v0mUYQs4kI9dJGwlezt52eJ+na2fmKEG/HgUYFf47oB3sQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC
|
||||||
|
AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU+mCp62XF3RYUCE4MD42b4Pdkr2cwDQYJKoZI
|
||||||
|
hvcNAQELBQADggEBAFfDejaCnI2Y4qtAqkePx6db7XznPWZaOzG73/MWM5H8fHulwqZm46qwtyeY
|
||||||
|
P0nXYGdnPzZPSsvxFPpahygc7Y9BMsaV+X3avXtbwrAh449G3CE4Q3RM+zD4F3LBMvzIkRfEzFg3
|
||||||
|
TgvMWvchNSiDbGAtROtSjFA9tWwS1/oJu2yySrHFieT801LYYRf+epSEj3m2M1m6D8QL4nCgS3gu
|
||||||
|
+sif/a+RZQp4OBXllxcU3fngLDT4ONCEIgDAFFEYKwLcMFrw6AF8NTojrwjkr6qOKEJJLvD1mTS+
|
||||||
|
7Q9LGOHSJDy7XUe3IfKN0QqZjuNuPq1w4I+5ysxugTH2e5x6eeRncRg=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
CA WoSign ECC Root
|
||||||
|
==================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICCTCCAY+gAwIBAgIQaEpYcIBr8I8C+vbe6LCQkDAKBggqhkjOPQQDAzBGMQswCQYDVQQGEwJD
|
||||||
|
TjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMTEkNBIFdvU2lnbiBFQ0MgUm9v
|
||||||
|
dDAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4NThaMEYxCzAJBgNVBAYTAkNOMRowGAYDVQQK
|
||||||
|
ExFXb1NpZ24gQ0EgTGltaXRlZDEbMBkGA1UEAxMSQ0EgV29TaWduIEVDQyBSb290MHYwEAYHKoZI
|
||||||
|
zj0CAQYFK4EEACIDYgAE4f2OuEMkq5Z7hcK6C62N4DrjJLnSsb6IOsq/Srj57ywvr1FQPEd1bPiU
|
||||||
|
t5v8KB7FVMxjnRZLU8HnIKvNrCXSf4/CwVqCXjCLelTOA7WRf6qU0NGKSMyCBSah1VES1ns2o0Iw
|
||||||
|
QDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUqv3VWqP2h4syhf3R
|
||||||
|
MluARZPzA7gwCgYIKoZIzj0EAwMDaAAwZQIxAOSkhLCB1T2wdKyUpOgOPQB0TKGXa/kNUTyh2Tv0
|
||||||
|
Daupn75OcsqF1NnstTJFGG+rrQIwfcf3aWMvoeGY7xMQ0Xk/0f7qO3/eVvSQsRUR2LIiFdAvwyYu
|
||||||
|
a/GRspBl9JrmkO5K
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
SZAFIR ROOT CA2
|
||||||
|
===============
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQELBQAwUTELMAkG
|
||||||
|
A1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6ZW5pb3dhIFMuQS4xGDAWBgNV
|
||||||
|
BAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkwNzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJ
|
||||||
|
BgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYD
|
||||||
|
VQQDDA9TWkFGSVIgUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5Q
|
||||||
|
qEvNQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT3PSQ1hNK
|
||||||
|
DJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw3gAeqDRHu5rr/gsUvTaE
|
||||||
|
2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr63fE9biCloBK0TXC5ztdyO4mTp4CEHCdJ
|
||||||
|
ckm1/zuVnsHMyAHs6A6KCpbns6aH5db5BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwi
|
||||||
|
ieDhZNRnvDF5YTy7ykHNXGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P
|
||||||
|
AQH/BAQDAgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsFAAOC
|
||||||
|
AQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw8PRBEew/R40/cof5
|
||||||
|
O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOGnXkZ7/e7DDWQw4rtTw/1zBLZpD67
|
||||||
|
oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCPoky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul
|
||||||
|
4+vJhaAlIDf7js4MNIThPIGyd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6
|
||||||
|
+/NNIxuZMzSgLvWpCz/UXeHPhJ/iGcJfitYgHuNztw==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
Certum Trusted Network CA 2
|
||||||
|
===========================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UE
|
||||||
|
BhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1
|
||||||
|
bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29y
|
||||||
|
ayBDQSAyMCIYDzIwMTExMDA2MDgzOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQ
|
||||||
|
TDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENl
|
||||||
|
cnRpZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENB
|
||||||
|
IDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWADGSdhhuWZGc/IjoedQF9
|
||||||
|
7/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+o
|
||||||
|
CgCXhVqqndwpyeI1B+twTUrWwbNWuKFBOJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40b
|
||||||
|
Rr5HMNUuctHFY9rnY3lEfktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2p
|
||||||
|
uTRZCr+ESv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1mo130
|
||||||
|
GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02isx7QBlrd9pPPV3WZ
|
||||||
|
9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOWOZV7bIBaTxNyxtd9KXpEulKkKtVB
|
||||||
|
Rgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgezTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pye
|
||||||
|
hizKV/Ma5ciSixqClnrDvFASadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vM
|
||||||
|
BhBgu4M1t15n3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
|
||||||
|
AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI
|
||||||
|
hvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQF/xlhMcQSZDe28cmk4gmb3DW
|
||||||
|
Al45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTfCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuA
|
||||||
|
L55MYIR4PSFk1vtBHxgP58l1cb29XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMo
|
||||||
|
clm2q8KMZiYcdywmdjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tM
|
||||||
|
pkT/WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jbAoJnwTnb
|
||||||
|
w3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksqP/ujmv5zMnHCnsZy4Ypo
|
||||||
|
J/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Kob7a6bINDd82Kkhehnlt4Fj1F4jNy3eFm
|
||||||
|
ypnTycUm/Q1oBEauttmbjL4ZvrHG8hnjXALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLX
|
||||||
|
is7VmFxWlgPF7ncGNf/P5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7
|
||||||
|
zAYspsbiDrW5viSP
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
27
library/certs/lets-encrypt-x3-cross-signed.pem
Normal file
27
library/certs/lets-encrypt-x3-cross-signed.pem
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/
|
||||||
|
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
|
||||||
|
DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow
|
||||||
|
SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT
|
||||||
|
GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC
|
||||||
|
AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF
|
||||||
|
q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8
|
||||||
|
SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0
|
||||||
|
Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA
|
||||||
|
a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj
|
||||||
|
/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T
|
||||||
|
AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG
|
||||||
|
CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv
|
||||||
|
bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k
|
||||||
|
c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw
|
||||||
|
VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC
|
||||||
|
ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz
|
||||||
|
MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu
|
||||||
|
Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF
|
||||||
|
AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo
|
||||||
|
uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/
|
||||||
|
wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu
|
||||||
|
X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG
|
||||||
|
PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6
|
||||||
|
KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
|
||||||
|
-----END CERTIFICATE-----
|
@ -1,4 +1,24 @@
|
|||||||
|
|
||||||
|
v2.8.0 (2016-06-19)
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
- getEventSources method (#3103, #2433)
|
||||||
|
- getEventSourceById method (#3223)
|
||||||
|
- refetchEventSources method (#3103, #1328, #254)
|
||||||
|
- removeEventSources method (#3165, #948)
|
||||||
|
- prevent flicker when refetchEvents is called (#3123, #2558)
|
||||||
|
- fix for removing event sources that share same URL (#3209)
|
||||||
|
- jQuery 3 support (#3197, #3124)
|
||||||
|
- Travis CI integration (#3218)
|
||||||
|
- EditorConfig for promoting consistent code style (#141)
|
||||||
|
- use en dash when formatting ranges (#3077)
|
||||||
|
- height:auto always shows scrollbars in month view on FF (#3202)
|
||||||
|
- new languages:
|
||||||
|
- Basque (#2992)
|
||||||
|
- Galician (#194)
|
||||||
|
- Luxembourgish (#2979)
|
||||||
|
|
||||||
|
|
||||||
v2.7.3 (2016-06-02)
|
v2.7.3 (2016-06-02)
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*!
|
/*!
|
||||||
* FullCalendar v2.7.3 Stylesheet
|
* FullCalendar v2.8.0 Stylesheet
|
||||||
* Docs & License: http://fullcalendar.io/
|
* Docs & License: http://fullcalendar.io/
|
||||||
* (c) 2016 Adam Shaw
|
* (c) 2016 Adam Shaw
|
||||||
*/
|
*/
|
||||||
@ -367,6 +367,7 @@ hr.fc-divider {
|
|||||||
|
|
||||||
.fc table {
|
.fc table {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
box-sizing: border-box; /* fix scrollbar issue in firefox */
|
||||||
table-layout: fixed;
|
table-layout: fixed;
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
border-spacing: 0;
|
border-spacing: 0;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*!
|
/*!
|
||||||
* FullCalendar v2.7.3
|
* FullCalendar v2.8.0
|
||||||
* Docs & License: http://fullcalendar.io/
|
* Docs & License: http://fullcalendar.io/
|
||||||
* (c) 2016 Adam Shaw
|
* (c) 2016 Adam Shaw
|
||||||
*/
|
*/
|
||||||
@ -19,7 +19,7 @@
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
var FC = $.fullCalendar = {
|
var FC = $.fullCalendar = {
|
||||||
version: "2.7.3",
|
version: "2.8.0",
|
||||||
internalApiVersion: 4
|
internalApiVersion: 4
|
||||||
};
|
};
|
||||||
var fcViews = FC.views = {};
|
var fcViews = FC.views = {};
|
||||||
@ -1054,6 +1054,20 @@ function debounce(func, wait, immediate) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// HACK around jQuery's now A+ promises: execute callback synchronously if already resolved.
|
||||||
|
// thenFunc shouldn't accept args.
|
||||||
|
// similar to whenResources in Scheduler plugin.
|
||||||
|
function syncThen(promise, thenFunc) {
|
||||||
|
// not a promise, or an already-resolved promise?
|
||||||
|
if (!promise || !promise.then || promise.state() === 'resolved') {
|
||||||
|
return $.when(thenFunc()); // resolve immediately
|
||||||
|
}
|
||||||
|
else if (thenFunc) {
|
||||||
|
return promise.then(thenFunc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
var ambigDateOfMonthRegex = /^\s*\d{4}-\d\d$/;
|
var ambigDateOfMonthRegex = /^\s*\d{4}-\d\d$/;
|
||||||
@ -3960,7 +3974,7 @@ var Grid = FC.Grid = Class.extend(ListenerMixin, MouseIgnorerMixin, {
|
|||||||
fillSegTag: 'div', // subclasses can override
|
fillSegTag: 'div', // subclasses can override
|
||||||
|
|
||||||
|
|
||||||
// Builds the HTML needed for one fill segment. Generic enought o work with different types.
|
// Builds the HTML needed for one fill segment. Generic enough to work with different types.
|
||||||
fillSegHtml: function(type, seg) {
|
fillSegHtml: function(type, seg) {
|
||||||
|
|
||||||
// custom hooks per-type
|
// custom hooks per-type
|
||||||
@ -8106,15 +8120,14 @@ var View = FC.View = Class.extend(EmitterMixin, ListenerMixin, {
|
|||||||
|
|
||||||
this.calendar.freezeContentHeight();
|
this.calendar.freezeContentHeight();
|
||||||
|
|
||||||
return this.clear().then(function() { // clear the content first (async)
|
return syncThen(this.clear(), function() { // clear the content first
|
||||||
return (
|
return (
|
||||||
_this.displaying =
|
_this.displaying =
|
||||||
$.when(_this.displayView(date)) // displayView might return a promise
|
syncThen(_this.displayView(date), function() { // displayView might return a promise
|
||||||
.then(function() {
|
_this.forceScroll(_this.computeInitialScroll(scrollState));
|
||||||
_this.forceScroll(_this.computeInitialScroll(scrollState));
|
_this.calendar.unfreezeContentHeight();
|
||||||
_this.calendar.unfreezeContentHeight();
|
_this.triggerRender();
|
||||||
_this.triggerRender();
|
})
|
||||||
})
|
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -8128,7 +8141,7 @@ var View = FC.View = Class.extend(EmitterMixin, ListenerMixin, {
|
|||||||
var displaying = this.displaying;
|
var displaying = this.displaying;
|
||||||
|
|
||||||
if (displaying) { // previously displayed, or in the process of being displayed?
|
if (displaying) { // previously displayed, or in the process of being displayed?
|
||||||
return displaying.then(function() { // wait for the display to finish
|
return syncThen(displaying, function() { // wait for the display to finish
|
||||||
_this.displaying = null;
|
_this.displaying = null;
|
||||||
_this.clearEvents();
|
_this.clearEvents();
|
||||||
return _this.clearView(); // might return a promise. chain it
|
return _this.clearView(); // might return a promise. chain it
|
||||||
@ -9321,6 +9334,7 @@ function Calendar_constructor(element, overrides) {
|
|||||||
t.render = render;
|
t.render = render;
|
||||||
t.destroy = destroy;
|
t.destroy = destroy;
|
||||||
t.refetchEvents = refetchEvents;
|
t.refetchEvents = refetchEvents;
|
||||||
|
t.refetchEventSources = refetchEventSources;
|
||||||
t.reportEvents = reportEvents;
|
t.reportEvents = reportEvents;
|
||||||
t.reportEventChange = reportEventChange;
|
t.reportEventChange = reportEventChange;
|
||||||
t.rerenderEvents = renderEvents; // `renderEvents` serves as a rerender. an API method
|
t.rerenderEvents = renderEvents; // `renderEvents` serves as a rerender. an API method
|
||||||
@ -9511,6 +9525,7 @@ function Calendar_constructor(element, overrides) {
|
|||||||
EventManager.call(t, options);
|
EventManager.call(t, options);
|
||||||
var isFetchNeeded = t.isFetchNeeded;
|
var isFetchNeeded = t.isFetchNeeded;
|
||||||
var fetchEvents = t.fetchEvents;
|
var fetchEvents = t.fetchEvents;
|
||||||
|
var fetchEventSources = t.fetchEventSources;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -9750,11 +9765,16 @@ function Calendar_constructor(element, overrides) {
|
|||||||
|
|
||||||
|
|
||||||
function refetchEvents() { // can be called as an API method
|
function refetchEvents() { // can be called as an API method
|
||||||
destroyEvents(); // so that events are cleared before user starts waiting for AJAX
|
|
||||||
fetchAndRenderEvents();
|
fetchAndRenderEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// TODO: move this into EventManager?
|
||||||
|
function refetchEventSources(matchInputs) {
|
||||||
|
fetchEventSources(t.getEventSourcesByMatchArray(matchInputs));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function renderEvents() { // destroys old events if previously rendered
|
function renderEvents() { // destroys old events if previously rendered
|
||||||
if (elementVisible()) {
|
if (elementVisible()) {
|
||||||
freezeContentHeight();
|
freezeContentHeight();
|
||||||
@ -9762,13 +9782,6 @@ function Calendar_constructor(element, overrides) {
|
|||||||
unfreezeContentHeight();
|
unfreezeContentHeight();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function destroyEvents() {
|
|
||||||
freezeContentHeight();
|
|
||||||
currentView.clearEvents();
|
|
||||||
unfreezeContentHeight();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function getAndRenderEvents() {
|
function getAndRenderEvents() {
|
||||||
@ -9979,7 +9992,7 @@ function Calendar_constructor(element, overrides) {
|
|||||||
|
|
||||||
Calendar.defaults = {
|
Calendar.defaults = {
|
||||||
|
|
||||||
titleRangeSeparator: ' \u2014 ', // emphasized dash
|
titleRangeSeparator: ' \u2013 ', // en dash
|
||||||
monthYearFormat: 'MMMM YYYY', // required for en. other languages rely on datepicker computable option
|
monthYearFormat: 'MMMM YYYY', // required for en. other languages rely on datepicker computable option
|
||||||
|
|
||||||
defaultTimedEventDuration: '02:00:00',
|
defaultTimedEventDuration: '02:00:00',
|
||||||
@ -10528,14 +10541,14 @@ function Header(calendar, options) {
|
|||||||
|
|
||||||
function disableButton(buttonName) {
|
function disableButton(buttonName) {
|
||||||
el.find('.fc-' + buttonName + '-button')
|
el.find('.fc-' + buttonName + '-button')
|
||||||
.attr('disabled', 'disabled')
|
.prop('disabled', true)
|
||||||
.addClass(tm + '-state-disabled');
|
.addClass(tm + '-state-disabled');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function enableButton(buttonName) {
|
function enableButton(buttonName) {
|
||||||
el.find('.fc-' + buttonName + '-button')
|
el.find('.fc-' + buttonName + '-button')
|
||||||
.removeAttr('disabled')
|
.prop('disabled', false)
|
||||||
.removeClass(tm + '-state-disabled');
|
.removeClass(tm + '-state-disabled');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10566,8 +10579,14 @@ function EventManager(options) { // assumed to be a calendar
|
|||||||
// exports
|
// exports
|
||||||
t.isFetchNeeded = isFetchNeeded;
|
t.isFetchNeeded = isFetchNeeded;
|
||||||
t.fetchEvents = fetchEvents;
|
t.fetchEvents = fetchEvents;
|
||||||
|
t.fetchEventSources = fetchEventSources;
|
||||||
|
t.getEventSources = getEventSources;
|
||||||
|
t.getEventSourceById = getEventSourceById;
|
||||||
|
t.getEventSourcesByMatchArray = getEventSourcesByMatchArray;
|
||||||
|
t.getEventSourcesByMatch = getEventSourcesByMatch;
|
||||||
t.addEventSource = addEventSource;
|
t.addEventSource = addEventSource;
|
||||||
t.removeEventSource = removeEventSource;
|
t.removeEventSource = removeEventSource;
|
||||||
|
t.removeEventSources = removeEventSources;
|
||||||
t.updateEvent = updateEvent;
|
t.updateEvent = updateEvent;
|
||||||
t.renderEvent = renderEvent;
|
t.renderEvent = renderEvent;
|
||||||
t.removeEvents = removeEvents;
|
t.removeEvents = removeEvents;
|
||||||
@ -10585,8 +10604,7 @@ function EventManager(options) { // assumed to be a calendar
|
|||||||
var stickySource = { events: [] };
|
var stickySource = { events: [] };
|
||||||
var sources = [ stickySource ];
|
var sources = [ stickySource ];
|
||||||
var rangeStart, rangeEnd;
|
var rangeStart, rangeEnd;
|
||||||
var currentFetchID = 0;
|
var pendingSourceCnt = 0; // outstanding fetch requests, max one per source
|
||||||
var pendingSourceCnt = 0;
|
|
||||||
var cache = []; // holds events that have already been expanded
|
var cache = []; // holds events that have already been expanded
|
||||||
|
|
||||||
|
|
||||||
@ -10616,23 +10634,58 @@ function EventManager(options) { // assumed to be a calendar
|
|||||||
function fetchEvents(start, end) {
|
function fetchEvents(start, end) {
|
||||||
rangeStart = start;
|
rangeStart = start;
|
||||||
rangeEnd = end;
|
rangeEnd = end;
|
||||||
cache = [];
|
fetchEventSources(sources, 'reset');
|
||||||
var fetchID = ++currentFetchID;
|
}
|
||||||
var len = sources.length;
|
|
||||||
pendingSourceCnt = len;
|
|
||||||
for (var i=0; i<len; i++) {
|
// expects an array of event source objects (the originals, not copies)
|
||||||
fetchEventSource(sources[i], fetchID);
|
// `specialFetchType` is an optimization parameter that affects purging of the event cache.
|
||||||
|
function fetchEventSources(specificSources, specialFetchType) {
|
||||||
|
var i, source;
|
||||||
|
|
||||||
|
if (specialFetchType === 'reset') {
|
||||||
|
cache = [];
|
||||||
|
}
|
||||||
|
else if (specialFetchType !== 'add') {
|
||||||
|
cache = excludeEventsBySources(cache, specificSources);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < specificSources.length; i++) {
|
||||||
|
source = specificSources[i];
|
||||||
|
|
||||||
|
// already-pending sources have already been accounted for in pendingSourceCnt
|
||||||
|
if (source._status !== 'pending') {
|
||||||
|
pendingSourceCnt++;
|
||||||
|
}
|
||||||
|
|
||||||
|
source._fetchId = (source._fetchId || 0) + 1;
|
||||||
|
source._status = 'pending';
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < specificSources.length; i++) {
|
||||||
|
source = specificSources[i];
|
||||||
|
|
||||||
|
tryFetchEventSource(source, source._fetchId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function fetchEventSource(source, fetchID) {
|
// fetches an event source and processes its result ONLY if it is still the current fetch.
|
||||||
|
// caller is responsible for incrementing pendingSourceCnt first.
|
||||||
|
function tryFetchEventSource(source, fetchId) {
|
||||||
_fetchEventSource(source, function(eventInputs) {
|
_fetchEventSource(source, function(eventInputs) {
|
||||||
var isArraySource = $.isArray(source.events);
|
var isArraySource = $.isArray(source.events);
|
||||||
var i, eventInput;
|
var i, eventInput;
|
||||||
var abstractEvent;
|
var abstractEvent;
|
||||||
|
|
||||||
if (fetchID == currentFetchID) {
|
if (
|
||||||
|
// is this the source's most recent fetch?
|
||||||
|
// if not, rely on an upcoming fetch of this source to decrement pendingSourceCnt
|
||||||
|
fetchId === source._fetchId &&
|
||||||
|
// event source no longer valid?
|
||||||
|
source._status !== 'rejected'
|
||||||
|
) {
|
||||||
|
source._status = 'resolved';
|
||||||
|
|
||||||
if (eventInputs) {
|
if (eventInputs) {
|
||||||
for (i = 0; i < eventInputs.length; i++) {
|
for (i = 0; i < eventInputs.length; i++) {
|
||||||
@ -10654,13 +10707,29 @@ function EventManager(options) { // assumed to be a calendar
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pendingSourceCnt--;
|
decrementPendingSourceCnt();
|
||||||
if (!pendingSourceCnt) {
|
|
||||||
reportEvents(cache);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function rejectEventSource(source) {
|
||||||
|
var wasPending = source._status === 'pending';
|
||||||
|
|
||||||
|
source._status = 'rejected';
|
||||||
|
|
||||||
|
if (wasPending) {
|
||||||
|
decrementPendingSourceCnt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function decrementPendingSourceCnt() {
|
||||||
|
pendingSourceCnt--;
|
||||||
|
if (!pendingSourceCnt) {
|
||||||
|
reportEvents(cache);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function _fetchEventSource(source, callback) {
|
function _fetchEventSource(source, callback) {
|
||||||
@ -10776,14 +10845,13 @@ function EventManager(options) { // assumed to be a calendar
|
|||||||
|
|
||||||
/* Sources
|
/* Sources
|
||||||
-----------------------------------------------------------------------------*/
|
-----------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
function addEventSource(sourceInput) {
|
function addEventSource(sourceInput) {
|
||||||
var source = buildEventSource(sourceInput);
|
var source = buildEventSource(sourceInput);
|
||||||
if (source) {
|
if (source) {
|
||||||
sources.push(source);
|
sources.push(source);
|
||||||
pendingSourceCnt++;
|
fetchEventSources([ source ], 'add'); // will eventually call reportEvents
|
||||||
fetchEventSource(source, currentFetchID); // will eventually call reportEvents
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10833,19 +10901,120 @@ function EventManager(options) { // assumed to be a calendar
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function removeEventSource(source) {
|
function removeEventSource(matchInput) {
|
||||||
sources = $.grep(sources, function(src) {
|
removeSpecificEventSources(
|
||||||
return !isSourcesEqual(src, source);
|
getEventSourcesByMatch(matchInput)
|
||||||
});
|
);
|
||||||
// remove all client events from that source
|
}
|
||||||
cache = $.grep(cache, function(e) {
|
|
||||||
return !isSourcesEqual(e.source, source);
|
|
||||||
});
|
// if called with no arguments, removes all.
|
||||||
|
function removeEventSources(matchInputs) {
|
||||||
|
if (matchInputs == null) {
|
||||||
|
removeSpecificEventSources(sources, true); // isAll=true
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
removeSpecificEventSources(
|
||||||
|
getEventSourcesByMatchArray(matchInputs)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function removeSpecificEventSources(targetSources, isAll) {
|
||||||
|
var i;
|
||||||
|
|
||||||
|
// cancel pending requests
|
||||||
|
for (i = 0; i < targetSources.length; i++) {
|
||||||
|
rejectEventSource(targetSources[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isAll) { // an optimization
|
||||||
|
sources = [];
|
||||||
|
cache = [];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// remove from persisted source list
|
||||||
|
sources = $.grep(sources, function(source) {
|
||||||
|
for (i = 0; i < targetSources.length; i++) {
|
||||||
|
if (source === targetSources[i]) {
|
||||||
|
return false; // exclude
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true; // include
|
||||||
|
});
|
||||||
|
|
||||||
|
cache = excludeEventsBySources(cache, targetSources);
|
||||||
|
}
|
||||||
|
|
||||||
reportEvents(cache);
|
reportEvents(cache);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function isSourcesEqual(source1, source2) {
|
function getEventSources() {
|
||||||
|
return sources.slice(1); // returns a shallow copy of sources with stickySource removed
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function getEventSourceById(id) {
|
||||||
|
return $.grep(sources, function(source) {
|
||||||
|
return source.id && source.id === id;
|
||||||
|
})[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// like getEventSourcesByMatch, but accepts multple match criteria (like multiple IDs)
|
||||||
|
function getEventSourcesByMatchArray(matchInputs) {
|
||||||
|
|
||||||
|
// coerce into an array
|
||||||
|
if (!matchInputs) {
|
||||||
|
matchInputs = [];
|
||||||
|
}
|
||||||
|
else if (!$.isArray(matchInputs)) {
|
||||||
|
matchInputs = [ matchInputs ];
|
||||||
|
}
|
||||||
|
|
||||||
|
var matchingSources = [];
|
||||||
|
var i;
|
||||||
|
|
||||||
|
// resolve raw inputs to real event source objects
|
||||||
|
for (i = 0; i < matchInputs.length; i++) {
|
||||||
|
matchingSources.push.apply( // append
|
||||||
|
matchingSources,
|
||||||
|
getEventSourcesByMatch(matchInputs[i])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return matchingSources;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// matchInput can either by a real event source object, an ID, or the function/URL for the source.
|
||||||
|
// returns an array of matching source objects.
|
||||||
|
function getEventSourcesByMatch(matchInput) {
|
||||||
|
var i, source;
|
||||||
|
|
||||||
|
// given an proper event source object
|
||||||
|
for (i = 0; i < sources.length; i++) {
|
||||||
|
source = sources[i];
|
||||||
|
if (source === matchInput) {
|
||||||
|
return [ source ];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// an ID match
|
||||||
|
source = getEventSourceById(matchInput);
|
||||||
|
if (source) {
|
||||||
|
return [ source ];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $.grep(sources, function(source) {
|
||||||
|
return isSourcesEquivalent(matchInput, source);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function isSourcesEquivalent(source1, source2) {
|
||||||
return source1 && source2 && getSourcePrimitive(source1) == getSourcePrimitive(source2);
|
return source1 && source2 && getSourcePrimitive(source1) == getSourcePrimitive(source2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10858,6 +11027,20 @@ function EventManager(options) { // assumed to be a calendar
|
|||||||
) ||
|
) ||
|
||||||
source; // the given argument *is* the primitive
|
source; // the given argument *is* the primitive
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// util
|
||||||
|
// returns a filtered array without events that are part of any of the given sources
|
||||||
|
function excludeEventsBySources(specificEvents, specificSources) {
|
||||||
|
return $.grep(specificEvents, function(event) {
|
||||||
|
for (var i = 0; i < specificSources.length; i++) {
|
||||||
|
if (event.source === specificSources[i]) {
|
||||||
|
return false; // exclude
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true; // keep
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
4
library/fullcalendar/fullcalendar.min.css
vendored
4
library/fullcalendar/fullcalendar.min.css
vendored
File diff suppressed because one or more lines are too long
10
library/fullcalendar/fullcalendar.min.js
vendored
10
library/fullcalendar/fullcalendar.min.js
vendored
File diff suppressed because one or more lines are too long
@ -1,5 +1,5 @@
|
|||||||
/*!
|
/*!
|
||||||
* FullCalendar v2.7.3 Print Stylesheet
|
* FullCalendar v2.8.0 Print Stylesheet
|
||||||
* Docs & License: http://fullcalendar.io/
|
* Docs & License: http://fullcalendar.io/
|
||||||
* (c) 2016 Adam Shaw
|
* (c) 2016 Adam Shaw
|
||||||
*/
|
*/
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*!
|
/*!
|
||||||
* FullCalendar v2.7.3 Google Calendar Plugin
|
* FullCalendar v2.8.0 Google Calendar Plugin
|
||||||
* Docs & License: http://fullcalendar.io/
|
* Docs & License: http://fullcalendar.io/
|
||||||
* (c) 2016 Adam Shaw
|
* (c) 2016 Adam Shaw
|
||||||
*/
|
*/
|
||||||
|
File diff suppressed because one or more lines are too long
2
vendor/autoload.php
vendored
2
vendor/autoload.php
vendored
@ -4,4 +4,4 @@
|
|||||||
|
|
||||||
require_once __DIR__ . '/composer' . '/autoload_real.php';
|
require_once __DIR__ . '/composer' . '/autoload_real.php';
|
||||||
|
|
||||||
return ComposerAutoloaderInit85a1cefa95be2f464cf7f947cbc4c785::getLoader();
|
return ComposerAutoloaderInit02c7a5bb99a87a4c8dbf069d69b1a15c::getLoader();
|
||||||
|
4
vendor/composer/autoload_files.php
vendored
4
vendor/composer/autoload_files.php
vendored
@ -7,10 +7,10 @@ $baseDir = dirname($vendorDir);
|
|||||||
|
|
||||||
return array(
|
return array(
|
||||||
'383eaff206634a77a1be54e64e6459c7' => $vendorDir . '/sabre/uri/lib/functions.php',
|
'383eaff206634a77a1be54e64e6459c7' => $vendorDir . '/sabre/uri/lib/functions.php',
|
||||||
|
'3569eecfeed3bcf0bad3c998a494ecb8' => $vendorDir . '/sabre/xml/lib/Deserializer/functions.php',
|
||||||
|
'93aa591bc4ca510c520999e34229ee79' => $vendorDir . '/sabre/xml/lib/Serializer/functions.php',
|
||||||
'2b9d0f43f9552984cfa82fee95491826' => $vendorDir . '/sabre/event/lib/coroutine.php',
|
'2b9d0f43f9552984cfa82fee95491826' => $vendorDir . '/sabre/event/lib/coroutine.php',
|
||||||
'd81bab31d3feb45bfe2f283ea3c8fdf7' => $vendorDir . '/sabre/event/lib/Loop/functions.php',
|
'd81bab31d3feb45bfe2f283ea3c8fdf7' => $vendorDir . '/sabre/event/lib/Loop/functions.php',
|
||||||
'a1cce3d26cc15c00fcd0b3354bd72c88' => $vendorDir . '/sabre/event/lib/Promise/functions.php',
|
'a1cce3d26cc15c00fcd0b3354bd72c88' => $vendorDir . '/sabre/event/lib/Promise/functions.php',
|
||||||
'3569eecfeed3bcf0bad3c998a494ecb8' => $vendorDir . '/sabre/xml/lib/Deserializer/functions.php',
|
|
||||||
'93aa591bc4ca510c520999e34229ee79' => $vendorDir . '/sabre/xml/lib/Serializer/functions.php',
|
|
||||||
'ebdb698ed4152ae445614b69b5e4bb6a' => $vendorDir . '/sabre/http/lib/functions.php',
|
'ebdb698ed4152ae445614b69b5e4bb6a' => $vendorDir . '/sabre/http/lib/functions.php',
|
||||||
);
|
);
|
||||||
|
1
vendor/composer/autoload_namespaces.php
vendored
1
vendor/composer/autoload_namespaces.php
vendored
@ -6,4 +6,5 @@ $vendorDir = dirname(dirname(__FILE__));
|
|||||||
$baseDir = dirname($vendorDir);
|
$baseDir = dirname($vendorDir);
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
|
'Psr\\Log\\' => array($vendorDir . '/psr/log'),
|
||||||
);
|
);
|
||||||
|
14
vendor/composer/autoload_real.php
vendored
14
vendor/composer/autoload_real.php
vendored
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
// autoload_real.php @generated by Composer
|
// autoload_real.php @generated by Composer
|
||||||
|
|
||||||
class ComposerAutoloaderInit85a1cefa95be2f464cf7f947cbc4c785
|
class ComposerAutoloaderInit02c7a5bb99a87a4c8dbf069d69b1a15c
|
||||||
{
|
{
|
||||||
private static $loader;
|
private static $loader;
|
||||||
|
|
||||||
@ -19,15 +19,15 @@ class ComposerAutoloaderInit85a1cefa95be2f464cf7f947cbc4c785
|
|||||||
return self::$loader;
|
return self::$loader;
|
||||||
}
|
}
|
||||||
|
|
||||||
spl_autoload_register(array('ComposerAutoloaderInit85a1cefa95be2f464cf7f947cbc4c785', 'loadClassLoader'), true, true);
|
spl_autoload_register(array('ComposerAutoloaderInit02c7a5bb99a87a4c8dbf069d69b1a15c', 'loadClassLoader'), true, true);
|
||||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
||||||
spl_autoload_unregister(array('ComposerAutoloaderInit85a1cefa95be2f464cf7f947cbc4c785', 'loadClassLoader'));
|
spl_autoload_unregister(array('ComposerAutoloaderInit02c7a5bb99a87a4c8dbf069d69b1a15c', 'loadClassLoader'));
|
||||||
|
|
||||||
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION');
|
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION');
|
||||||
if ($useStaticLoader) {
|
if ($useStaticLoader) {
|
||||||
require_once __DIR__ . '/autoload_static.php';
|
require_once __DIR__ . '/autoload_static.php';
|
||||||
|
|
||||||
call_user_func(\Composer\Autoload\ComposerStaticInit85a1cefa95be2f464cf7f947cbc4c785::getInitializer($loader));
|
call_user_func(\Composer\Autoload\ComposerStaticInit02c7a5bb99a87a4c8dbf069d69b1a15c::getInitializer($loader));
|
||||||
} else {
|
} else {
|
||||||
$map = require __DIR__ . '/autoload_namespaces.php';
|
$map = require __DIR__ . '/autoload_namespaces.php';
|
||||||
foreach ($map as $namespace => $path) {
|
foreach ($map as $namespace => $path) {
|
||||||
@ -48,19 +48,19 @@ class ComposerAutoloaderInit85a1cefa95be2f464cf7f947cbc4c785
|
|||||||
$loader->register(true);
|
$loader->register(true);
|
||||||
|
|
||||||
if ($useStaticLoader) {
|
if ($useStaticLoader) {
|
||||||
$includeFiles = Composer\Autoload\ComposerStaticInit85a1cefa95be2f464cf7f947cbc4c785::$files;
|
$includeFiles = Composer\Autoload\ComposerStaticInit02c7a5bb99a87a4c8dbf069d69b1a15c::$files;
|
||||||
} else {
|
} else {
|
||||||
$includeFiles = require __DIR__ . '/autoload_files.php';
|
$includeFiles = require __DIR__ . '/autoload_files.php';
|
||||||
}
|
}
|
||||||
foreach ($includeFiles as $fileIdentifier => $file) {
|
foreach ($includeFiles as $fileIdentifier => $file) {
|
||||||
composerRequire85a1cefa95be2f464cf7f947cbc4c785($fileIdentifier, $file);
|
composerRequire02c7a5bb99a87a4c8dbf069d69b1a15c($fileIdentifier, $file);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $loader;
|
return $loader;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function composerRequire85a1cefa95be2f464cf7f947cbc4c785($fileIdentifier, $file)
|
function composerRequire02c7a5bb99a87a4c8dbf069d69b1a15c($fileIdentifier, $file)
|
||||||
{
|
{
|
||||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||||
require $file;
|
require $file;
|
||||||
|
21
vendor/composer/autoload_static.php
vendored
21
vendor/composer/autoload_static.php
vendored
@ -4,15 +4,15 @@
|
|||||||
|
|
||||||
namespace Composer\Autoload;
|
namespace Composer\Autoload;
|
||||||
|
|
||||||
class ComposerStaticInit85a1cefa95be2f464cf7f947cbc4c785
|
class ComposerStaticInit02c7a5bb99a87a4c8dbf069d69b1a15c
|
||||||
{
|
{
|
||||||
public static $files = array (
|
public static $files = array (
|
||||||
'383eaff206634a77a1be54e64e6459c7' => __DIR__ . '/..' . '/sabre/uri/lib/functions.php',
|
'383eaff206634a77a1be54e64e6459c7' => __DIR__ . '/..' . '/sabre/uri/lib/functions.php',
|
||||||
|
'3569eecfeed3bcf0bad3c998a494ecb8' => __DIR__ . '/..' . '/sabre/xml/lib/Deserializer/functions.php',
|
||||||
|
'93aa591bc4ca510c520999e34229ee79' => __DIR__ . '/..' . '/sabre/xml/lib/Serializer/functions.php',
|
||||||
'2b9d0f43f9552984cfa82fee95491826' => __DIR__ . '/..' . '/sabre/event/lib/coroutine.php',
|
'2b9d0f43f9552984cfa82fee95491826' => __DIR__ . '/..' . '/sabre/event/lib/coroutine.php',
|
||||||
'd81bab31d3feb45bfe2f283ea3c8fdf7' => __DIR__ . '/..' . '/sabre/event/lib/Loop/functions.php',
|
'd81bab31d3feb45bfe2f283ea3c8fdf7' => __DIR__ . '/..' . '/sabre/event/lib/Loop/functions.php',
|
||||||
'a1cce3d26cc15c00fcd0b3354bd72c88' => __DIR__ . '/..' . '/sabre/event/lib/Promise/functions.php',
|
'a1cce3d26cc15c00fcd0b3354bd72c88' => __DIR__ . '/..' . '/sabre/event/lib/Promise/functions.php',
|
||||||
'3569eecfeed3bcf0bad3c998a494ecb8' => __DIR__ . '/..' . '/sabre/xml/lib/Deserializer/functions.php',
|
|
||||||
'93aa591bc4ca510c520999e34229ee79' => __DIR__ . '/..' . '/sabre/xml/lib/Serializer/functions.php',
|
|
||||||
'ebdb698ed4152ae445614b69b5e4bb6a' => __DIR__ . '/..' . '/sabre/http/lib/functions.php',
|
'ebdb698ed4152ae445614b69b5e4bb6a' => __DIR__ . '/..' . '/sabre/http/lib/functions.php',
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -70,11 +70,22 @@ class ComposerStaticInit85a1cefa95be2f464cf7f947cbc4c785
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
public static $prefixesPsr0 = array (
|
||||||
|
'P' =>
|
||||||
|
array (
|
||||||
|
'Psr\\Log\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/psr/log',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
public static function getInitializer(ClassLoader $loader)
|
public static function getInitializer(ClassLoader $loader)
|
||||||
{
|
{
|
||||||
return \Closure::bind(function () use ($loader) {
|
return \Closure::bind(function () use ($loader) {
|
||||||
$loader->prefixLengthsPsr4 = ComposerStaticInit85a1cefa95be2f464cf7f947cbc4c785::$prefixLengthsPsr4;
|
$loader->prefixLengthsPsr4 = ComposerStaticInit02c7a5bb99a87a4c8dbf069d69b1a15c::$prefixLengthsPsr4;
|
||||||
$loader->prefixDirsPsr4 = ComposerStaticInit85a1cefa95be2f464cf7f947cbc4c785::$prefixDirsPsr4;
|
$loader->prefixDirsPsr4 = ComposerStaticInit02c7a5bb99a87a4c8dbf069d69b1a15c::$prefixDirsPsr4;
|
||||||
|
$loader->prefixesPsr0 = ComposerStaticInit02c7a5bb99a87a4c8dbf069d69b1a15c::$prefixesPsr0;
|
||||||
|
|
||||||
}, null, ClassLoader::class);
|
}, null, ClassLoader::class);
|
||||||
}
|
}
|
||||||
|
308
vendor/composer/installed.json
vendored
308
vendor/composer/installed.json
vendored
@ -52,135 +52,19 @@
|
|||||||
"url"
|
"url"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "sabre/event",
|
|
||||||
"version": "3.0.0",
|
|
||||||
"version_normalized": "3.0.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/fruux/sabre-event.git",
|
|
||||||
"reference": "831d586f5a442dceacdcf5e9c4c36a4db99a3534"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/fruux/sabre-event/zipball/831d586f5a442dceacdcf5e9c4c36a4db99a3534",
|
|
||||||
"reference": "831d586f5a442dceacdcf5e9c4c36a4db99a3534",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.5"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "*",
|
|
||||||
"sabre/cs": "~0.0.4"
|
|
||||||
},
|
|
||||||
"time": "2015-11-05 20:14:39",
|
|
||||||
"type": "library",
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Sabre\\Event\\": "lib/"
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"lib/coroutine.php",
|
|
||||||
"lib/Loop/functions.php",
|
|
||||||
"lib/Promise/functions.php"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Evert Pot",
|
|
||||||
"email": "me@evertpot.com",
|
|
||||||
"homepage": "http://evertpot.com/",
|
|
||||||
"role": "Developer"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "sabre/event is a library for lightweight event-based programming",
|
|
||||||
"homepage": "http://sabre.io/event/",
|
|
||||||
"keywords": [
|
|
||||||
"EventEmitter",
|
|
||||||
"async",
|
|
||||||
"events",
|
|
||||||
"hooks",
|
|
||||||
"plugin",
|
|
||||||
"promise",
|
|
||||||
"signal"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "sabre/http",
|
|
||||||
"version": "4.2.1",
|
|
||||||
"version_normalized": "4.2.1.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/fruux/sabre-http.git",
|
|
||||||
"reference": "2e93bc8321524c67be4ca5b8415daebd4c8bf85e"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/fruux/sabre-http/zipball/2e93bc8321524c67be4ca5b8415daebd4c8bf85e",
|
|
||||||
"reference": "2e93bc8321524c67be4ca5b8415daebd4c8bf85e",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"ext-mbstring": "*",
|
|
||||||
"php": ">=5.4",
|
|
||||||
"sabre/event": ">=1.0.0,<4.0.0",
|
|
||||||
"sabre/uri": "~1.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "~4.3",
|
|
||||||
"sabre/cs": "~0.0.1"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"ext-curl": " to make http requests with the Client class"
|
|
||||||
},
|
|
||||||
"time": "2016-01-06 23:00:08",
|
|
||||||
"type": "library",
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"files": [
|
|
||||||
"lib/functions.php"
|
|
||||||
],
|
|
||||||
"psr-4": {
|
|
||||||
"Sabre\\HTTP\\": "lib/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Evert Pot",
|
|
||||||
"email": "me@evertpot.com",
|
|
||||||
"homepage": "http://evertpot.com/",
|
|
||||||
"role": "Developer"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "The sabre/http library provides utilities for dealing with http requests and responses. ",
|
|
||||||
"homepage": "https://github.com/fruux/sabre-http",
|
|
||||||
"keywords": [
|
|
||||||
"http"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "sabre/xml",
|
"name": "sabre/xml",
|
||||||
"version": "1.4.1",
|
"version": "1.4.2",
|
||||||
"version_normalized": "1.4.1.0",
|
"version_normalized": "1.4.2.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/fruux/sabre-xml.git",
|
"url": "https://github.com/fruux/sabre-xml.git",
|
||||||
"reference": "59998046db252634259a878baf1af18159f508f3"
|
"reference": "f48d98c22a4a4bef76cabb5968ffaddbb2bb593e"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/fruux/sabre-xml/zipball/59998046db252634259a878baf1af18159f508f3",
|
"url": "https://api.github.com/repos/fruux/sabre-xml/zipball/f48d98c22a4a4bef76cabb5968ffaddbb2bb593e",
|
||||||
"reference": "59998046db252634259a878baf1af18159f508f3",
|
"reference": "f48d98c22a4a4bef76cabb5968ffaddbb2bb593e",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -195,7 +79,7 @@
|
|||||||
"phpunit/phpunit": "*",
|
"phpunit/phpunit": "*",
|
||||||
"sabre/cs": "~0.0.2"
|
"sabre/cs": "~0.0.2"
|
||||||
},
|
},
|
||||||
"time": "2016-03-12 22:23:16",
|
"time": "2016-05-19 21:56:49",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"installation-source": "dist",
|
"installation-source": "dist",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -331,18 +215,174 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sabre/dav",
|
"name": "sabre/event",
|
||||||
"version": "3.1.3",
|
"version": "3.0.0",
|
||||||
"version_normalized": "3.1.3.0",
|
"version_normalized": "3.0.0.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/fruux/sabre-dav.git",
|
"url": "https://github.com/fruux/sabre-event.git",
|
||||||
"reference": "8a266c7b5e140da79529414b9cde2a2d058b536b"
|
"reference": "831d586f5a442dceacdcf5e9c4c36a4db99a3534"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/fruux/sabre-dav/zipball/8a266c7b5e140da79529414b9cde2a2d058b536b",
|
"url": "https://api.github.com/repos/fruux/sabre-event/zipball/831d586f5a442dceacdcf5e9c4c36a4db99a3534",
|
||||||
"reference": "8a266c7b5e140da79529414b9cde2a2d058b536b",
|
"reference": "831d586f5a442dceacdcf5e9c4c36a4db99a3534",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.5"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "*",
|
||||||
|
"sabre/cs": "~0.0.4"
|
||||||
|
},
|
||||||
|
"time": "2015-11-05 20:14:39",
|
||||||
|
"type": "library",
|
||||||
|
"installation-source": "dist",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Sabre\\Event\\": "lib/"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"lib/coroutine.php",
|
||||||
|
"lib/Loop/functions.php",
|
||||||
|
"lib/Promise/functions.php"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Evert Pot",
|
||||||
|
"email": "me@evertpot.com",
|
||||||
|
"homepage": "http://evertpot.com/",
|
||||||
|
"role": "Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "sabre/event is a library for lightweight event-based programming",
|
||||||
|
"homepage": "http://sabre.io/event/",
|
||||||
|
"keywords": [
|
||||||
|
"EventEmitter",
|
||||||
|
"async",
|
||||||
|
"events",
|
||||||
|
"hooks",
|
||||||
|
"plugin",
|
||||||
|
"promise",
|
||||||
|
"signal"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "sabre/http",
|
||||||
|
"version": "4.2.1",
|
||||||
|
"version_normalized": "4.2.1.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/fruux/sabre-http.git",
|
||||||
|
"reference": "2e93bc8321524c67be4ca5b8415daebd4c8bf85e"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/fruux/sabre-http/zipball/2e93bc8321524c67be4ca5b8415daebd4c8bf85e",
|
||||||
|
"reference": "2e93bc8321524c67be4ca5b8415daebd4c8bf85e",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-mbstring": "*",
|
||||||
|
"php": ">=5.4",
|
||||||
|
"sabre/event": ">=1.0.0,<4.0.0",
|
||||||
|
"sabre/uri": "~1.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "~4.3",
|
||||||
|
"sabre/cs": "~0.0.1"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-curl": " to make http requests with the Client class"
|
||||||
|
},
|
||||||
|
"time": "2016-01-06 23:00:08",
|
||||||
|
"type": "library",
|
||||||
|
"installation-source": "dist",
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"lib/functions.php"
|
||||||
|
],
|
||||||
|
"psr-4": {
|
||||||
|
"Sabre\\HTTP\\": "lib/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Evert Pot",
|
||||||
|
"email": "me@evertpot.com",
|
||||||
|
"homepage": "http://evertpot.com/",
|
||||||
|
"role": "Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "The sabre/http library provides utilities for dealing with http requests and responses. ",
|
||||||
|
"homepage": "https://github.com/fruux/sabre-http",
|
||||||
|
"keywords": [
|
||||||
|
"http"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "psr/log",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"version_normalized": "1.0.0.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/php-fig/log.git",
|
||||||
|
"reference": "fe0936ee26643249e916849d48e3a51d5f5e278b"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b",
|
||||||
|
"reference": "fe0936ee26643249e916849d48e3a51d5f5e278b",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"time": "2012-12-21 11:40:51",
|
||||||
|
"type": "library",
|
||||||
|
"installation-source": "dist",
|
||||||
|
"autoload": {
|
||||||
|
"psr-0": {
|
||||||
|
"Psr\\Log\\": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "PHP-FIG",
|
||||||
|
"homepage": "http://www.php-fig.org/"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Common interface for logging libraries",
|
||||||
|
"keywords": [
|
||||||
|
"log",
|
||||||
|
"psr",
|
||||||
|
"psr-3"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "sabre/dav",
|
||||||
|
"version": "3.2.0",
|
||||||
|
"version_normalized": "3.2.0.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/fruux/sabre-dav.git",
|
||||||
|
"reference": "5b9737cc2f0182e368d14c80df7f6b2d77dc1457"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/fruux/sabre-dav/zipball/5b9737cc2f0182e368d14c80df7f6b2d77dc1457",
|
||||||
|
"reference": "5b9737cc2f0182e368d14c80df7f6b2d77dc1457",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -356,14 +396,16 @@
|
|||||||
"ext-spl": "*",
|
"ext-spl": "*",
|
||||||
"lib-libxml": ">=2.7.0",
|
"lib-libxml": ">=2.7.0",
|
||||||
"php": ">=5.5.0",
|
"php": ">=5.5.0",
|
||||||
|
"psr/log": "^1.0",
|
||||||
"sabre/event": ">=2.0.0, <4.0.0",
|
"sabre/event": ">=2.0.0, <4.0.0",
|
||||||
"sabre/http": "^4.2.1",
|
"sabre/http": "^4.2.1",
|
||||||
"sabre/uri": "~1.0",
|
"sabre/uri": "^1.0.1",
|
||||||
"sabre/vobject": "~4.0",
|
"sabre/vobject": "^4.1.0",
|
||||||
"sabre/xml": "~1.0"
|
"sabre/xml": "^1.4.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"evert/phpdoc-md": "~0.1.0",
|
"evert/phpdoc-md": "~0.1.0",
|
||||||
|
"monolog/monolog": "^1.18",
|
||||||
"phpunit/phpunit": "> 4.8, <=6.0.0",
|
"phpunit/phpunit": "> 4.8, <=6.0.0",
|
||||||
"sabre/cs": "~0.0.5"
|
"sabre/cs": "~0.0.5"
|
||||||
},
|
},
|
||||||
@ -371,7 +413,7 @@
|
|||||||
"ext-curl": "*",
|
"ext-curl": "*",
|
||||||
"ext-pdo": "*"
|
"ext-pdo": "*"
|
||||||
},
|
},
|
||||||
"time": "2016-04-07 01:02:57",
|
"time": "2016-06-28 02:44:05",
|
||||||
"bin": [
|
"bin": [
|
||||||
"bin/sabredav",
|
"bin/sabredav",
|
||||||
"bin/naturalselection"
|
"bin/naturalselection"
|
||||||
|
1
vendor/psr/log/.gitignore
vendored
Normal file
1
vendor/psr/log/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
vendor
|
19
vendor/psr/log/LICENSE
vendored
Normal file
19
vendor/psr/log/LICENSE
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
Copyright (c) 2012 PHP Framework Interoperability Group
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
120
vendor/psr/log/Psr/Log/AbstractLogger.php
vendored
Normal file
120
vendor/psr/log/Psr/Log/AbstractLogger.php
vendored
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Psr\Log;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is a simple Logger implementation that other Loggers can inherit from.
|
||||||
|
*
|
||||||
|
* It simply delegates all log-level-specific methods to the `log` method to
|
||||||
|
* reduce boilerplate code that a simple Logger that does the same thing with
|
||||||
|
* messages regardless of the error level has to implement.
|
||||||
|
*/
|
||||||
|
abstract class AbstractLogger implements LoggerInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* System is unusable.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function emergency($message, array $context = array())
|
||||||
|
{
|
||||||
|
$this->log(LogLevel::EMERGENCY, $message, $context);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Action must be taken immediately.
|
||||||
|
*
|
||||||
|
* Example: Entire website down, database unavailable, etc. This should
|
||||||
|
* trigger the SMS alerts and wake you up.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function alert($message, array $context = array())
|
||||||
|
{
|
||||||
|
$this->log(LogLevel::ALERT, $message, $context);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Critical conditions.
|
||||||
|
*
|
||||||
|
* Example: Application component unavailable, unexpected exception.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function critical($message, array $context = array())
|
||||||
|
{
|
||||||
|
$this->log(LogLevel::CRITICAL, $message, $context);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Runtime errors that do not require immediate action but should typically
|
||||||
|
* be logged and monitored.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function error($message, array $context = array())
|
||||||
|
{
|
||||||
|
$this->log(LogLevel::ERROR, $message, $context);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Exceptional occurrences that are not errors.
|
||||||
|
*
|
||||||
|
* Example: Use of deprecated APIs, poor use of an API, undesirable things
|
||||||
|
* that are not necessarily wrong.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function warning($message, array $context = array())
|
||||||
|
{
|
||||||
|
$this->log(LogLevel::WARNING, $message, $context);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Normal but significant events.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function notice($message, array $context = array())
|
||||||
|
{
|
||||||
|
$this->log(LogLevel::NOTICE, $message, $context);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interesting events.
|
||||||
|
*
|
||||||
|
* Example: User logs in, SQL logs.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function info($message, array $context = array())
|
||||||
|
{
|
||||||
|
$this->log(LogLevel::INFO, $message, $context);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Detailed debug information.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function debug($message, array $context = array())
|
||||||
|
{
|
||||||
|
$this->log(LogLevel::DEBUG, $message, $context);
|
||||||
|
}
|
||||||
|
}
|
7
vendor/psr/log/Psr/Log/InvalidArgumentException.php
vendored
Normal file
7
vendor/psr/log/Psr/Log/InvalidArgumentException.php
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Psr\Log;
|
||||||
|
|
||||||
|
class InvalidArgumentException extends \InvalidArgumentException
|
||||||
|
{
|
||||||
|
}
|
18
vendor/psr/log/Psr/Log/LogLevel.php
vendored
Normal file
18
vendor/psr/log/Psr/Log/LogLevel.php
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Psr\Log;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Describes log levels
|
||||||
|
*/
|
||||||
|
class LogLevel
|
||||||
|
{
|
||||||
|
const EMERGENCY = 'emergency';
|
||||||
|
const ALERT = 'alert';
|
||||||
|
const CRITICAL = 'critical';
|
||||||
|
const ERROR = 'error';
|
||||||
|
const WARNING = 'warning';
|
||||||
|
const NOTICE = 'notice';
|
||||||
|
const INFO = 'info';
|
||||||
|
const DEBUG = 'debug';
|
||||||
|
}
|
17
vendor/psr/log/Psr/Log/LoggerAwareInterface.php
vendored
Normal file
17
vendor/psr/log/Psr/Log/LoggerAwareInterface.php
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Psr\Log;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Describes a logger-aware instance
|
||||||
|
*/
|
||||||
|
interface LoggerAwareInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Sets a logger instance on the object
|
||||||
|
*
|
||||||
|
* @param LoggerInterface $logger
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function setLogger(LoggerInterface $logger);
|
||||||
|
}
|
22
vendor/psr/log/Psr/Log/LoggerAwareTrait.php
vendored
Normal file
22
vendor/psr/log/Psr/Log/LoggerAwareTrait.php
vendored
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Psr\Log;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Basic Implementation of LoggerAwareInterface.
|
||||||
|
*/
|
||||||
|
trait LoggerAwareTrait
|
||||||
|
{
|
||||||
|
/** @var LoggerInterface */
|
||||||
|
protected $logger;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets a logger.
|
||||||
|
*
|
||||||
|
* @param LoggerInterface $logger
|
||||||
|
*/
|
||||||
|
public function setLogger(LoggerInterface $logger)
|
||||||
|
{
|
||||||
|
$this->logger = $logger;
|
||||||
|
}
|
||||||
|
}
|
114
vendor/psr/log/Psr/Log/LoggerInterface.php
vendored
Normal file
114
vendor/psr/log/Psr/Log/LoggerInterface.php
vendored
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Psr\Log;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Describes a logger instance
|
||||||
|
*
|
||||||
|
* The message MUST be a string or object implementing __toString().
|
||||||
|
*
|
||||||
|
* The message MAY contain placeholders in the form: {foo} where foo
|
||||||
|
* will be replaced by the context data in key "foo".
|
||||||
|
*
|
||||||
|
* The context array can contain arbitrary data, the only assumption that
|
||||||
|
* can be made by implementors is that if an Exception instance is given
|
||||||
|
* to produce a stack trace, it MUST be in a key named "exception".
|
||||||
|
*
|
||||||
|
* See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md
|
||||||
|
* for the full interface specification.
|
||||||
|
*/
|
||||||
|
interface LoggerInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* System is unusable.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function emergency($message, array $context = array());
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Action must be taken immediately.
|
||||||
|
*
|
||||||
|
* Example: Entire website down, database unavailable, etc. This should
|
||||||
|
* trigger the SMS alerts and wake you up.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function alert($message, array $context = array());
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Critical conditions.
|
||||||
|
*
|
||||||
|
* Example: Application component unavailable, unexpected exception.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function critical($message, array $context = array());
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Runtime errors that do not require immediate action but should typically
|
||||||
|
* be logged and monitored.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function error($message, array $context = array());
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Exceptional occurrences that are not errors.
|
||||||
|
*
|
||||||
|
* Example: Use of deprecated APIs, poor use of an API, undesirable things
|
||||||
|
* that are not necessarily wrong.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function warning($message, array $context = array());
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Normal but significant events.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function notice($message, array $context = array());
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interesting events.
|
||||||
|
*
|
||||||
|
* Example: User logs in, SQL logs.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function info($message, array $context = array());
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Detailed debug information.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function debug($message, array $context = array());
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Logs with an arbitrary level.
|
||||||
|
*
|
||||||
|
* @param mixed $level
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function log($level, $message, array $context = array());
|
||||||
|
}
|
131
vendor/psr/log/Psr/Log/LoggerTrait.php
vendored
Normal file
131
vendor/psr/log/Psr/Log/LoggerTrait.php
vendored
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Psr\Log;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is a simple Logger trait that classes unable to extend AbstractLogger
|
||||||
|
* (because they extend another class, etc) can include.
|
||||||
|
*
|
||||||
|
* It simply delegates all log-level-specific methods to the `log` method to
|
||||||
|
* reduce boilerplate code that a simple Logger that does the same thing with
|
||||||
|
* messages regardless of the error level has to implement.
|
||||||
|
*/
|
||||||
|
trait LoggerTrait
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* System is unusable.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function emergency($message, array $context = array())
|
||||||
|
{
|
||||||
|
$this->log(LogLevel::EMERGENCY, $message, $context);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Action must be taken immediately.
|
||||||
|
*
|
||||||
|
* Example: Entire website down, database unavailable, etc. This should
|
||||||
|
* trigger the SMS alerts and wake you up.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function alert($message, array $context = array())
|
||||||
|
{
|
||||||
|
$this->log(LogLevel::ALERT, $message, $context);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Critical conditions.
|
||||||
|
*
|
||||||
|
* Example: Application component unavailable, unexpected exception.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function critical($message, array $context = array())
|
||||||
|
{
|
||||||
|
$this->log(LogLevel::CRITICAL, $message, $context);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Runtime errors that do not require immediate action but should typically
|
||||||
|
* be logged and monitored.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function error($message, array $context = array())
|
||||||
|
{
|
||||||
|
$this->log(LogLevel::ERROR, $message, $context);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Exceptional occurrences that are not errors.
|
||||||
|
*
|
||||||
|
* Example: Use of deprecated APIs, poor use of an API, undesirable things
|
||||||
|
* that are not necessarily wrong.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function warning($message, array $context = array())
|
||||||
|
{
|
||||||
|
$this->log(LogLevel::WARNING, $message, $context);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Normal but significant events.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function notice($message, array $context = array())
|
||||||
|
{
|
||||||
|
$this->log(LogLevel::NOTICE, $message, $context);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interesting events.
|
||||||
|
*
|
||||||
|
* Example: User logs in, SQL logs.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function info($message, array $context = array())
|
||||||
|
{
|
||||||
|
$this->log(LogLevel::INFO, $message, $context);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Detailed debug information.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function debug($message, array $context = array())
|
||||||
|
{
|
||||||
|
$this->log(LogLevel::DEBUG, $message, $context);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Logs with an arbitrary level.
|
||||||
|
*
|
||||||
|
* @param mixed $level
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
abstract public function log($level, $message, array $context = array());
|
||||||
|
}
|
27
vendor/psr/log/Psr/Log/NullLogger.php
vendored
Normal file
27
vendor/psr/log/Psr/Log/NullLogger.php
vendored
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Psr\Log;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This Logger can be used to avoid conditional log calls
|
||||||
|
*
|
||||||
|
* Logging should always be optional, and if no logger is provided to your
|
||||||
|
* library creating a NullLogger instance to have something to throw logs at
|
||||||
|
* is a good way to avoid littering your code with `if ($this->logger) { }`
|
||||||
|
* blocks.
|
||||||
|
*/
|
||||||
|
class NullLogger extends AbstractLogger
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Logs with an arbitrary level.
|
||||||
|
*
|
||||||
|
* @param mixed $level
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
* @return null
|
||||||
|
*/
|
||||||
|
public function log($level, $message, array $context = array())
|
||||||
|
{
|
||||||
|
// noop
|
||||||
|
}
|
||||||
|
}
|
116
vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php
vendored
Normal file
116
vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php
vendored
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Psr\Log\Test;
|
||||||
|
|
||||||
|
use Psr\Log\LogLevel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides a base test class for ensuring compliance with the LoggerInterface
|
||||||
|
*
|
||||||
|
* Implementors can extend the class and implement abstract methods to run this as part of their test suite
|
||||||
|
*/
|
||||||
|
abstract class LoggerInterfaceTest extends \PHPUnit_Framework_TestCase
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @return LoggerInterface
|
||||||
|
*/
|
||||||
|
abstract function getLogger();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This must return the log messages in order with a simple formatting: "<LOG LEVEL> <MESSAGE>"
|
||||||
|
*
|
||||||
|
* Example ->error('Foo') would yield "error Foo"
|
||||||
|
*
|
||||||
|
* @return string[]
|
||||||
|
*/
|
||||||
|
abstract function getLogs();
|
||||||
|
|
||||||
|
public function testImplements()
|
||||||
|
{
|
||||||
|
$this->assertInstanceOf('Psr\Log\LoggerInterface', $this->getLogger());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider provideLevelsAndMessages
|
||||||
|
*/
|
||||||
|
public function testLogsAtAllLevels($level, $message)
|
||||||
|
{
|
||||||
|
$logger = $this->getLogger();
|
||||||
|
$logger->{$level}($message, array('user' => 'Bob'));
|
||||||
|
$logger->log($level, $message, array('user' => 'Bob'));
|
||||||
|
|
||||||
|
$expected = array(
|
||||||
|
$level.' message of level '.$level.' with context: Bob',
|
||||||
|
$level.' message of level '.$level.' with context: Bob',
|
||||||
|
);
|
||||||
|
$this->assertEquals($expected, $this->getLogs());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function provideLevelsAndMessages()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
LogLevel::EMERGENCY => array(LogLevel::EMERGENCY, 'message of level emergency with context: {user}'),
|
||||||
|
LogLevel::ALERT => array(LogLevel::ALERT, 'message of level alert with context: {user}'),
|
||||||
|
LogLevel::CRITICAL => array(LogLevel::CRITICAL, 'message of level critical with context: {user}'),
|
||||||
|
LogLevel::ERROR => array(LogLevel::ERROR, 'message of level error with context: {user}'),
|
||||||
|
LogLevel::WARNING => array(LogLevel::WARNING, 'message of level warning with context: {user}'),
|
||||||
|
LogLevel::NOTICE => array(LogLevel::NOTICE, 'message of level notice with context: {user}'),
|
||||||
|
LogLevel::INFO => array(LogLevel::INFO, 'message of level info with context: {user}'),
|
||||||
|
LogLevel::DEBUG => array(LogLevel::DEBUG, 'message of level debug with context: {user}'),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @expectedException Psr\Log\InvalidArgumentException
|
||||||
|
*/
|
||||||
|
public function testThrowsOnInvalidLevel()
|
||||||
|
{
|
||||||
|
$logger = $this->getLogger();
|
||||||
|
$logger->log('invalid level', 'Foo');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testContextReplacement()
|
||||||
|
{
|
||||||
|
$logger = $this->getLogger();
|
||||||
|
$logger->info('{Message {nothing} {user} {foo.bar} a}', array('user' => 'Bob', 'foo.bar' => 'Bar'));
|
||||||
|
|
||||||
|
$expected = array('info {Message {nothing} Bob Bar a}');
|
||||||
|
$this->assertEquals($expected, $this->getLogs());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testObjectCastToString()
|
||||||
|
{
|
||||||
|
$dummy = $this->getMock('Psr\Log\Test\DummyTest', array('__toString'));
|
||||||
|
$dummy->expects($this->once())
|
||||||
|
->method('__toString')
|
||||||
|
->will($this->returnValue('DUMMY'));
|
||||||
|
|
||||||
|
$this->getLogger()->warning($dummy);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testContextCanContainAnything()
|
||||||
|
{
|
||||||
|
$context = array(
|
||||||
|
'bool' => true,
|
||||||
|
'null' => null,
|
||||||
|
'string' => 'Foo',
|
||||||
|
'int' => 0,
|
||||||
|
'float' => 0.5,
|
||||||
|
'nested' => array('with object' => new DummyTest),
|
||||||
|
'object' => new \DateTime,
|
||||||
|
'resource' => fopen('php://memory', 'r'),
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->getLogger()->warning('Crazy context data', $context);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testContextExceptionKeyCanBeExceptionOrOtherValues()
|
||||||
|
{
|
||||||
|
$this->getLogger()->warning('Random message', array('exception' => 'oops'));
|
||||||
|
$this->getLogger()->critical('Uncaught Exception!', array('exception' => new \LogicException('Fail')));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DummyTest
|
||||||
|
{
|
||||||
|
}
|
45
vendor/psr/log/README.md
vendored
Normal file
45
vendor/psr/log/README.md
vendored
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
PSR Log
|
||||||
|
=======
|
||||||
|
|
||||||
|
This repository holds all interfaces/classes/traits related to
|
||||||
|
[PSR-3](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md).
|
||||||
|
|
||||||
|
Note that this is not a logger of its own. It is merely an interface that
|
||||||
|
describes a logger. See the specification for more details.
|
||||||
|
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
If you need a logger, you can use the interface like this:
|
||||||
|
|
||||||
|
```php
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Psr\Log\LoggerInterface;
|
||||||
|
|
||||||
|
class Foo
|
||||||
|
{
|
||||||
|
private $logger;
|
||||||
|
|
||||||
|
public function __construct(LoggerInterface $logger = null)
|
||||||
|
{
|
||||||
|
$this->logger = $logger;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function doSomething()
|
||||||
|
{
|
||||||
|
if ($this->logger) {
|
||||||
|
$this->logger->info('Doing work');
|
||||||
|
}
|
||||||
|
|
||||||
|
// do something useful
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
You can then pick one of the implementations of the interface to get a logger.
|
||||||
|
|
||||||
|
If you want to implement the interface, you can require this package and
|
||||||
|
implement `Psr\Log\LoggerInterface` in your code. Please read the
|
||||||
|
[specification text](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md)
|
||||||
|
for details.
|
24
vendor/sabre/dav/.travis.yml
vendored
24
vendor/sabre/dav/.travis.yml
vendored
@ -3,12 +3,6 @@ php:
|
|||||||
- 5.5
|
- 5.5
|
||||||
- 5.6
|
- 5.6
|
||||||
- 7
|
- 7
|
||||||
- hhvm
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
fast_finish: true
|
|
||||||
allow_failures:
|
|
||||||
- php: hhvm
|
|
||||||
|
|
||||||
env:
|
env:
|
||||||
matrix:
|
matrix:
|
||||||
@ -17,17 +11,25 @@ env:
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
- mysql
|
- mysql
|
||||||
|
- postgresql
|
||||||
|
|
||||||
sudo: false
|
sudo: false
|
||||||
|
|
||||||
cache: vendor
|
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
- mysql -e 'create database sabredav'
|
- mysql -e 'create database sabredav_test'
|
||||||
|
- psql -c "create database sabredav_test" -U postgres
|
||||||
|
- psql -c "create user sabredav with PASSWORD 'sabredav';GRANT ALL PRIVILEGES ON DATABASE sabredav_test TO sabredav" -U postgres
|
||||||
|
- phpenv config-rm xdebug.ini; true
|
||||||
# - composer self-update
|
# - composer self-update
|
||||||
- composer update --prefer-source $LOWEST_DEPS
|
- composer update --prefer-dist $LOWEST_DEPS
|
||||||
|
|
||||||
|
# addons:
|
||||||
|
# postgresql: "9.5"
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- ./bin/phpunit --configuration tests/phpunit.xml $TEST_DEPS
|
- ./bin/phpunit --configuration tests/phpunit.xml.dist $TEST_DEPS
|
||||||
- ./bin/sabre-cs-fixer fix lib/ --dry-run --diff
|
- ./bin/sabre-cs-fixer fix lib/ --dry-run --diff
|
||||||
|
|
||||||
|
cache:
|
||||||
|
directories:
|
||||||
|
- $HOME/.composer/cache
|
||||||
|
100
vendor/sabre/dav/CHANGELOG.md
vendored
100
vendor/sabre/dav/CHANGELOG.md
vendored
@ -1,6 +1,106 @@
|
|||||||
ChangeLog
|
ChangeLog
|
||||||
=========
|
=========
|
||||||
|
|
||||||
|
3.2.0 (2016-06-27)
|
||||||
|
------------------
|
||||||
|
|
||||||
|
* The default ACL rules allow an unauthenticated user to read information
|
||||||
|
about nodes that don't have their own ACL defined. This was a security
|
||||||
|
problem.
|
||||||
|
* The zip release ships with [sabre/vobject 4.1.0][vobj],
|
||||||
|
[sabre/http 4.2.1][http], [sabre/event 3.0.0][evnt],
|
||||||
|
[sabre/uri 1.1.0][uri] and [sabre/xml 1.4.2][xml].
|
||||||
|
|
||||||
|
|
||||||
|
3.2.0-beta1 (2016-05-20)
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
* #833: Calendars throw exceptions when the sharing plugin is not enabled.
|
||||||
|
* #834: Return vCards exactly as they were stored if we don't need to convert
|
||||||
|
in between versions.
|
||||||
|
* The zip release ships with [sabre/vobject 4.1.0][vobj],
|
||||||
|
[sabre/http 4.2.1][http], [sabre/event 3.0.0][evnt],
|
||||||
|
[sabre/uri 1.1.0][uri] and [sabre/xml 1.4.1][xml].
|
||||||
|
|
||||||
|
|
||||||
|
3.2.0-alpha1 (2016-05-09)
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
* Database changes for CalDAV. If you are using the CalDAV PDO backends, you
|
||||||
|
must migrate. Run `./bin/migrateto32.php` for more info.
|
||||||
|
* Support for WebDAV Resource Sharing, an upcoming standard.
|
||||||
|
* Added support for sharing in the CalDAV PDO backend! Users can now invite
|
||||||
|
others to their calendar and give them read/read-write access!
|
||||||
|
* #397: Support for PSR-3. You can now log exceptions with your favourite
|
||||||
|
psr3-compatible logging tool.
|
||||||
|
* #825: Actual proper, tested support for PostgreSQL. We require version 9.5.
|
||||||
|
* Removed database migration script for sabre/dav 1.7. To update from that
|
||||||
|
version you now first need to update to sabre/dav 3.1.
|
||||||
|
* Removed deprecated function: `Sabre\DAV\Auth\Plugin::getCurrentUser()`.
|
||||||
|
* #774: Fixes for getting free disk space on Windows.
|
||||||
|
* #803: Major changes in the sharing API. If you were using an old sabre/dav
|
||||||
|
sharing api, head to the website for more detailed migration notes.
|
||||||
|
* #657: Support for optional auth using `{DAV:}unauthorized` and `{DAV:}all`
|
||||||
|
privileges. This allows you to assign a privilege to a resource, allowing
|
||||||
|
non-authenticated users to access it. For instance, this could allow you
|
||||||
|
to create a public read-only collection.
|
||||||
|
* #812 #814: ICS/VCF exporter now includes a more useful filename in its
|
||||||
|
`Content-Disposition` header. (@Xenopathic).
|
||||||
|
* #801: BC break: If you were using the `Href` object before, it's behavior
|
||||||
|
now changed a bit, and `LocalHref` was added to replace the old, default
|
||||||
|
behavior of `Href`. See the migration doc for more info.
|
||||||
|
* Removed `Sabre\DAVACL\Plugin::$allowAccessToNodesWithoutACL` setting.
|
||||||
|
Instead, you can provide a set of default ACL rules with
|
||||||
|
`Sabre\DAVACL\Plugin::setDefaultAcl()`.
|
||||||
|
* Introduced `Sabre\DAVACL\ACLTrait` which contains a default implementation
|
||||||
|
of `Sabre\DAV\IACL` with some sane defaults. We're using this trait all over
|
||||||
|
the place now, reducing the amount of boilerplate.
|
||||||
|
* Plugins can now control the "Supported Privilege Set".
|
||||||
|
* Added Sharing, ICSExport and VCFExport plugins to `groupwareserver.php`
|
||||||
|
example.
|
||||||
|
* The `{DAV:}all` privilege is now no longer abstract, so it can be assigned
|
||||||
|
directly. We're using the `{DAV:}all` privilege now in a lot of cases where
|
||||||
|
we before assigned both `{DAV:}read` and `{DAV:}write`.
|
||||||
|
* Resources that are not collections no longer support the `{DAV:}bind` and
|
||||||
|
`{DAV:}unbind` privileges.
|
||||||
|
* Corrected the CalDAV-scheduling related privileges.
|
||||||
|
* Doing an `UNLOCK` no longer requires the `{DAV:}write-content` privilege.
|
||||||
|
* Added a new `getPrincipalByUri` plugin event. Allowing plugins to request
|
||||||
|
quickly where a principal lives on a server.
|
||||||
|
* Renamed `phpunit.xml` to `phpunit.xml.dist` to make local modifications easy.
|
||||||
|
* Functionality from `IShareableCalendar` is merged into `ISharedCalendar`.
|
||||||
|
* #751: Fixed XML responses from failing `MKCOL` requests.
|
||||||
|
* #600: Support for `principal-match` ACL `REPORT`.
|
||||||
|
* #599: Support for `acl-principal-prop-set` ACL `REPORT`.
|
||||||
|
* #798: Added an index on `firstoccurence` field in MySQL CalDAV backend. This
|
||||||
|
should speed up common calendar-query requests.
|
||||||
|
* #759: DAV\Client is now able to actually correctly resolve relative urls.
|
||||||
|
* #671: We are no longer checking the `read-free-busy` privilege on individual
|
||||||
|
calendars during freebusy operations in the scheduling plugin. Instead, we
|
||||||
|
check the `schedule-query-freebusy` privilege on the target users' inbox,
|
||||||
|
which validates access for the entire account, per the spec.
|
||||||
|
* The zip release ships with [sabre/vobject 4.1.0][vobj],
|
||||||
|
[sabre/http 4.2.1][http], [sabre/event 3.0.0][evnt],
|
||||||
|
[sabre/uri 1.1.0][uri] and [sabre/xml 1.4.1][xml].
|
||||||
|
|
||||||
|
|
||||||
|
3.1.5 (????-??-??)
|
||||||
|
------------------
|
||||||
|
|
||||||
|
* Fixed: Creating a new calendar on some MySQL configurations caused an error.
|
||||||
|
|
||||||
|
|
||||||
|
3.1.4 (2016-05-28)
|
||||||
|
------------------
|
||||||
|
|
||||||
|
* #834: Backport from `master`: Return vCards exactly as they were stored if
|
||||||
|
we don't need to convert in between versions. This should speed up many
|
||||||
|
large addressbook syncs sometimes up to 50%.
|
||||||
|
* The zip release ships with [sabre/vobject 4.1.0][vobj],
|
||||||
|
[sabre/http 4.2.1][http], [sabre/event 3.0.0][evnt],
|
||||||
|
[sabre/uri 1.1.0][uri] and [sabre/xml 1.4.2][xml].
|
||||||
|
|
||||||
|
|
||||||
3.1.3 (2016-04-06)
|
3.1.3 (2016-04-06)
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
|
13
vendor/sabre/dav/README.md
vendored
13
vendor/sabre/dav/README.md
vendored
@ -1,10 +1,10 @@
|
|||||||
 SabreDAV
|
 sabre/dav
|
||||||
======================================================
|
=======================================================
|
||||||
|
|
||||||
Introduction
|
Introduction
|
||||||
------------
|
------------
|
||||||
|
|
||||||
SabreDAV is the most popular WebDAV framework for PHP. Use it to create WebDAV, CalDAV and CardDAV servers.
|
sabre/dav is the most popular WebDAV framework for PHP. Use it to create WebDAV, CalDAV and CardDAV servers.
|
||||||
|
|
||||||
Full documentation can be found on the website:
|
Full documentation can be found on the website:
|
||||||
|
|
||||||
@ -16,6 +16,7 @@ Build status
|
|||||||
| branch | status | minimum PHP version |
|
| branch | status | minimum PHP version |
|
||||||
| ------------ | ------ | ------------------- |
|
| ------------ | ------ | ------------------- |
|
||||||
| master | [](https://travis-ci.org/fruux/sabre-dav) | PHP 5.5 |
|
| master | [](https://travis-ci.org/fruux/sabre-dav) | PHP 5.5 |
|
||||||
|
| 3.1 | [](https://travis-ci.org/fruux/sabre-dav) | PHP 5.5 |
|
||||||
| 3.0 | [](https://travis-ci.org/fruux/sabre-dav) | PHP 5.4 |
|
| 3.0 | [](https://travis-ci.org/fruux/sabre-dav) | PHP 5.4 |
|
||||||
| 2.1 | [](https://travis-ci.org/fruux/sabre-dav) | PHP 5.4 |
|
| 2.1 | [](https://travis-ci.org/fruux/sabre-dav) | PHP 5.4 |
|
||||||
| 2.0 | [](https://travis-ci.org/fruux/sabre-dav) | PHP 5.4 |
|
| 2.0 | [](https://travis-ci.org/fruux/sabre-dav) | PHP 5.4 |
|
||||||
@ -23,6 +24,12 @@ Build status
|
|||||||
| 1.7 | [](https://travis-ci.org/fruux/sabre-dav) | PHP 5.3 |
|
| 1.7 | [](https://travis-ci.org/fruux/sabre-dav) | PHP 5.3 |
|
||||||
| 1.6 | [](https://travis-ci.org/fruux/sabre-dav) | PHP 5.3 |
|
| 1.6 | [](https://travis-ci.org/fruux/sabre-dav) | PHP 5.3 |
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
* [Introduction](http://sabre.io/dav/).
|
||||||
|
* [Installation](http://sabre.io/dav/install/).
|
||||||
|
|
||||||
Made at fruux
|
Made at fruux
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
2
vendor/sabre/dav/bin/build.php
vendored
Executable file → Normal file
2
vendor/sabre/dav/bin/build.php
vendored
Executable file → Normal file
@ -110,7 +110,7 @@ function test() {
|
|||||||
|
|
||||||
echo " Running all unittests.\n";
|
echo " Running all unittests.\n";
|
||||||
echo " This may take a while.\n\n";
|
echo " This may take a while.\n\n";
|
||||||
system(__DIR__ . '/phpunit --configuration ' . $baseDir . '/tests/phpunit.xml --stop-on-failure', $code);
|
system(__DIR__ . '/phpunit --configuration ' . $baseDir . '/tests/phpunit.xml.dist --stop-on-failure', $code);
|
||||||
if ($code != 0) {
|
if ($code != 0) {
|
||||||
echo "PHPUnit reported error code $code\n";
|
echo "PHPUnit reported error code $code\n";
|
||||||
die(1);
|
die(1);
|
||||||
|
0
vendor/sabre/dav/bin/googlecode_upload.py
vendored
Executable file → Normal file
0
vendor/sabre/dav/bin/googlecode_upload.py
vendored
Executable file → Normal file
284
vendor/sabre/dav/bin/migrateto17.php
vendored
284
vendor/sabre/dav/bin/migrateto17.php
vendored
@ -1,284 +0,0 @@
|
|||||||
#!/usr/bin/env php
|
|
||||||
<?php
|
|
||||||
|
|
||||||
echo "SabreDAV migrate script for version 1.7\n";
|
|
||||||
|
|
||||||
if ($argc < 2) {
|
|
||||||
|
|
||||||
echo <<<HELLO
|
|
||||||
|
|
||||||
This script help you migrate from a pre-1.7 database to 1.7 and later\n
|
|
||||||
Both the 'calendarobjects' and 'calendars' tables will be upgraded.
|
|
||||||
|
|
||||||
If you do not have this table, or don't use the default PDO CalDAV backend
|
|
||||||
it's pointless to run this script.
|
|
||||||
|
|
||||||
Keep in mind that some processing will be done on every single record of this
|
|
||||||
table and in addition, ALTER TABLE commands will be executed.
|
|
||||||
If you have a large calendarobjects table, this may mean that this process
|
|
||||||
takes a while.
|
|
||||||
|
|
||||||
Usage:
|
|
||||||
|
|
||||||
php {$argv[0]} [pdo-dsn] [username] [password]
|
|
||||||
|
|
||||||
For example:
|
|
||||||
|
|
||||||
php {$argv[0]} "mysql:host=localhost;dbname=sabredav" root password
|
|
||||||
php {$argv[0]} sqlite:data/sabredav.db
|
|
||||||
|
|
||||||
HELLO;
|
|
||||||
|
|
||||||
exit();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// There's a bunch of places where the autoloader could be, so we'll try all of
|
|
||||||
// them.
|
|
||||||
$paths = [
|
|
||||||
__DIR__ . '/../vendor/autoload.php',
|
|
||||||
__DIR__ . '/../../../autoload.php',
|
|
||||||
];
|
|
||||||
|
|
||||||
foreach ($paths as $path) {
|
|
||||||
if (file_exists($path)) {
|
|
||||||
include $path;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$dsn = $argv[1];
|
|
||||||
$user = isset($argv[2]) ? $argv[2] : null;
|
|
||||||
$pass = isset($argv[3]) ? $argv[3] : null;
|
|
||||||
|
|
||||||
echo "Connecting to database: " . $dsn . "\n";
|
|
||||||
|
|
||||||
$pdo = new PDO($dsn, $user, $pass);
|
|
||||||
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
|
||||||
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
|
|
||||||
|
|
||||||
echo "Validating existing table layout\n";
|
|
||||||
|
|
||||||
// The only cross-db way to do this, is to just fetch a single record.
|
|
||||||
$row = $pdo->query("SELECT * FROM calendarobjects LIMIT 1")->fetch();
|
|
||||||
|
|
||||||
if (!$row) {
|
|
||||||
echo "Error: This database did not have any records in the calendarobjects table, you should just recreate the table.\n";
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
$requiredFields = [
|
|
||||||
'id',
|
|
||||||
'calendardata',
|
|
||||||
'uri',
|
|
||||||
'calendarid',
|
|
||||||
'lastmodified',
|
|
||||||
];
|
|
||||||
|
|
||||||
foreach ($requiredFields as $requiredField) {
|
|
||||||
if (!array_key_exists($requiredField, $row)) {
|
|
||||||
echo "Error: The current 'calendarobjects' table was missing a field we expected to exist.\n";
|
|
||||||
echo "For safety reasons, this process is stopped.\n";
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$fields17 = [
|
|
||||||
'etag',
|
|
||||||
'size',
|
|
||||||
'componenttype',
|
|
||||||
'firstoccurence',
|
|
||||||
'lastoccurence',
|
|
||||||
];
|
|
||||||
|
|
||||||
$found = 0;
|
|
||||||
foreach ($fields17 as $field) {
|
|
||||||
if (array_key_exists($field, $row)) {
|
|
||||||
$found++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($found === 0) {
|
|
||||||
echo "The database had the 1.6 schema. Table will now be altered.\n";
|
|
||||||
echo "This may take some time for large tables\n";
|
|
||||||
|
|
||||||
switch ($pdo->getAttribute(PDO::ATTR_DRIVER_NAME)) {
|
|
||||||
|
|
||||||
case 'mysql' :
|
|
||||||
|
|
||||||
$pdo->exec(<<<SQL
|
|
||||||
ALTER TABLE calendarobjects
|
|
||||||
ADD etag VARCHAR(32),
|
|
||||||
ADD size INT(11) UNSIGNED,
|
|
||||||
ADD componenttype VARCHAR(8),
|
|
||||||
ADD firstoccurence INT(11) UNSIGNED,
|
|
||||||
ADD lastoccurence INT(11) UNSIGNED
|
|
||||||
SQL
|
|
||||||
);
|
|
||||||
break;
|
|
||||||
case 'sqlite' :
|
|
||||||
$pdo->exec('ALTER TABLE calendarobjects ADD etag text');
|
|
||||||
$pdo->exec('ALTER TABLE calendarobjects ADD size integer');
|
|
||||||
$pdo->exec('ALTER TABLE calendarobjects ADD componenttype TEXT');
|
|
||||||
$pdo->exec('ALTER TABLE calendarobjects ADD firstoccurence integer');
|
|
||||||
$pdo->exec('ALTER TABLE calendarobjects ADD lastoccurence integer');
|
|
||||||
break;
|
|
||||||
|
|
||||||
default :
|
|
||||||
die('This upgrade script does not support this driver (' . $pdo->getAttribute(PDO::ATTR_DRIVER_NAME) . ")\n");
|
|
||||||
|
|
||||||
}
|
|
||||||
echo "Database schema upgraded.\n";
|
|
||||||
|
|
||||||
} elseif ($found === 5) {
|
|
||||||
|
|
||||||
echo "Database already had the 1.7 schema\n";
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
echo "The database had $found out of 5 from the changes for 1.7. This is scary and unusual, so we have to abort.\n";
|
|
||||||
echo "You can manually try to upgrade the schema, and then run this script again.\n";
|
|
||||||
exit(-1);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
echo "Now, we need to parse every record and pull out some information.\n";
|
|
||||||
|
|
||||||
$result = $pdo->query('SELECT id, calendardata FROM calendarobjects');
|
|
||||||
$stmt = $pdo->prepare('UPDATE calendarobjects SET etag = ?, size = ?, componenttype = ?, firstoccurence = ?, lastoccurence = ? WHERE id = ?');
|
|
||||||
|
|
||||||
echo "Total records found: " . $result->rowCount() . "\n";
|
|
||||||
$done = 0;
|
|
||||||
$total = $result->rowCount();
|
|
||||||
while ($row = $result->fetch()) {
|
|
||||||
|
|
||||||
try {
|
|
||||||
$newData = getDenormalizedData($row['calendardata']);
|
|
||||||
} catch (Exception $e) {
|
|
||||||
echo "===\nException caught will trying to parser calendarobject.\n";
|
|
||||||
echo "Error message: " . $e->getMessage() . "\n";
|
|
||||||
echo "Record id: " . $row['id'] . "\n";
|
|
||||||
echo "This record is ignored, you should inspect it to see if there's anything wrong.\n===\n";
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$stmt->execute([
|
|
||||||
$newData['etag'],
|
|
||||||
$newData['size'],
|
|
||||||
$newData['componentType'],
|
|
||||||
$newData['firstOccurence'],
|
|
||||||
$newData['lastOccurence'],
|
|
||||||
$row['id'],
|
|
||||||
]);
|
|
||||||
$done++;
|
|
||||||
|
|
||||||
if ($done % 500 === 0) {
|
|
||||||
echo "Completed: $done / $total\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
echo "Completed: $done / $total\n";
|
|
||||||
|
|
||||||
echo "Checking the calendars table needs changes.\n";
|
|
||||||
$row = $pdo->query("SELECT * FROM calendars LIMIT 1")->fetch();
|
|
||||||
|
|
||||||
if (array_key_exists('transparent', $row)) {
|
|
||||||
|
|
||||||
echo "The calendars table is already up to date\n";
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
echo "Adding the 'transparent' field to the calendars table\n";
|
|
||||||
|
|
||||||
switch ($pdo->getAttribute(PDO::ATTR_DRIVER_NAME)) {
|
|
||||||
|
|
||||||
case 'mysql' :
|
|
||||||
$pdo->exec("ALTER TABLE calendars ADD transparent TINYINT(1) NOT NULL DEFAULT '0'");
|
|
||||||
break;
|
|
||||||
case 'sqlite' :
|
|
||||||
$pdo->exec("ALTER TABLE calendars ADD transparent bool");
|
|
||||||
break;
|
|
||||||
|
|
||||||
default :
|
|
||||||
die('This upgrade script does not support this driver (' . $pdo->getAttribute(PDO::ATTR_DRIVER_NAME) . ")\n");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
echo "Process completed!\n";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Parses some information from calendar objects, used for optimized
|
|
||||||
* calendar-queries.
|
|
||||||
*
|
|
||||||
* Blantently copied from Sabre\CalDAV\Backend\PDO
|
|
||||||
*
|
|
||||||
* Returns an array with the following keys:
|
|
||||||
* * etag
|
|
||||||
* * size
|
|
||||||
* * componentType
|
|
||||||
* * firstOccurence
|
|
||||||
* * lastOccurence
|
|
||||||
*
|
|
||||||
* @param string $calendarData
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
function getDenormalizedData($calendarData) {
|
|
||||||
|
|
||||||
$vObject = \Sabre\VObject\Reader::read($calendarData);
|
|
||||||
$componentType = null;
|
|
||||||
$component = null;
|
|
||||||
$firstOccurence = null;
|
|
||||||
$lastOccurence = null;
|
|
||||||
foreach ($vObject->getComponents() as $component) {
|
|
||||||
if ($component->name !== 'VTIMEZONE') {
|
|
||||||
$componentType = $component->name;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!$componentType) {
|
|
||||||
throw new \Sabre\DAV\Exception\BadRequest('Calendar objects must have a VJOURNAL, VEVENT or VTODO component');
|
|
||||||
}
|
|
||||||
if ($componentType === 'VEVENT') {
|
|
||||||
$firstOccurence = $component->DTSTART->getDateTime()->getTimeStamp();
|
|
||||||
// Finding the last occurence is a bit harder
|
|
||||||
if (!isset($component->RRULE)) {
|
|
||||||
if (isset($component->DTEND)) {
|
|
||||||
$lastOccurence = $component->DTEND->getDateTime()->getTimeStamp();
|
|
||||||
} elseif (isset($component->DURATION)) {
|
|
||||||
$endDate = clone $component->DTSTART->getDateTime();
|
|
||||||
$endDate->add(\Sabre\VObject\DateTimeParser::parse($component->DURATION->value));
|
|
||||||
$lastOccurence = $endDate->getTimeStamp();
|
|
||||||
} elseif (!$component->DTSTART->hasTime()) {
|
|
||||||
$endDate = clone $component->DTSTART->getDateTime();
|
|
||||||
$endDate->modify('+1 day');
|
|
||||||
$lastOccurence = $endDate->getTimeStamp();
|
|
||||||
} else {
|
|
||||||
$lastOccurence = $firstOccurence;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$it = new \Sabre\VObject\Recur\EventIterator($vObject, (string)$component->UID);
|
|
||||||
$maxDate = new DateTime(\Sabre\CalDAV\Backend\PDO::MAX_DATE);
|
|
||||||
if ($it->isInfinite()) {
|
|
||||||
$lastOccurence = $maxDate->getTimeStamp();
|
|
||||||
} else {
|
|
||||||
$end = $it->getDtEnd();
|
|
||||||
while ($it->valid() && $end < $maxDate) {
|
|
||||||
$end = $it->getDtEnd();
|
|
||||||
$it->next();
|
|
||||||
|
|
||||||
}
|
|
||||||
$lastOccurence = $end->getTimeStamp();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return [
|
|
||||||
'etag' => md5($calendarData),
|
|
||||||
'size' => strlen($calendarData),
|
|
||||||
'componentType' => $componentType,
|
|
||||||
'firstOccurence' => $firstOccurence,
|
|
||||||
'lastOccurence' => $lastOccurence,
|
|
||||||
];
|
|
||||||
|
|
||||||
}
|
|
0
vendor/sabre/dav/bin/migrateto20.php
vendored
Executable file → Normal file
0
vendor/sabre/dav/bin/migrateto20.php
vendored
Executable file → Normal file
4
vendor/sabre/dav/bin/migrateto21.php
vendored
Executable file → Normal file
4
vendor/sabre/dav/bin/migrateto21.php
vendored
Executable file → Normal file
@ -169,10 +169,6 @@ switch ($driver) {
|
|||||||
)
|
)
|
||||||
');
|
');
|
||||||
break;
|
break;
|
||||||
$pdo->exec('
|
|
||||||
CREATE INDEX principaluri_uri ON calendarsubscriptions (principaluri, uri);
|
|
||||||
');
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "Done.\n";
|
echo "Done.\n";
|
||||||
|
0
vendor/sabre/dav/bin/migrateto30.php
vendored
Executable file → Normal file
0
vendor/sabre/dav/bin/migrateto30.php
vendored
Executable file → Normal file
268
vendor/sabre/dav/bin/migrateto32.php
vendored
Normal file
268
vendor/sabre/dav/bin/migrateto32.php
vendored
Normal file
@ -0,0 +1,268 @@
|
|||||||
|
#!/usr/bin/env php
|
||||||
|
<?php
|
||||||
|
|
||||||
|
echo "SabreDAV migrate script for version 3.2\n";
|
||||||
|
|
||||||
|
if ($argc < 2) {
|
||||||
|
|
||||||
|
echo <<<HELLO
|
||||||
|
|
||||||
|
This script help you migrate from a 3.1 database to 3.2 and later
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
* Created a new calendarinstances table to support calendar sharing.
|
||||||
|
* Remove a lot of columns from calendars.
|
||||||
|
|
||||||
|
Keep in mind that ALTER TABLE commands will be executed. If you have a large
|
||||||
|
dataset this may mean that this process takes a while.
|
||||||
|
|
||||||
|
Make a back-up first. This script has been tested, but the amount of
|
||||||
|
potential variants are extremely high, so it's impossible to deal with every
|
||||||
|
possible situation.
|
||||||
|
|
||||||
|
In the worst case, you will lose all your data. This is not an overstatement.
|
||||||
|
|
||||||
|
Lastly, if you are upgrading from an older version than 3.1, make sure you run
|
||||||
|
the earlier migration script first. Migration scripts must be ran in order.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
|
||||||
|
php {$argv[0]} [pdo-dsn] [username] [password]
|
||||||
|
|
||||||
|
For example:
|
||||||
|
|
||||||
|
php {$argv[0]} "mysql:host=localhost;dbname=sabredav" root password
|
||||||
|
php {$argv[0]} sqlite:data/sabredav.db
|
||||||
|
|
||||||
|
HELLO;
|
||||||
|
|
||||||
|
exit();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// There's a bunch of places where the autoloader could be, so we'll try all of
|
||||||
|
// them.
|
||||||
|
$paths = [
|
||||||
|
__DIR__ . '/../vendor/autoload.php',
|
||||||
|
__DIR__ . '/../../../autoload.php',
|
||||||
|
];
|
||||||
|
|
||||||
|
foreach ($paths as $path) {
|
||||||
|
if (file_exists($path)) {
|
||||||
|
include $path;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$dsn = $argv[1];
|
||||||
|
$user = isset($argv[2]) ? $argv[2] : null;
|
||||||
|
$pass = isset($argv[3]) ? $argv[3] : null;
|
||||||
|
|
||||||
|
$backupPostfix = time();
|
||||||
|
|
||||||
|
echo "Connecting to database: " . $dsn . "\n";
|
||||||
|
|
||||||
|
$pdo = new PDO($dsn, $user, $pass);
|
||||||
|
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||||
|
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
|
||||||
|
|
||||||
|
$driver = $pdo->getAttribute(PDO::ATTR_DRIVER_NAME);
|
||||||
|
|
||||||
|
switch ($driver) {
|
||||||
|
|
||||||
|
case 'mysql' :
|
||||||
|
echo "Detected MySQL.\n";
|
||||||
|
break;
|
||||||
|
case 'sqlite' :
|
||||||
|
echo "Detected SQLite.\n";
|
||||||
|
break;
|
||||||
|
default :
|
||||||
|
echo "Error: unsupported driver: " . $driver . "\n";
|
||||||
|
die(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "Creating 'calendarinstances'\n";
|
||||||
|
$addValueType = false;
|
||||||
|
try {
|
||||||
|
$result = $pdo->query('SELECT * FROM calendarinstances LIMIT 1');
|
||||||
|
$result->fetch(\PDO::FETCH_ASSOC);
|
||||||
|
echo "calendarinstances exists. Assuming this part of the migration has already been done.\n";
|
||||||
|
} catch (Exception $e) {
|
||||||
|
echo "calendarinstances does not yet exist. Creating table and migrating data.\n";
|
||||||
|
|
||||||
|
switch ($driver) {
|
||||||
|
case 'mysql' :
|
||||||
|
$pdo->exec(<<<SQL
|
||||||
|
CREATE TABLE calendarinstances (
|
||||||
|
id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
||||||
|
calendarid INTEGER UNSIGNED NOT NULL,
|
||||||
|
principaluri VARBINARY(100),
|
||||||
|
access TINYINT(1) NOT NULL DEFAULT '1' COMMENT '1 = owner, 2 = read, 3 = readwrite',
|
||||||
|
displayname VARCHAR(100),
|
||||||
|
uri VARBINARY(200),
|
||||||
|
description TEXT,
|
||||||
|
calendarorder INT(11) UNSIGNED NOT NULL DEFAULT '0',
|
||||||
|
calendarcolor VARBINARY(10),
|
||||||
|
timezone TEXT,
|
||||||
|
transparent TINYINT(1) NOT NULL DEFAULT '0',
|
||||||
|
share_href VARBINARY(100),
|
||||||
|
share_displayname VARCHAR(100),
|
||||||
|
share_invitestatus TINYINT(1) NOT NULL DEFAULT '2' COMMENT '1 = noresponse, 2 = accepted, 3 = declined, 4 = invalid',
|
||||||
|
UNIQUE(principaluri, uri),
|
||||||
|
UNIQUE(calendarid, principaluri),
|
||||||
|
UNIQUE(calendarid, share_href)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
SQL
|
||||||
|
);
|
||||||
|
$pdo->exec("
|
||||||
|
INSERT INTO calendarinstances
|
||||||
|
(
|
||||||
|
calendarid,
|
||||||
|
principaluri,
|
||||||
|
access,
|
||||||
|
displayname,
|
||||||
|
uri,
|
||||||
|
description,
|
||||||
|
calendarorder,
|
||||||
|
calendarcolor,
|
||||||
|
transparent
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
id,
|
||||||
|
principaluri,
|
||||||
|
1,
|
||||||
|
displayname,
|
||||||
|
uri,
|
||||||
|
description,
|
||||||
|
calendarorder,
|
||||||
|
calendarcolor,
|
||||||
|
transparent
|
||||||
|
FROM calendars
|
||||||
|
");
|
||||||
|
break;
|
||||||
|
case 'sqlite' :
|
||||||
|
$pdo->exec(<<<SQL
|
||||||
|
CREATE TABLE calendarinstances (
|
||||||
|
id integer primary key asc NOT NULL,
|
||||||
|
calendarid integer,
|
||||||
|
principaluri text,
|
||||||
|
access integer COMMENT '1 = owner, 2 = read, 3 = readwrite' NOT NULL DEFAULT '1',
|
||||||
|
displayname text,
|
||||||
|
uri text NOT NULL,
|
||||||
|
description text,
|
||||||
|
calendarorder integer,
|
||||||
|
calendarcolor text,
|
||||||
|
timezone text,
|
||||||
|
transparent bool,
|
||||||
|
share_href text,
|
||||||
|
share_displayname text,
|
||||||
|
share_invitestatus integer DEFAULT '2',
|
||||||
|
UNIQUE (principaluri, uri),
|
||||||
|
UNIQUE (calendarid, principaluri),
|
||||||
|
UNIQUE (calendarid, share_href)
|
||||||
|
);
|
||||||
|
SQL
|
||||||
|
);
|
||||||
|
$pdo->exec("
|
||||||
|
INSERT INTO calendarinstances
|
||||||
|
(
|
||||||
|
calendarid,
|
||||||
|
principaluri,
|
||||||
|
access,
|
||||||
|
displayname,
|
||||||
|
uri,
|
||||||
|
description,
|
||||||
|
calendarorder,
|
||||||
|
calendarcolor,
|
||||||
|
transparent
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
id,
|
||||||
|
principaluri,
|
||||||
|
1,
|
||||||
|
displayname,
|
||||||
|
uri,
|
||||||
|
description,
|
||||||
|
calendarorder,
|
||||||
|
calendarcolor,
|
||||||
|
transparent
|
||||||
|
FROM calendars
|
||||||
|
");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
$result = $pdo->query('SELECT * FROM calendars LIMIT 1');
|
||||||
|
$row = $result->fetch(\PDO::FETCH_ASSOC);
|
||||||
|
|
||||||
|
if (!$row) {
|
||||||
|
echo "Source table is empty.\n";
|
||||||
|
$migrateCalendars = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$columnCount = count($row);
|
||||||
|
if ($columnCount === 3) {
|
||||||
|
echo "The calendars table has 3 columns already. Assuming this part of the migration was already done.\n";
|
||||||
|
$migrateCalendars = false;
|
||||||
|
} else {
|
||||||
|
echo "The calendars table has " . $columnCount . " columns.\n";
|
||||||
|
$migrateCalendars = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception $e) {
|
||||||
|
echo "calendars table does not exist. This is a major problem. Exiting.\n";
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($migrateCalendars) {
|
||||||
|
|
||||||
|
$calendarBackup = 'calendars_3_1_' . $backupPostfix;
|
||||||
|
echo "Backing up 'calendars' to '", $calendarBackup, "'\n";
|
||||||
|
|
||||||
|
switch ($driver) {
|
||||||
|
case 'mysql' :
|
||||||
|
$pdo->exec('RENAME TABLE calendars TO ' . $calendarBackup);
|
||||||
|
break;
|
||||||
|
case 'sqlite' :
|
||||||
|
$pdo->exec('ALTER TABLE calendars RENAME TO ' . $calendarBackup);
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "Creating new calendars table.\n";
|
||||||
|
switch ($driver) {
|
||||||
|
case 'mysql' :
|
||||||
|
$pdo->exec(<<<SQL
|
||||||
|
CREATE TABLE calendars (
|
||||||
|
id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
||||||
|
synctoken INTEGER UNSIGNED NOT NULL DEFAULT '1',
|
||||||
|
components VARBINARY(21)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||||
|
SQL
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
case 'sqlite' :
|
||||||
|
$pdo->exec(<<<SQL
|
||||||
|
CREATE TABLE calendars (
|
||||||
|
id integer primary key asc NOT NULL,
|
||||||
|
synctoken integer DEFAULT 1 NOT NULL,
|
||||||
|
components text NOT NULL
|
||||||
|
);
|
||||||
|
SQL
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "Migrating data from old to new table\n";
|
||||||
|
|
||||||
|
$pdo->exec(<<<SQL
|
||||||
|
INSERT INTO calendars (id, synctoken, components) SELECT id, synctoken, COALESCE(components,"VEVENT,VTODO,VJOURNAL") as components FROM $calendarBackup
|
||||||
|
SQL
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
echo "Upgrade to 3.2 schema completed.\n";
|
2
vendor/sabre/dav/bin/naturalselection
vendored
2
vendor/sabre/dav/bin/naturalselection
vendored
@ -107,7 +107,7 @@ def main():
|
|||||||
parser.add_option(
|
parser.add_option(
|
||||||
'-m', '--min-erase',
|
'-m', '--min-erase',
|
||||||
help="Minimum number of bytes to erase when the threshold is reached. " +
|
help="Minimum number of bytes to erase when the threshold is reached. " +
|
||||||
"Setting this option higher will reduce the amount of times the cache directory will need to be scanned. " +
|
"Setting this option higher will reduce the number of times the cache directory will need to be scanned. " +
|
||||||
"(the default is 1073741824, which is 1GB.)",
|
"(the default is 1073741824, which is 1GB.)",
|
||||||
type="int",
|
type="int",
|
||||||
dest="min_erase",
|
dest="min_erase",
|
||||||
|
0
vendor/sabre/dav/bin/sabredav.php
vendored
Executable file → Normal file
0
vendor/sabre/dav/bin/sabredav.php
vendored
Executable file → Normal file
57
vendor/sabre/dav/examples/addressbookserver.php
vendored
57
vendor/sabre/dav/examples/addressbookserver.php
vendored
@ -1,57 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
Addressbook/CardDAV server example
|
|
||||||
|
|
||||||
This server features CardDAV support
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
// settings
|
|
||||||
date_default_timezone_set('Canada/Eastern');
|
|
||||||
|
|
||||||
// Make sure this setting is turned on and reflect the root url for your WebDAV server.
|
|
||||||
// This can be for example the root / or a complete path to your server script
|
|
||||||
$baseUri = '/';
|
|
||||||
|
|
||||||
/* Database */
|
|
||||||
$pdo = new PDO('sqlite:data/db.sqlite');
|
|
||||||
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
|
||||||
|
|
||||||
//Mapping PHP errors to exceptions
|
|
||||||
function exception_error_handler($errno, $errstr, $errfile, $errline) {
|
|
||||||
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
|
|
||||||
}
|
|
||||||
set_error_handler("exception_error_handler");
|
|
||||||
|
|
||||||
// Autoloader
|
|
||||||
require_once 'vendor/autoload.php';
|
|
||||||
|
|
||||||
// Backends
|
|
||||||
$authBackend = new Sabre\DAV\Auth\Backend\PDO($pdo);
|
|
||||||
$principalBackend = new Sabre\DAVACL\PrincipalBackend\PDO($pdo);
|
|
||||||
$carddavBackend = new Sabre\CardDAV\Backend\PDO($pdo);
|
|
||||||
//$caldavBackend = new Sabre\CalDAV\Backend\PDO($pdo);
|
|
||||||
|
|
||||||
// Setting up the directory tree //
|
|
||||||
$nodes = [
|
|
||||||
new Sabre\DAVACL\PrincipalCollection($principalBackend),
|
|
||||||
// new Sabre\CalDAV\CalendarRoot($authBackend, $caldavBackend),
|
|
||||||
new Sabre\CardDAV\AddressBookRoot($principalBackend, $carddavBackend),
|
|
||||||
];
|
|
||||||
|
|
||||||
// The object tree needs in turn to be passed to the server class
|
|
||||||
$server = new Sabre\DAV\Server($nodes);
|
|
||||||
$server->setBaseUri($baseUri);
|
|
||||||
|
|
||||||
// Plugins
|
|
||||||
$server->addPlugin(new Sabre\DAV\Auth\Plugin($authBackend));
|
|
||||||
$server->addPlugin(new Sabre\DAV\Browser\Plugin());
|
|
||||||
//$server->addPlugin(new Sabre\CalDAV\Plugin());
|
|
||||||
$server->addPlugin(new Sabre\CardDAV\Plugin());
|
|
||||||
$server->addPlugin(new Sabre\DAVACL\Plugin());
|
|
||||||
$server->addPlugin(new Sabre\DAV\Sync\Plugin());
|
|
||||||
|
|
||||||
// And off we go!
|
|
||||||
$server->exec();
|
|
@ -1,28 +0,0 @@
|
|||||||
CREATE TABLE addressbooks (
|
|
||||||
id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
|
||||||
principaluri VARBINARY(255),
|
|
||||||
displayname VARCHAR(255),
|
|
||||||
uri VARBINARY(200),
|
|
||||||
description TEXT,
|
|
||||||
synctoken INT(11) UNSIGNED NOT NULL DEFAULT '1',
|
|
||||||
UNIQUE(principaluri(100), uri(100))
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
||||||
|
|
||||||
CREATE TABLE cards (
|
|
||||||
id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
|
||||||
addressbookid INT(11) UNSIGNED NOT NULL,
|
|
||||||
carddata MEDIUMBLOB,
|
|
||||||
uri VARBINARY(200),
|
|
||||||
lastmodified INT(11) UNSIGNED,
|
|
||||||
etag VARBINARY(32),
|
|
||||||
size INT(11) UNSIGNED NOT NULL
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
||||||
|
|
||||||
CREATE TABLE addressbookchanges (
|
|
||||||
id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
|
||||||
uri VARBINARY(200) NOT NULL,
|
|
||||||
synctoken INT(11) UNSIGNED NOT NULL,
|
|
||||||
addressbookid INT(11) UNSIGNED NOT NULL,
|
|
||||||
operation TINYINT(1) NOT NULL,
|
|
||||||
INDEX addressbookid_synctoken (addressbookid, synctoken)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user