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

Commit 867fcb5c authored by Pierre-Alain Bandinelli's avatar Pierre-Alain Bandinelli
Browse files

Revert "Merge pull request #76 from nkinkade/appframework-nc14"

This reverts commit 316bc928, reversing
changes made to 24f84935.
parent 1509113c
Loading
Loading
Loading
Loading

rainloop/admin.php

0 → 100755
+19 −0
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();
+37 −0
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;
+46 −0
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

0 → 100755
+68 −0
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';
}
+6 −6
Original line number Diff line number Diff line
@@ -540,7 +540,7 @@ class Utils
	 */
	public static function IsOwnCloudLoggedIn()
	{
		return self::IsOwnCloud() && \OC::$server->getUserSession()->isLoggedIn();
		return self::IsOwnCloud() && \class_exists('OCP\User') && \OCP\User::isLoggedIn();
	}

	/**
@@ -562,10 +562,10 @@ class Utils
		$sAppPath = '';
		if (\RainLoop\Utils::IsOwnCloud())
		{
			$sAppPath = \OC::$server->getURLGenerator()->linkToRoute('rainloop.page.appGet');
			// TODO: Fix this ugly hack. Is there a "modern" way to return
			// a URL that doesn't include index.php, which breaks things?
			$sAppPath = preg_replace('index\.php\/', '', $sAppPath);
			if (\class_exists('OC_App'))
			{
				$sAppPath = \rtrim(\trim(\OC_App::getAppWebPath('rainloop')), '\\/').'/app/';
			}

			if (empty($sAppPath))
			{
Loading