commit
ff1074d38f
17 changed files with 89 additions and 46 deletions
22
boot.php
22
boot.php
|
@ -835,28 +835,6 @@ function check_addons(App $a)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_guid($size = 16, $prefix = '')
|
|
||||||
{
|
|
||||||
if (is_bool($prefix) && !$prefix) {
|
|
||||||
$prefix = '';
|
|
||||||
} elseif ($prefix == '') {
|
|
||||||
$a = get_app();
|
|
||||||
$prefix = hash('crc32', $a->get_hostname());
|
|
||||||
}
|
|
||||||
|
|
||||||
while (strlen($prefix) < ($size - 13)) {
|
|
||||||
$prefix .= mt_rand();
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($size >= 24) {
|
|
||||||
$prefix = substr($prefix, 0, $size - 22);
|
|
||||||
return str_replace('.', '', uniqid($prefix, true));
|
|
||||||
} else {
|
|
||||||
$prefix = substr($prefix, 0, max($size - 13, 0));
|
|
||||||
return uniqid($prefix);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Used to end the current process, after saving session state.
|
* @brief Used to end the current process, after saving session state.
|
||||||
* @deprecated
|
* @deprecated
|
||||||
|
|
|
@ -4534,7 +4534,7 @@ function post_photo_item($hash, $allow_cid, $deny_cid, $allow_gid, $deny_gid, $f
|
||||||
$owner_record = q("SELECT * FROM `contact` WHERE `uid`= %d AND `self` LIMIT 1", intval(api_user()));
|
$owner_record = q("SELECT * FROM `contact` WHERE `uid`= %d AND `self` LIMIT 1", intval(api_user()));
|
||||||
|
|
||||||
$arr = [];
|
$arr = [];
|
||||||
$arr['guid'] = get_guid(32);
|
$arr['guid'] = System::createGUID(32);
|
||||||
$arr['uid'] = intval(api_user());
|
$arr['uid'] = intval(api_user());
|
||||||
$arr['uri'] = $uri;
|
$arr['uri'] = $uri;
|
||||||
$arr['parent-uri'] = $uri;
|
$arr['parent-uri'] = $uri;
|
||||||
|
|
|
@ -1549,7 +1549,7 @@ function return_bytes($size_str) {
|
||||||
function generate_user_guid() {
|
function generate_user_guid() {
|
||||||
$found = true;
|
$found = true;
|
||||||
do {
|
do {
|
||||||
$guid = get_guid(32);
|
$guid = System::createGUID(32);
|
||||||
$x = q("SELECT `uid` FROM `user` WHERE `guid` = '%s' LIMIT 1",
|
$x = q("SELECT `uid` FROM `user` WHERE `guid` = '%s' LIMIT 1",
|
||||||
dbesc($guid)
|
dbesc($guid)
|
||||||
);
|
);
|
||||||
|
|
|
@ -232,7 +232,7 @@ function item_post(App $a) {
|
||||||
$emailcc = notags(trim(defaults($_REQUEST, 'emailcc' , '')));
|
$emailcc = notags(trim(defaults($_REQUEST, 'emailcc' , '')));
|
||||||
$body = escape_tags(trim(defaults($_REQUEST, 'body' , '')));
|
$body = escape_tags(trim(defaults($_REQUEST, 'body' , '')));
|
||||||
$network = notags(trim(defaults($_REQUEST, 'network' , NETWORK_DFRN)));
|
$network = notags(trim(defaults($_REQUEST, 'network' , NETWORK_DFRN)));
|
||||||
$guid = get_guid(32);
|
$guid = System::createGUID(32);
|
||||||
|
|
||||||
$postopts = defaults($_REQUEST, 'postopts', '');
|
$postopts = defaults($_REQUEST, 'postopts', '');
|
||||||
|
|
||||||
|
|
|
@ -453,7 +453,7 @@ function photos_post(App $a)
|
||||||
$uri = Item::newURI($page_owner_uid);
|
$uri = Item::newURI($page_owner_uid);
|
||||||
|
|
||||||
$arr = [];
|
$arr = [];
|
||||||
$arr['guid'] = get_guid(32);
|
$arr['guid'] = System::createGUID(32);
|
||||||
$arr['uid'] = $page_owner_uid;
|
$arr['uid'] = $page_owner_uid;
|
||||||
$arr['uri'] = $uri;
|
$arr['uri'] = $uri;
|
||||||
$arr['parent-uri'] = $uri;
|
$arr['parent-uri'] = $uri;
|
||||||
|
@ -620,7 +620,7 @@ function photos_post(App $a)
|
||||||
$uri = Item::newURI($page_owner_uid);
|
$uri = Item::newURI($page_owner_uid);
|
||||||
|
|
||||||
$arr = [];
|
$arr = [];
|
||||||
$arr['guid'] = get_guid(32);
|
$arr['guid'] = System::createGUID(32);
|
||||||
$arr['uid'] = $page_owner_uid;
|
$arr['uid'] = $page_owner_uid;
|
||||||
$arr['uri'] = $uri;
|
$arr['uri'] = $uri;
|
||||||
$arr['parent-uri'] = $uri;
|
$arr['parent-uri'] = $uri;
|
||||||
|
@ -856,7 +856,7 @@ function photos_post(App $a)
|
||||||
$arr['coord'] = $lat . ' ' . $lon;
|
$arr['coord'] = $lat . ' ' . $lon;
|
||||||
}
|
}
|
||||||
|
|
||||||
$arr['guid'] = get_guid(32);
|
$arr['guid'] = System::createGUID(32);
|
||||||
$arr['uid'] = $page_owner_uid;
|
$arr['uid'] = $page_owner_uid;
|
||||||
$arr['uri'] = $uri;
|
$arr['uri'] = $uri;
|
||||||
$arr['parent-uri'] = $uri;
|
$arr['parent-uri'] = $uri;
|
||||||
|
|
|
@ -96,7 +96,7 @@ function poke_init(App $a) {
|
||||||
|
|
||||||
$arr = [];
|
$arr = [];
|
||||||
|
|
||||||
$arr['guid'] = get_guid(32);
|
$arr['guid'] = System::createGUID(32);
|
||||||
$arr['uid'] = $uid;
|
$arr['uid'] = $uid;
|
||||||
$arr['uri'] = $uri;
|
$arr['uri'] = $uri;
|
||||||
$arr['parent-uri'] = ($parent_uri ? $parent_uri : $uri);
|
$arr['parent-uri'] = ($parent_uri ? $parent_uri : $uri);
|
||||||
|
|
|
@ -188,7 +188,7 @@ function proxy_init(App $a) {
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
|
|
||||||
$fields = ['uid' => 0, 'contact-id' => 0, 'guid' => get_guid(), 'resource-id' => $urlhash, 'created' => DateTimeFormat::utcNow(), 'edited' => DateTimeFormat::utcNow(),
|
$fields = ['uid' => 0, 'contact-id' => 0, 'guid' => System::createGUID(), 'resource-id' => $urlhash, 'created' => DateTimeFormat::utcNow(), 'edited' => DateTimeFormat::utcNow(),
|
||||||
'filename' => basename($_REQUEST['url']), 'type' => '', 'album' => '', 'height' => imagesy($image), 'width' => imagesx($image),
|
'filename' => basename($_REQUEST['url']), 'type' => '', 'album' => '', 'height' => imagesy($image), 'width' => imagesx($image),
|
||||||
'datasize' => 0, 'data' => $img_str, 'scale' => 100, 'profile' => 0,
|
'datasize' => 0, 'data' => $img_str, 'scale' => 100, 'profile' => 0,
|
||||||
'allow_cid' => '', 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => '', 'desc' => $mime];
|
'allow_cid' => '', 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => '', 'desc' => $mime];
|
||||||
|
|
|
@ -118,7 +118,7 @@ EOT;
|
||||||
|
|
||||||
$arr = [];
|
$arr = [];
|
||||||
|
|
||||||
$arr['guid'] = get_guid(32);
|
$arr['guid'] = System::createGUID(32);
|
||||||
$arr['uri'] = $uri;
|
$arr['uri'] = $uri;
|
||||||
$arr['uid'] = $owner_uid;
|
$arr['uid'] = $owner_uid;
|
||||||
$arr['contact-id'] = $contact['id'];
|
$arr['contact-id'] = $contact['id'];
|
||||||
|
|
|
@ -115,7 +115,7 @@ EOT;
|
||||||
|
|
||||||
$arr = [];
|
$arr = [];
|
||||||
|
|
||||||
$arr['guid'] = get_guid(32);
|
$arr['guid'] = System::createGUID(32);
|
||||||
$arr['uri'] = $uri;
|
$arr['uri'] = $uri;
|
||||||
$arr['uid'] = $owner_uid;
|
$arr['uid'] = $owner_uid;
|
||||||
$arr['contact-id'] = $contact['id'];
|
$arr['contact-id'] = $contact['id'];
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
use Friendica\App;
|
use Friendica\App;
|
||||||
use Friendica\Core\Config;
|
use Friendica\Core\Config;
|
||||||
use Friendica\Core\L10n;
|
use Friendica\Core\L10n;
|
||||||
|
use Friendica\Core\System;
|
||||||
use Friendica\Database\DBM;
|
use Friendica\Database\DBM;
|
||||||
use Friendica\Util\DateTimeFormat;
|
use Friendica\Util\DateTimeFormat;
|
||||||
use Friendica\Util\Mimetype;
|
use Friendica\Util\Mimetype;
|
||||||
|
@ -121,7 +122,7 @@ function wall_attach_post(App $a) {
|
||||||
|
|
||||||
$filedata = @file_get_contents($src);
|
$filedata = @file_get_contents($src);
|
||||||
$mimetype = Mimetype::getContentType($filename);
|
$mimetype = Mimetype::getContentType($filename);
|
||||||
$hash = get_guid(64);
|
$hash = System::createGUID(64);
|
||||||
$created = DateTimeFormat::utcNow();
|
$created = DateTimeFormat::utcNow();
|
||||||
|
|
||||||
$fields = ['uid' => $page_owner_uid, 'hash' => $hash, 'filename' => $filename, 'filetype' => $mimetype,
|
$fields = ['uid' => $page_owner_uid, 'hash' => $hash, 'filename' => $filename, 'filetype' => $mimetype,
|
||||||
|
|
|
@ -175,9 +175,36 @@ EOT;
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generates a GUID with the given parameters
|
||||||
|
*
|
||||||
|
* @param int $size The size of the GUID (default is 16)
|
||||||
|
* @param bool|string $prefix A given prefix (default is empty)
|
||||||
|
* @return string a generated GUID
|
||||||
|
*/
|
||||||
|
public static function createGUID($size = 16, $prefix = '')
|
||||||
|
{
|
||||||
|
if (is_bool($prefix) && !$prefix) {
|
||||||
|
$prefix = '';
|
||||||
|
} elseif (empty($prefix)) {
|
||||||
|
$prefix = hash('crc32', self::getApp()->get_hostname());
|
||||||
|
}
|
||||||
|
|
||||||
|
while (strlen($prefix) < ($size - 13)) {
|
||||||
|
$prefix .= mt_rand();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($size >= 24) {
|
||||||
|
$prefix = substr($prefix, 0, $size - 22);
|
||||||
|
return str_replace('.', '', uniqid($prefix, true));
|
||||||
|
} else {
|
||||||
|
$prefix = substr($prefix, 0, max($size - 13, 0));
|
||||||
|
return uniqid($prefix);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// @todo Move the following functions from boot.php
|
/// @todo Move the following functions from boot.php
|
||||||
/*
|
/*
|
||||||
function get_guid($size = 16, $prefix = "")
|
|
||||||
function killme()
|
function killme()
|
||||||
function goaway($s)
|
function goaway($s)
|
||||||
function local_user()
|
function local_user()
|
||||||
|
|
|
@ -305,7 +305,7 @@ class Event extends BaseObject
|
||||||
|
|
||||||
Addon::callHooks('event_updated', $event['id']);
|
Addon::callHooks('event_updated', $event['id']);
|
||||||
} else {
|
} else {
|
||||||
$event['guid'] = get_guid(32);
|
$event['guid'] = System::createGUID(32);
|
||||||
|
|
||||||
// New event. Store it.
|
// New event. Store it.
|
||||||
dba::insert('event', $event);
|
dba::insert('event', $event);
|
||||||
|
|
|
@ -1075,7 +1075,7 @@ class Item extends BaseObject
|
||||||
} elseif (!empty($item['uri'])) {
|
} elseif (!empty($item['uri'])) {
|
||||||
$guid = self::guidFromUri($item['uri'], $prefix_host);
|
$guid = self::guidFromUri($item['uri'], $prefix_host);
|
||||||
} else {
|
} else {
|
||||||
$guid = get_guid(32, hash('crc32', $prefix_host));
|
$guid = System::createGUID(32, hash('crc32', $prefix_host));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $guid;
|
return $guid;
|
||||||
|
@ -2172,7 +2172,7 @@ class Item extends BaseObject
|
||||||
public static function newURI($uid, $guid = "")
|
public static function newURI($uid, $guid = "")
|
||||||
{
|
{
|
||||||
if ($guid == "") {
|
if ($guid == "") {
|
||||||
$guid = get_guid(32);
|
$guid = System::createGUID(32);
|
||||||
}
|
}
|
||||||
|
|
||||||
$hostname = self::getApp()->get_hostname();
|
$hostname = self::getApp()->get_hostname();
|
||||||
|
@ -2496,7 +2496,7 @@ class Item extends BaseObject
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($contact['network'] != NETWORK_FEED) {
|
if ($contact['network'] != NETWORK_FEED) {
|
||||||
$datarray["guid"] = get_guid(32);
|
$datarray["guid"] = System::createGUID(32);
|
||||||
unset($datarray["plink"]);
|
unset($datarray["plink"]);
|
||||||
$datarray["uri"] = self::newURI($contact['uid'], $datarray["guid"]);
|
$datarray["uri"] = self::newURI($contact['uid'], $datarray["guid"]);
|
||||||
$datarray["parent-uri"] = $datarray["uri"];
|
$datarray["parent-uri"] = $datarray["uri"];
|
||||||
|
@ -2933,7 +2933,7 @@ class Item extends BaseObject
|
||||||
$objtype = $item['resource-id'] ? ACTIVITY_OBJ_IMAGE : ACTIVITY_OBJ_NOTE ;
|
$objtype = $item['resource-id'] ? ACTIVITY_OBJ_IMAGE : ACTIVITY_OBJ_NOTE ;
|
||||||
|
|
||||||
$new_item = [
|
$new_item = [
|
||||||
'guid' => get_guid(32),
|
'guid' => System::createGUID(32),
|
||||||
'uri' => self::newURI($item['uid']),
|
'uri' => self::newURI($item['uid']),
|
||||||
'uid' => $item['uid'],
|
'uid' => $item['uid'],
|
||||||
'contact-id' => $item_contact_id,
|
'contact-id' => $item_contact_id,
|
||||||
|
|
|
@ -47,7 +47,7 @@ class Mail
|
||||||
return -2;
|
return -2;
|
||||||
}
|
}
|
||||||
|
|
||||||
$guid = get_guid(32);
|
$guid = System::createGUID(32);
|
||||||
$uri = 'urn:X-dfrn:' . System::baseUrl() . ':' . local_user() . ':' . $guid;
|
$uri = 'urn:X-dfrn:' . System::baseUrl() . ':' . local_user() . ':' . $guid;
|
||||||
|
|
||||||
$convid = 0;
|
$convid = 0;
|
||||||
|
@ -76,7 +76,7 @@ class Mail
|
||||||
$recip_handle = (($contact['addr']) ? $contact['addr'] : $contact['nick'] . '@' . $recip_host);
|
$recip_handle = (($contact['addr']) ? $contact['addr'] : $contact['nick'] . '@' . $recip_host);
|
||||||
$sender_handle = $a->user['nickname'] . '@' . substr(System::baseUrl(), strpos(System::baseUrl(), '://') + 3);
|
$sender_handle = $a->user['nickname'] . '@' . substr(System::baseUrl(), strpos(System::baseUrl(), '://') + 3);
|
||||||
|
|
||||||
$conv_guid = get_guid(32);
|
$conv_guid = System::createGUID(32);
|
||||||
$convuri = $recip_handle . ':' . $conv_guid;
|
$convuri = $recip_handle . ':' . $conv_guid;
|
||||||
|
|
||||||
$handles = $recip_handle . ';' . $sender_handle;
|
$handles = $recip_handle . ';' . $sender_handle;
|
||||||
|
@ -174,7 +174,7 @@ class Mail
|
||||||
$subject = L10n::t('[no subject]');
|
$subject = L10n::t('[no subject]');
|
||||||
}
|
}
|
||||||
|
|
||||||
$guid = get_guid(32);
|
$guid = System::createGUID(32);
|
||||||
$uri = 'urn:X-dfrn:' . System::baseUrl() . ':' . local_user() . ':' . $guid;
|
$uri = 'urn:X-dfrn:' . System::baseUrl() . ':' . local_user() . ':' . $guid;
|
||||||
|
|
||||||
$me = Probe::uri($replyto);
|
$me = Probe::uri($replyto);
|
||||||
|
@ -183,7 +183,7 @@ class Mail
|
||||||
return -2;
|
return -2;
|
||||||
}
|
}
|
||||||
|
|
||||||
$conv_guid = get_guid(32);
|
$conv_guid = System::createGUID(32);
|
||||||
|
|
||||||
$recip_handle = $recipient['nickname'] . '@' . substr(System::baseUrl(), strpos(System::baseUrl(), '://') + 3);
|
$recip_handle = $recipient['nickname'] . '@' . substr(System::baseUrl(), strpos(System::baseUrl(), '://') + 3);
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ class Photo
|
||||||
if (DBM::is_result($photo)) {
|
if (DBM::is_result($photo)) {
|
||||||
$guid = $photo['guid'];
|
$guid = $photo['guid'];
|
||||||
} else {
|
} else {
|
||||||
$guid = get_guid();
|
$guid = System::createGUID();
|
||||||
}
|
}
|
||||||
|
|
||||||
$existing_photo = dba::selectFirst('photo', ['id'], ['resource-id' => $rid, 'uid' => $uid, 'contact-id' => $cid, 'scale' => $scale]);
|
$existing_photo = dba::selectFirst('photo', ['id'], ['resource-id' => $rid, 'uid' => $uid, 'contact-id' => $cid, 'scale' => $scale]);
|
||||||
|
@ -275,6 +275,6 @@ class Photo
|
||||||
*/
|
*/
|
||||||
public static function newResource()
|
public static function newResource()
|
||||||
{
|
{
|
||||||
return get_guid(32, false);
|
return system::createGUID(32, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3220,7 +3220,7 @@ class Diaspora
|
||||||
$author = self::myHandle($owner);
|
$author = self::myHandle($owner);
|
||||||
|
|
||||||
$message = ["author" => $author,
|
$message = ["author" => $author,
|
||||||
"guid" => get_guid(32),
|
"guid" => System::createGUID(32),
|
||||||
"parent_type" => "Post",
|
"parent_type" => "Post",
|
||||||
"parent_guid" => $item["guid"]];
|
"parent_guid" => $item["guid"]];
|
||||||
|
|
||||||
|
|
37
tests/src/Core/SystemTest.php
Normal file
37
tests/src/Core/SystemTest.php
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Friendica\Test\src\Core;
|
||||||
|
|
||||||
|
use Friendica\Core\System;
|
||||||
|
use PHPUnit\Framework\TestCase;
|
||||||
|
|
||||||
|
class SystemTest extends TestCase
|
||||||
|
{
|
||||||
|
private function assertGuid($guid, $length, $prefix = '')
|
||||||
|
{
|
||||||
|
print $guid;
|
||||||
|
$length -= strlen($prefix);
|
||||||
|
$this->assertRegExp("/^" . $prefix . "[a-z0-9]{" . $length . "}?$/", $guid);
|
||||||
|
}
|
||||||
|
|
||||||
|
function testGuidWithoutParameter()
|
||||||
|
{
|
||||||
|
$guid = System::createGUID();
|
||||||
|
$this->assertGuid($guid, 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
function testGuidWithSize32() {
|
||||||
|
$guid = System::createGUID(32);
|
||||||
|
$this->assertGuid($guid, 32);
|
||||||
|
}
|
||||||
|
|
||||||
|
function testGuidWithSize64() {
|
||||||
|
$guid = System::createGUID(64);
|
||||||
|
$this->assertGuid($guid, 64);
|
||||||
|
}
|
||||||
|
|
||||||
|
function testGuidWithPrefix() {
|
||||||
|
$guid = System::createGUID(23, 'test');
|
||||||
|
$this->assertGuid($guid, 23, 'test');
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue