use Friendica\App;
use Friendica\BaseModule;
+use Friendica\BaseObject;
use Friendica\Content\Feature;
use Friendica\Content\Nav;
use Friendica\Core\ACL;
use Friendica\Model\User;
use Friendica\Module\Login;
use Friendica\Protocol\Email;
+use Friendica\Util\ACLFormatter;
use Friendica\Util\Network;
use Friendica\Util\Strings;
use Friendica\Util\Temporal;
$theme = Strings::sanitizeFilePathItem($theme);
$a = \get_app();
- $base_theme = defaults($a->theme_info, 'extends');
+ $base_theme = $a->theme_info['extends'] ?? '';
if (file_exists("view/theme/$theme/config.php")) {
return "view/theme/$theme/config.php";
$tabs[] = [
'label' => L10n::t('Export personal data'),
- 'url' => 'uexport',
- 'selected' => (($a->argc == 1) && ($a->argv[0] === 'uexport')?'active':''),
+ 'url' => 'settings/userexport',
+ 'selected' => (($a->argc > 1) && ($a->argv[1] === 'userexport')?'active':''),
'accesskey' => 'e',
];
if (($a->argc > 2) && ($a->argv[1] === 'oauth') && ($a->argv[2] === 'edit'||($a->argv[2] === 'add')) && !empty($_POST['submit'])) {
BaseModule::checkFormSecurityTokenRedirectOnError('/settings/oauth', 'settings_oauth');
- $name = defaults($_POST, 'name' , '');
- $key = defaults($_POST, 'key' , '');
- $secret = defaults($_POST, 'secret' , '');
- $redirect = defaults($_POST, 'redirect', '');
- $icon = defaults($_POST, 'icon' , '');
+ $name = $_POST['name'] ?? '';
+ $key = $_POST['key'] ?? '';
+ $secret = $_POST['secret'] ?? '';
+ $redirect = $_POST['redirect'] ?? '';
+ $icon = $_POST['icon'] ?? '';
if ($name == "" || $key == "" || $secret == "") {
notice(L10n::t("Missing some important data!"));
PConfig::set(local_user(), 'ostatus', 'default_group', $_POST['group-selection']);
PConfig::set(local_user(), 'ostatus', 'legacy_contact', $_POST['legacy_contact']);
} elseif (!empty($_POST['imap-submit'])) {
-
- $mail_server = defaults($_POST, 'mail_server', '');
- $mail_port = defaults($_POST, 'mail_port', '');
- $mail_ssl = (!empty($_POST['mail_ssl']) ? strtolower(trim($_POST['mail_ssl'])) : '');
- $mail_user = defaults($_POST, 'mail_user', '');
- $mail_pass = (!empty($_POST['mail_pass']) ? trim($_POST['mail_pass']) : '');
- $mail_action = (!empty($_POST['mail_action']) ? trim($_POST['mail_action']) : '');
- $mail_movetofolder = (!empty($_POST['mail_movetofolder']) ? trim($_POST['mail_movetofolder']) : '');
- $mail_replyto = defaults($_POST, 'mail_replyto', '');
- $mail_pubmail = defaults($_POST, 'mail_pubmail', '');
-
-
- $mail_disabled = ((function_exists('imap_open') && (!Config::get('system', 'imap_disabled'))) ? 0 : 1);
- if (Config::get('system', 'dfrn_only')) {
- $mail_disabled = 1;
- }
-
- if (!$mail_disabled) {
+ $mail_server = $_POST['mail_server'] ?? '';
+ $mail_port = $_POST['mail_port'] ?? '';
+ $mail_ssl = strtolower(trim($_POST['mail_ssl'] ?? ''));
+ $mail_user = $_POST['mail_user'] ?? '';
+ $mail_pass = trim($_POST['mail_pass'] ?? '');
+ $mail_action = trim($_POST['mail_action'] ?? '');
+ $mail_movetofolder = trim($_POST['mail_movetofolder'] ?? '');
+ $mail_replyto = $_POST['mail_replyto'] ?? '';
+ $mail_pubmail = $_POST['mail_pubmail'] ?? '';
+
+ if (
+ !Config::get('system', 'dfrn_only')
+ && function_exists('imap_open')
+ && !Config::get('system', 'imap_disabled')
+ ) {
$failed = false;
$r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1",
intval(local_user())
$language = (!empty($_POST['language']) ? Strings::escapeTags(trim($_POST['language'])) : '');
$defloc = (!empty($_POST['defloc']) ? Strings::escapeTags(trim($_POST['defloc'])) : '');
- $openid = (!empty($_POST['openid_url']) ? Strings::escapeTags(trim($_POST['openid_url'])) : '');
$maxreq = (!empty($_POST['maxreq']) ? intval($_POST['maxreq']) : 0);
$expire = (!empty($_POST['expire']) ? intval($_POST['expire']) : 0);
$def_gid = (!empty($_POST['group-selection']) ? intval($_POST['group-selection']) : 0);
$expire_photos = (!empty($_POST['expire_photos'])? intval($_POST['expire_photos']) : 0);
$expire_network_only = (!empty($_POST['expire_network_only'])? intval($_POST['expire_network_only']) : 0);
+ $delete_openid = ((!empty($_POST['delete_openid']) && (intval($_POST['delete_openid']) == 1)) ? 1: 0);
+
$allow_location = ((!empty($_POST['allow_location']) && (intval($_POST['allow_location']) == 1)) ? 1: 0);
$publish = ((!empty($_POST['profile_in_directory']) && (intval($_POST['profile_in_directory']) == 1)) ? 1: 0);
$net_publish = ((!empty($_POST['profile_in_netdirectory']) && (intval($_POST['profile_in_netdirectory']) == 1)) ? 1: 0);
date_default_timezone_set($timezone);
}
- $str_group_allow = !empty($_POST['group_allow']) ? perms2str($_POST['group_allow']) : '';
- $str_contact_allow = !empty($_POST['contact_allow']) ? perms2str($_POST['contact_allow']) : '';
- $str_group_deny = !empty($_POST['group_deny']) ? perms2str($_POST['group_deny']) : '';
- $str_contact_deny = !empty($_POST['contact_deny']) ? perms2str($_POST['contact_deny']) : '';
-
- $openidserver = $a->user['openidserver'];
- //$openid = Strings::normaliseOpenID($openid);
-
- // If openid has changed or if there's an openid but no openidserver, try and discover it.
- if ($openid != $a->user['openid'] || (strlen($openid) && (!strlen($openidserver)))) {
- if (Network::isUrlValid($openid)) {
- Logger::log('updating openidserver');
- $open_id_obj = new LightOpenID($a->getHostName());
- $open_id_obj->identity = $openid;
- $openidserver = $open_id_obj->discover($open_id_obj->identity);
- } else {
- $openidserver = '';
- }
- }
+ /** @var ACLFormatter $aclFormatter */
+ $aclFormatter = BaseObject::getClass(ACLFormatter::class);
+
+ $str_group_allow = !empty($_POST['group_allow']) ? $aclFormatter->toString($_POST['group_allow']) : '';
+ $str_contact_allow = !empty($_POST['contact_allow']) ? $aclFormatter->toString($_POST['contact_allow']) : '';
+ $str_group_deny = !empty($_POST['group_deny']) ? $aclFormatter->toString($_POST['group_deny']) : '';
+ $str_contact_deny = !empty($_POST['contact_deny']) ? $aclFormatter->toString($_POST['contact_deny']) : '';
PConfig::set(local_user(), 'expire', 'items', $expire_items);
PConfig::set(local_user(), 'expire', 'notes', $expire_notes);
}
}
+ $fields = ['username' => $username, 'email' => $email, 'timezone' => $timezone,
+ 'allow_cid' => $str_contact_allow, 'allow_gid' => $str_group_allow, 'deny_cid' => $str_contact_deny, 'deny_gid' => $str_group_deny,
+ 'notify-flags' => $notify, 'page-flags' => $notify, 'account-type' => $account_type, 'default-location' => $defloc,
+ 'allow_location' => $allow_location, 'maxreq' => $maxreq, 'expire' => $expire, 'def_gid' => $def_gid, 'blockwall' => $blockwall,
+ 'hidewall' => $hide_wall, 'blocktags' => $blocktags, 'unkmail' => $unkmail, 'cntunkmail' => $cntunkmail, 'language' => $language];
- $r = q("UPDATE `user` SET `username` = '%s', `email` = '%s',
- `openid` = '%s', `timezone` = '%s',
- `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s',
- `notify-flags` = %d, `page-flags` = %d, `account-type` = %d, `default-location` = '%s',
- `allow_location` = %d, `maxreq` = %d, `expire` = %d, `openidserver` = '%s',
- `def_gid` = %d, `blockwall` = %d, `hidewall` = %d, `blocktags` = %d,
- `unkmail` = %d, `cntunkmail` = %d, `language` = '%s'
- WHERE `uid` = %d",
- DBA::escape($username),
- DBA::escape($email),
- DBA::escape($openid),
- DBA::escape($timezone),
- DBA::escape($str_contact_allow),
- DBA::escape($str_group_allow),
- DBA::escape($str_contact_deny),
- DBA::escape($str_group_deny),
- intval($notify),
- intval($page_flags),
- intval($account_type),
- DBA::escape($defloc),
- intval($allow_location),
- intval($maxreq),
- intval($expire),
- DBA::escape($openidserver),
- intval($def_gid),
- intval($blockwall),
- intval($hidewall),
- intval($blocktags),
- intval($unkmail),
- intval($cntunkmail),
- DBA::escape($language),
- intval(local_user())
- );
- if (DBA::isResult($r)) {
+ if ($delete_openid) {
+ $fields['openid'] = '';
+ $fields['openidserver'] = '';
+ }
+
+ if (DBA::update('user', $fields, ['uid' => local_user()])) {
info(L10n::t('Settings updated.') . EOL);
}
if ($noid) {
$openid_field = false;
} else {
- $openid_field = ['openid_url', L10n::t('OpenID:'), $openid, L10n::t("\x28Optional\x29 Allow this OpenID to login to this account."), "", "", "url"];
+ $openid_field = ['openid_url', L10n::t('OpenID:'), $openid, L10n::t("\x28Optional\x29 Allow this OpenID to login to this account."), "", "readonly", "url"];
}
$opt_tpl = Renderer::getMarkupTemplate("field_yesno.tpl");
'$password4'=> ['mpassword', L10n::t('Password:'), '', L10n::t('Your current password to confirm the changes')],
'$oid_enable' => (!Config::get('system', 'no_openid')),
'$openid' => $openid_field,
+ '$delete_openid' => ['delete_openid', L10n::t('Delete OpenID URL'), false, ''],
'$h_basic' => L10n::t('Basic Settings'),
'$username' => ['username', L10n::t('Full Name:'), $username, ''],
'/ignored' => [Module\Contact::class, [R::GET]],
],
'/credits' => [Module\Credits::class, [R::GET]],
+ '/delegation'=> [Module\Delegation::class, [R::GET, R::POST]],
'/dirfind' => [Module\Search\Directory::class, [R::GET]],
'/directory' => [Module\Directory::class, [R::GET]],
'/{group:\d+}/add/{contact:\d+}' => [Module\Group::class, [R::GET, R::POST]],
'/{group:\d+}/remove/{contact:\d+}' => [Module\Group::class, [R::GET, R::POST]],
],
- '/hashtag' => [Module\Hashtag::class, [R::GET]],
- '/home' => [Module\Home::class, [R::GET]],
- '/help[/{doc:.+}]' => [Module\Help::class, [R::GET]],
- '/inbox[/{nickname}]' => [Module\Inbox::class, [R::GET, R::POST]],
- '/invite' => [Module\Invite::class, [R::GET, R::POST]],
+ '/hashtag' => [Module\Hashtag::class, [R::GET]],
+ '/home' => [Module\Home::class, [R::GET]],
+ '/help[/{doc:.+}]' => [Module\Help::class, [R::GET]],
+ '/inbox[/{nickname}]' => [Module\Inbox::class, [R::GET, R::POST]],
+ '/invite' => [Module\Invite::class, [R::GET, R::POST]],
'/install' => [
'[/]' => [Module\Install::class, [R::GET, R::POST]],
'/testrewrite' => [Module\Install::class, [R::GET]],
],
+
+ '/item' => [
+ '/ignore/{id}' => [Module\Item\Ignore::class, [R::GET]],
+ ],
+
'/like/{item:\d+}' => [Module\Like::class, [R::GET]],
'/localtime' => [Module\Debug\Localtime::class, [R::GET, R::POST]],
'/login' => [Module\Login::class, [R::GET, R::POST]],
'/search' => [
'[/]' => [Module\Search\Index::class, [R::GET]],
'/acl' => [Module\Search\Acl::class, [R::GET, R::POST]],
- '/saved/add/{term}' => [Module\Search\Saved::class, [R::GET]],
- '/saved/remove/{term}' => [Module\Search\Saved::class, [R::GET]],
+ '/saved/add' => [Module\Search\Saved::class, [R::GET]],
+ '/saved/remove' => [Module\Search\Saved::class, [R::GET]],
+ ],
+
+ '/receive' => [
+ '/public' => [Module\Diaspora\Receive::class, [R::POST]],
+ '/users/{guid}' => [Module\Diaspora\Receive::class, [R::POST]],
],
'/settings' => [
'/verify' => [Module\Settings\TwoFactor\Verify::class, [R::GET, R::POST]],
],
'/delegation[/{action}/{user_id}]' => [Module\Settings\Delegation::class, [R::GET, R::POST]],
+ '/userexport[/{action}]' => [Module\Settings\UserExport::class, [R::GET, R::POST]],
],
'/randprof' => [Module\RandomProfile::class, [R::GET]],