Skip to content

Commit 3246b2c

Browse files
committed
Change license to AGPL
1 parent 86bb1d0 commit 3246b2c

File tree

6 files changed

+722
-40
lines changed

6 files changed

+722
-40
lines changed

LICENSE

+653-17
Large diffs are not rendered by default.

README.md

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
RainLoop Webmail
22
==================
33

4-
[![Join the chat at https://gitter.im/RainLoop/rainloop-webmail](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/RainLoop/rainloop-webmail?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
5-
64
Simple, modern & fast web-based email client.
75

86
Modest system requirements, decent performance, simple installation and upgrade, no database required - all these make RainLoop Webmail a perfect choice for your email solution.
@@ -18,7 +16,8 @@ It's not recommended to use in production environment.
1816

1917
## License
2018

21-
**Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0)**
22-
http://creativecommons.org/licenses/by-nc-sa/3.0/
19+
RainLoop Webmail (**Community edition**) is released under
20+
**GNU AFFERO GENERAL PUBLIC LICENSE Version 3 (AGPL)**.
21+
http://www.gnu.org/licenses/agpl-3.0.html
2322

2423
Copyright (c) 2015 Rainloop Team

dev/Model/Folder.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@
285285
});
286286

287287
this.hasUnreadMessages = ko.computed(function () {
288-
return 0 < this.messageCountUnread();
288+
return 0 < this.messageCountUnread() && '' !== this.printableUnreadCount();
289289
}, this);
290290

291291
this.hasSubScribedUnreadMessagesSubfolders = ko.computed(function () {

gulpfile.js

+43-11
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1-
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
1+
/* RainLoop Webmail (c) RainLoop Team | Licensed under AGPL 3 */
22
'use strict';
33

44
var
55
pkg = require('./package.json'),
6+
head = {
7+
cc: '/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */',
8+
agpl: '/* RainLoop Webmail (c) RainLoop Team | Licensed under AGPL 3 */'
9+
},
610
cfg = {
711
devVersion: '0.0.0',
812
releasesPath: 'build/dist/releases',
@@ -40,6 +44,11 @@ var
4044
gutil = require('gulp-util')
4145
;
4246

47+
function getHead()
48+
{
49+
return !cfg.community ? head.cc : head.agpl;
50+
}
51+
4352
function regOtherMinTask(sName, sPath, sInc, sOut, sHeader)
4453
{
4554
gulp.task(sName, function() {
@@ -330,23 +339,23 @@ gulp.task('js:webpack', ['js:webpack:clear'], function(callback) {
330339

331340
gulp.task('js:app', ['js:webpack'], function() {
332341
return gulp.src(cfg.paths.staticJS + cfg.paths.js.app.name)
333-
.pipe(header('/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */\n'))
342+
.pipe(header(getHead() + '\n'))
334343
.pipe(eol('\n', true))
335344
.pipe(gulp.dest(cfg.paths.staticJS))
336345
.on('error', gutil.log);
337346
});
338347

339348
gulp.task('js:admin', ['js:webpack'], function() {
340349
return gulp.src(cfg.paths.staticJS + cfg.paths.js.admin.name)
341-
.pipe(header('/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */\n'))
350+
.pipe(header(getHead() + '\n'))
342351
.pipe(eol('\n', true))
343352
.pipe(gulp.dest(cfg.paths.staticJS))
344353
.on('error', gutil.log);
345354
});
346355

347356
gulp.task('js:chunks', ['js:webpack'], function() {
348357
return gulp.src(cfg.paths.staticJS + '*.subapp.js')
349-
.pipe(header('/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */\n'))
358+
.pipe(header(getHead() + '\n'))
350359
.pipe(eol('\n', true))
351360
.pipe(gulp.dest(cfg.paths.staticJS))
352361
.on('error', gutil.log);
@@ -357,7 +366,7 @@ gulp.task('js:min', ['js:app', 'js:admin', 'js:chunks'], function() {
357366
return gulp.src(cfg.paths.staticJS + '*.js')
358367
.pipe(replace(/"rainloop\/v\/([^\/]+)\/static\/js\/"/g, '"rainloop/v/$1/static/js/min/"'))
359368
.pipe(uglify(cfg.uglify))
360-
.pipe(header('/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */\n'))
369+
.pipe(header(getHead() + '\n'))
361370
.pipe(eol('\n', true))
362371
.pipe(gulp.dest(cfg.paths.staticMinJS))
363372
.on('error', gutil.log);
@@ -482,6 +491,11 @@ gulp.task('rainloop:setup', ['rainloop:copy'], function() {
482491

483492
fs.writeFileSync(dist + 'rainloop/v/' + versionFull + '/index.php.root', fs.readFileSync(dist + 'index.php'));
484493

494+
if (cfg.community)
495+
{
496+
require('rimraf').sync(dist + 'rainloop/v/' + versionFull + '/app/libraries/RainLoop/Prem/');
497+
}
498+
485499
cfg.destPath = cfg.releasesPath + '/webmail/' + versionFull + '/';
486500
cfg.cleanPath = dist;
487501
cfg.zipSrcPath = dist;
@@ -578,33 +592,51 @@ gulp.task('rainloop:owncloud:clean', ['rainloop:owncloud:copy', 'rainloop:ownclo
578592

579593
// MAIN
580594
gulp.task('default', ['js:libs', 'js:boot', 'js:openpgp', 'js:min', 'css:main:min', 'ckeditor', 'fontastic']);
581-
gulp.task('fast', ['js:app', 'js:admin', 'js:chunks', 'css:main']);
595+
gulp.task('fast-', ['js:app', 'js:admin', 'js:chunks', 'css:main']);
596+
597+
gulp.task('fast', ['package:community-on', 'fast-']);
598+
gulp.task('fast+', ['package:community-off', 'fast-']);
582599

583600
gulp.task('rainloop:start', ['js:lint', 'rainloop:copy', 'rainloop:setup']);
584601

585-
gulp.task('rainloop', ['package:community-on', 'rainloop:start', 'rainloop:zip', 'rainloop:md5', 'rainloop:clean']);
586-
gulp.task('rainloop+', ['package:community-off', 'rainloop']);
602+
gulp.task('rainloop-', ['rainloop:start', 'rainloop:zip', 'rainloop:md5', 'rainloop:clean']);
587603

588-
gulp.task('owncloud', ['package:community-on', 'rainloop:owncloud:copy',
604+
gulp.task('rainloop', ['package:community-on', 'rainloop-']);
605+
gulp.task('rainloop+', ['package:community-off', 'rainloop-']);
606+
607+
gulp.task('owncloud-', ['rainloop:owncloud:copy',
589608
'rainloop:owncloud:copy-rainloop', 'rainloop:owncloud:copy-rainloop:clean',
590609
'rainloop:owncloud:setup', 'rainloop:owncloud:zip', 'rainloop:owncloud:md5', 'rainloop:owncloud:clean']);
591610

592-
gulp.task('owncloud+', ['package:community-off', 'owncloud']);
611+
gulp.task('owncloud', ['package:community-on', 'owncloud-']);
612+
gulp.task('owncloud+', ['package:community-off', 'owncloud-']);
593613

594614
//WATCH
595615
gulp.task('watch', ['fast'], function() {
596616
gulp.watch(cfg.paths.globjs, {interval: 1000}, ['js:app', 'js:admin']);
597617
gulp.watch(cfg.paths.less.main.watch, {interval: 1000}, ['css:main']);
598618
});
599619

620+
gulp.task('watch+', ['fast+'], function() {
621+
gulp.watch(cfg.paths.globjs, {interval: 1000}, ['js:app', 'js:admin']);
622+
gulp.watch(cfg.paths.less.main.watch, {interval: 1000}, ['css:main']);
623+
});
624+
600625
// ALIASES
601626
gulp.task('build', ['rainloop']);
627+
gulp.task('build+', ['rainloop+']);
602628
gulp.task('js:hint', ['js:lint']);
603629

604630
gulp.task('w', ['watch']);
631+
gulp.task('w+', ['watch+']);
605632
gulp.task('f', ['fast']);
633+
gulp.task('f+', ['fast+']);
634+
606635
gulp.task('b', ['build']);
607636
gulp.task('b+', ['build+']);
637+
608638
gulp.task('o', ['owncloud']);
609639
gulp.task('o+', ['owncloud+']);
610-
gulp.task('h', ['js:lint']);
640+
641+
gulp.task('h', ['js:lint']);
642+
gulp.task('l', ['js:lint']);

package.json

+3-6
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
},
1818
"licenses": [
1919
{
20-
"type": "CC BY-NC-SA 3.0",
21-
"ulr": "http://creativecommons.org/licenses/by-nc-sa/3.0/"
20+
"type": "AGPL 3.0",
21+
"ulr": "http://www.gnu.org/licenses/agpl-3.0.html"
2222
}
2323
],
2424
"bugs": {
@@ -43,6 +43,7 @@
4343
"devDependencies": {
4444

4545
"node-fs": "*",
46+
"rimraf": "*",
4647
"jshint-summary": "*",
4748

4849
"webpack": "*",
@@ -67,9 +68,5 @@
6768
"gulp-beautify": "*",
6869
"gulp-plumber": "*",
6970
"gulp-concat-util": "*"
70-
},
71-
"scripts": {
72-
"gulp": "gulp",
73-
"w": "gulp w"
7471
}
7572
}

rainloop/v/0.0.0/app/libraries/RainLoop/Actions.php

+19-1
Original file line numberDiff line numberDiff line change
@@ -1932,7 +1932,7 @@ public function LoginProcess(&$sEmail, &$sPassword, $sSignMeToken = '',
19321932
{
19331933
$sLine = \trim(\implode('.', $aDomainParts), '. ');
19341934

1935-
$oDomain = $oDomainProvider->Load($sLine);
1935+
$oDomain = $oDomainProvider->Load($sLine, false);
19361936
if ($oDomain && $oDomain instanceof \RainLoop\Model\Domain)
19371937
{
19381938
$bAdded = true;
@@ -1951,6 +1951,24 @@ public function LoginProcess(&$sEmail, &$sPassword, $sSignMeToken = '',
19511951
$iLimit--;
19521952
}
19531953

1954+
if (!$bAdded)
1955+
{
1956+
$sLine = $sUserHost;
1957+
$oDomain = $oDomainProvider->Load($sLine, true);
1958+
if ($oDomain && $oDomain instanceof \RainLoop\Model\Domain)
1959+
{
1960+
$bAdded = true;
1961+
$this->Logger()->Write('Check "'.$sLine.'" with wildcard: OK ('.$sEmail.' > '.$sEmail.'@'.$sLine.')',
1962+
\MailSo\Log\Enumerations\Type::INFO, 'LOGIN');
1963+
1964+
$sEmail = $sEmail.'@'.$sLine;
1965+
}
1966+
else
1967+
{
1968+
$this->Logger()->Write('Check "'.$sLine.'" with wildcard: NO', \MailSo\Log\Enumerations\Type::INFO, 'LOGIN');
1969+
}
1970+
}
1971+
19541972
if (!$bAdded)
19551973
{
19561974
$this->Logger()->Write('Domain was not found!', \MailSo\Log\Enumerations\Type::INFO, 'LOGIN');

0 commit comments

Comments
 (0)