Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b87ca197 authored by Nathan Kinkade's avatar Nathan Kinkade Committed by Nathan Kinkade
Browse files

Changes to make Rainloop compatible with NC14, as well as bringing it slightly...

Changes to make Rainloop compatible with NC14, as well as bringing it slightly more into the present by using the App Framework (to the extent possible).
parent 0a6a5d9f
Loading
Loading
Loading
Loading

rainloop/admin.php

deleted100755 → 0
+0 −19
Original line number Diff line number Diff line
<?php

/**
 * Nextcloud - RainLoop mail plugin
 *
 * @author RainLoop Team, Nextgen-Networks (@nextgen-networks), Tab Fitts (@tabp0le), Pierre-Alain Bandinelli (@pierre-alain-b)
 *
 * Based initially on https://github.com/RainLoop/rainloop-webmail/tree/master/build/owncloud
 */

OCP\User::checkAdminUser();

OCP\Util::addScript('rainloop', 'admin');

$oTemplate = new OCP\Template('rainloop', 'admin-local');
$oTemplate->assign('rainloop-admin-panel-link', OC_RainLoop_Helper::getAppUrl().'?admin');
$oTemplate->assign('rainloop-autologin', \OC::$server->getConfig()->getAppValue('rainloop', 'rainloop-autologin', false));
$oTemplate->assign('rainloop-autologin-with-email', \OC::$server->getConfig()->getAppValue('rainloop', 'rainloop-autologin-with-email', false));
return $oTemplate->fetchPage();

rainloop/ajax/admin.php

deleted100755 → 0
+0 −37
Original line number Diff line number Diff line
<?php

/**
 * Nextcloud - RainLoop mail plugin
 *
 * @author RainLoop Team, Nextgen-Networks (@nextgen-networks), Tab Fitts (@tabp0le), Pierre-Alain Bandinelli (@pierre-alain-b)
 *
 * Based initially on https://github.com/RainLoop/rainloop-webmail/tree/master/build/owncloud
 */

\OC_JSON::checkAdminUser();
\OC_JSON::checkAppEnabled('rainloop');
\OC_JSON::callCheck();

$sUrl = '';
$sPath = '';
$bAutologin = false;

if (isset($_POST['appname']) &&	'rainloop' === $_POST['appname'])
{
	\OC::$server->getConfig()->setAppValue('rainloop', 'rainloop-autologin', isset($_POST['rainloop-autologin']) ?
		'1' === $_POST['rainloop-autologin'] : false);
	\OC::$server->getConfig()->setAppValue('rainloop', 'rainloop-autologin-with-email', isset($_POST['rainloop-autologin']) ?
		'2' === $_POST['rainloop-autologin'] : false);

	$bAutologin = \OC::$server->getConfig()->getAppValue('rainloop', 'rainloop-autologin', false);
}
else
{
	sleep(1);
	OC_JSON::error(array('Message' => 'Invalid Argument(s)'));
	return false;
}

sleep(1);
\OC_JSON::success(array('Message' => 'Saved successfully'));
return true;

rainloop/ajax/personal.php

deleted100755 → 0
+0 −46
Original line number Diff line number Diff line
<?php

/**
 * Nextcloud - RainLoop mail plugin
 *
 * @author RainLoop Team, Nextgen-Networks (@nextgen-networks), Tab Fitts (@tabp0le), Pierre-Alain Bandinelli (@pierre-alain-b)
 *
 * Based initially on https://github.com/RainLoop/rainloop-webmail/tree/master/build/owncloud
 */

\OC_JSON::checkLoggedIn();
\OC_JSON::checkAppEnabled('rainloop');
\OC_JSON::callCheck();

$sEmail = '';
$sLogin = '';

if (isset($_POST['appname'], $_POST['rainloop-password'], $_POST['rainloop-email']) && 'rainloop' === $_POST['appname'])
{
	$sUser = OCP\User::getUser();

	$sPostEmail = $_POST['rainloop-email'];

	\OC::$server->getConfig()->setUserValue($sUser, 'rainloop', 'rainloop-email', $sPostEmail);

	$sPass = $_POST['rainloop-password'];
	if ('******' !== $sPass && '' !== $sPass)
	{
		include_once OC_App::getAppPath('rainloop').'/lib/RainLoopHelper.php';

		\OC::$server->getConfig()->setUserValue($sUser, 'rainloop', 'rainloop-password',
			OC_RainLoop_Helper::encodePassword($sPass, md5($sPostEmail)));
	}

	$sEmail = \OC::$server->getConfig()->getUserValue($sUser, 'rainloop', 'rainloop-email', '');
}
else
{
	sleep(1);
	OC_JSON::error(array('Message' => 'Invalid argument(s)', 'Email' => $sEmail));
	return false;
}

sleep(1);
\OC_JSON::success(array('Message' => 'Saved successfully', 'Email' => $sEmail));
return true;

rainloop/app.php

deleted100755 → 0
+0 −68
Original line number Diff line number Diff line
<?php

/**
 * Nextcloud - RainLoop mail plugin
 *
 * @author RainLoop Team, Nextgen-Networks (@nextgen-networks), Tab Fitts (@tabp0le), Pierre-Alain Bandinelli (@pierre-alain-b)
 *
 * Based initially on https://github.com/RainLoop/rainloop-webmail/tree/master/build/owncloud
 */

OCP\User::checkLoggedIn();

// code copied from nextcloud /lib/private/legacy/response.php
// fixes object-src: 'none' which blocks chrome from preview pdf
$policy = 'default-src \'self\'; '
           . 'script-src \'self\' \'unsafe-eval\' \'nonce-'.\OC::$server->getContentSecurityPolicyNonceManager()->getNonce().'\'; '
           . 'style-src \'self\' \'unsafe-inline\'; '
           . 'frame-src *; '
           . 'img-src * data: blob:; '
           . 'font-src \'self\' data:; '
           . 'media-src *; '
           . 'connect-src *; '
           . 'object-src \'self\'; '
           . 'base-uri \'self\'; ';
header('Content-Security-Policy:' . $policy);

if (@file_exists(__DIR__.'/app/index.php'))
{
	include_once OC_App::getAppPath('rainloop').'/lib/RainLoopHelper.php';

	OC_RainLoop_Helper::regRainLoopDataFunction();

	if (isset($_GET['OwnCloudAuth']))
	{
		$sEmail = '';
		$sEncodedPassword = '';

		$sUser = OCP\User::getUser();
		$sPasswordSalt = '';

		if (\OC::$server->getConfig()->getAppValue('rainloop', 'rainloop-autologin', false))
		{
			$sEmail = $sUser;
			$sPasswordSalt = $sUser;
			$sEncodedPassword = \OC::$server->getConfig()->getUserValue($sUser, 'rainloop', 'rainloop-autologin-password', '');
		}
		else if (\OC::$server->getConfig()->getAppValue('rainloop', 'rainloop-autologin-with-email', false))
		{
			$sEmail = \OC::$server->getConfig()->getUserValue($sUser, 'settings', 'email','');
			$sPasswordSalt = $sUser;
			$sEncodedPassword = \OC::$server->getConfig()->getUserValue($sUser, 'rainloop', 'rainloop-autologin-password', '');
		}
		$sIndividualEmail = \OC::$server->getConfig()->getUserValue($sUser, 'rainloop', 'rainloop-email', '');
		if (!empty($sIndividualEmail))
		{
			$sEmail = $sIndividualEmail;
			$sPasswordSalt = $sEmail;
			$sEncodedPassword = \OC::$server->getConfig()->getUserValue($sUser, 'rainloop', 'rainloop-password', '');
		}

		$sDecodedPassword = OC_RainLoop_Helper::decodePassword($sEncodedPassword, md5($sPasswordSalt));

		$_ENV['___rainloop_owncloud_email'] = $sEmail;
		$_ENV['___rainloop_owncloud_password'] = $sDecodedPassword;
	}

	include __DIR__.'/app/index.php';
}
+0 −4
Original line number Diff line number Diff line
@@ -40,10 +40,6 @@ class OwnCloudSuggestions implements \RainLoop\Providers\Suggestions\ISuggestion

				$aSearchResult = $cm->search($sQuery, $aParams);
			}
			else if (\class_exists('OCP\Contacts') && \OCP\Contacts::isEnabled())
			{
				$aSearchResult = \OCP\Contacts::search($sQuery, $aParams);
			}
			else
			{
				return $aResult;
Loading