]> git.mxchange.org Git - friendica.git/blobdiff - mod/settings.php
Merge pull request #10237 from annando/oauth-flow
[friendica.git] / mod / settings.php
index c11ac37e3a1fedc5b94eb1e00abb9abcc2cb59a8..3a3f0b65dccf974004433a96c4a0dff60a1e1555 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2021, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -229,7 +229,7 @@ function settings_post(App $a)
                                notice(DI::l10n()->t('Contact CSV file upload error'));
                        } else {
                                $csvArray = array_map('str_getcsv', file($_FILES['importcontact-filename']['tmp_name']));
-                               Logger::info('Import started', ['lines' => count($csvArray)]);
+                               Logger::notice('Import started', ['lines' => count($csvArray)]);
                                // import contacts
                                foreach ($csvArray as $csvRow) {
                                        // The 1st row may, or may not contain the headers of the table
@@ -237,18 +237,20 @@ function settings_post(App $a)
                                        // or the handle of the account, therefore we check for either
                                        // "http" or "@" to be present in the string.
                                        // All other fields from the row will be ignored
-                                       if ((strpos($csvRow[0],'@') !== false) || (strpos($csvRow[0],'http') !== false)) {
+                                       if ((strpos($csvRow[0],'@') !== false) || in_array(parse_url($csvRow[0], PHP_URL_SCHEME), ['http', 'https'])) {
                                                Worker::add(PRIORITY_LOW, 'AddContact', $_SESSION['uid'], $csvRow[0]);
+                                       } else {
+                                               Logger::notice('Invalid account', ['url' => $csvRow[0]]);
                                        }
                                }
-                               Logger::info('Import done');
+                               Logger::notice('Import done');
 
                                info(DI::l10n()->t('Importing Contacts done'));
                                // delete temp file
                                unlink($_FILES['importcontact-filename']['tmp_name']);
                        }
                } else {
-                       Logger::info('Import triggered, but no import file was found.');
+                       Logger::notice('Import triggered, but no import file was found.');
                }
 
                return;
@@ -498,77 +500,26 @@ function settings_content(App $a)
        }
 
        if (($a->argc > 1) && ($a->argv[1] === 'oauth')) {
-               if (($a->argc > 2) && ($a->argv[2] === 'add')) {
-                       $tpl = Renderer::getMarkupTemplate('settings/oauth_edit.tpl');
-                       $o .= Renderer::replaceMacros($tpl, [
-                               '$form_security_token' => BaseModule::getFormSecurityToken("settings_oauth"),
-                               '$title'        => DI::l10n()->t('Add application'),
-                               '$submit'       => DI::l10n()->t('Save Settings'),
-                               '$cancel'       => DI::l10n()->t('Cancel'),
-                               '$name'         => ['name', DI::l10n()->t('Name'), '', ''],
-                               '$key'          => ['key', DI::l10n()->t('Consumer Key'), '', ''],
-                               '$secret'       => ['secret', DI::l10n()->t('Consumer Secret'), '', ''],
-                               '$redirect'     => ['redirect', DI::l10n()->t('Redirect'), '', ''],
-                               '$icon'         => ['icon', DI::l10n()->t('Icon url'), '', ''],
-                       ]);
-                       return $o;
-               }
-
-               if (($a->argc > 3) && ($a->argv[2] === 'edit')) {
-                       $r = q("SELECT * FROM clients WHERE client_id='%s' AND uid=%d",
-                                       DBA::escape($a->argv[3]),
-                                       local_user());
-
-                       if (!DBA::isResult($r)) {
-                               notice(DI::l10n()->t("You can't edit this application."));
-                               return;
-                       }
-                       $app = $r[0];
-
-                       $tpl = Renderer::getMarkupTemplate('settings/oauth_edit.tpl');
-                       $o .= Renderer::replaceMacros($tpl, [
-                               '$form_security_token' => BaseModule::getFormSecurityToken("settings_oauth"),
-                               '$title'        => DI::l10n()->t('Add application'),
-                               '$submit'       => DI::l10n()->t('Update'),
-                               '$cancel'       => DI::l10n()->t('Cancel'),
-                               '$name'         => ['name', DI::l10n()->t('Name'), $app['name'] , ''],
-                               '$key'          => ['key', DI::l10n()->t('Consumer Key'), $app['client_id'], ''],
-                               '$secret'       => ['secret', DI::l10n()->t('Consumer Secret'), $app['pw'], ''],
-                               '$redirect'     => ['redirect', DI::l10n()->t('Redirect'), $app['redirect_uri'], ''],
-                               '$icon'         => ['icon', DI::l10n()->t('Icon url'), $app['icon'], ''],
-                       ]);
-                       return $o;
-               }
-
                if (($a->argc > 3) && ($a->argv[2] === 'delete')) {
                        BaseModule::checkFormSecurityTokenRedirectOnError('/settings/oauth', 'settings_oauth', 't');
 
-                       DBA::delete('clients', ['client_id' => $a->argv[3], 'uid' => local_user()]);
+                       DBA::delete('application-token', ['application-id' => $a->argv[3], 'uid' => local_user()]);
                        DI::baseUrl()->redirect('settings/oauth/', true);
                        return;
                }
 
-               /// @TODO validate result with DBA::isResult()
-               $r = q("SELECT clients.*, tokens.id as oauth_token, (clients.uid=%d) AS my
-                               FROM clients
-                               LEFT JOIN tokens ON clients.client_id=tokens.client_id
-                               WHERE clients.uid IN (%d, 0)",
-                               local_user(),
-                               local_user());
-
+               $applications = DBA::selectToArray('application-view', ['id', 'uid', 'name', 'website', 'scopes', 'created_at'], ['uid' => local_user()]);
 
                $tpl = Renderer::getMarkupTemplate('settings/oauth.tpl');
                $o .= Renderer::replaceMacros($tpl, [
                        '$form_security_token' => BaseModule::getFormSecurityToken("settings_oauth"),
-                       '$baseurl'      => DI::baseUrl()->get(true),
-                       '$title'        => DI::l10n()->t('Connected Apps'),
-                       '$add'          => DI::l10n()->t('Add application'),
-                       '$edit'         => DI::l10n()->t('Edit'),
-                       '$delete'               => DI::l10n()->t('Delete'),
-                       '$consumerkey' => DI::l10n()->t('Client key starts with'),
-                       '$noname'       => DI::l10n()->t('No name'),
-                       '$remove'       => DI::l10n()->t('Remove authorization'),
-                       '$apps'         => $r,
+                       '$baseurl'             => DI::baseUrl()->get(true),
+                       '$title'               => DI::l10n()->t('Connected Apps'),
+                       '$name'                => DI::l10n()->t('Name'),
+                       '$website'             => DI::l10n()->t('Home Page'),
+                       '$created_at'          => DI::l10n()->t('Created'),
+                       '$delete'              => DI::l10n()->t('Remove authorization'),
+                       '$apps'                => $applications,
                ]);
                return $o;
        }