ownCloud integration improvements

This commit is contained in:
RainLoop Team 2015-02-12 04:48:11 +04:00
parent c0d016293d
commit d30292d500
9 changed files with 170 additions and 59 deletions

View file

@ -6,5 +6,29 @@ if (@file_exists(__DIR__.'/app/index.php'))
OC_RainLoop_Helper::regRainLoopDataFunction();
if (isset($_GET['OwnCloudAuth']))
{
$sEmail = '';
$sEncodedPassword = '';
$sUser = OCP\User::getUser();
if ($bAutologin)
{
$sEmail = $sUser;
$sEncodedPassword = OCP\Config::getUserValue($sUser, 'rainloop', 'rainloop-autologin-password', '');
}
else
{
$sEmail = OCP\Config::getUserValue($sUser, 'rainloop', 'rainloop-email', '');
$sEncodedPassword = OCP\Config::getUserValue($sUser, 'rainloop', 'rainloop-password', '');
}
$sDecodedPassword = OC_RainLoop_Helper::decodePassword($sEncodedPassword, md5($sEmail));
$_ENV['___rainloop_owncloud_email'] = $sEmail;
$_ENV['___rainloop_owncloud_password'] = $sDecodedPassword;
}
include __DIR__.'/app/index.php';
}

View file

@ -2,12 +2,12 @@
<info>
<id>rainloop</id>
<name>RainLoop</name>
<description>Simple, modern & fast web-based email client.
Modest system requirements, decent performance, simple installation and upgrade, no database required -
all these make RainLoop Webmail a perfect choice for your email solution.</description>
<description>Simple, modern and fast web-based email client.</description>
<version>0.0</version>
<licence>CC BY-NC-SA 3.0</licence>
<author>RainLoop Team</author>
<require>6.0</require>
<dependencies>
<php min-version="5.3"/>
</dependencies>
</info>

View file

@ -38,25 +38,32 @@ if ('' === $sUrl || '' === $sPath)
}
else
{
$sUser = OCP\User::getUser();
if ($bAutologin)
$sUrl = OC_RainLoop_Helper::normalizeUrl($sUrl);
if ($bInstalledLocaly)
{
$sEmail = $sUser;
$sEncodedPassword = OCP\Config::getUserValue($sUser, 'rainloop', 'rainloop-autologin-password', '');
$sResultUrl = $sUrl.'?OwnCloudAuth';
}
else
{
$sEmail = OCP\Config::getUserValue($sUser, 'rainloop', 'rainloop-email', '');
$sEncodedPassword = OCP\Config::getUserValue($sUser, 'rainloop', 'rainloop-password', '');
$sUser = OCP\User::getUser();
if ($bAutologin)
{
$sEmail = $sUser;
$sEncodedPassword = OCP\Config::getUserValue($sUser, 'rainloop', 'rainloop-autologin-password', '');
}
else
{
$sEmail = OCP\Config::getUserValue($sUser, 'rainloop', 'rainloop-email', '');
$sEncodedPassword = OCP\Config::getUserValue($sUser, 'rainloop', 'rainloop-password', '');
}
$sDecodedPassword = OC_RainLoop_Helper::decodePassword($sEncodedPassword, md5($sEmail));
$sSsoHash = OC_RainLoop_Helper::getSsoHash($sPath, $sEmail, $sDecodedPassword);
$sResultUrl = empty($sSsoHash) ? $sUrl.'?sso' : $sUrl.'?sso&hash='.$sSsoHash;
}
$sDecodedPassword = OC_RainLoop_Helper::decodePassword($sEncodedPassword, md5($sEmail));
$sSsoHash = OC_RainLoop_Helper::getSsoHash($sPath, $sEmail, $sDecodedPassword);
$sUrl = OC_RainLoop_Helper::normalizeUrl($sUrl);
$sResultUrl = empty($sSsoHash) ? $sUrl.'?sso' : $sUrl.'?sso&hash='.$sSsoHash;
$oTemplate = new OCP\Template('rainloop', 'index', 'user');
$oTemplate->assign('rainloop-url', $sResultUrl);
}

View file

@ -7,6 +7,15 @@ class OC_RainLoop_Helper
*/
public static function getAppUrl()
{
if (class_exists('\\OC\\URLGenerator') && isset(\OC::$server))
{
$oUrlGenerator = new \OC\URLGenerator(\OC::$server->getConfig());
if ($oUrlGenerator)
{
return $oUrlGenerator->linkToRoute('rainloop_app');
}
}
$sRequestUri = empty($_SERVER['REQUEST_URI']) ? '': trim($_SERVER['REQUEST_URI']);
$sRequestUri = preg_replace('/index.php\/.+$/', 'index.php/', $sRequestUri);
$sRequestUri = $sRequestUri.'apps/rainloop/app/';