diff --git a/imports/api/bonus.js b/imports/api/bonus.js index 80fbccd19ddcdc5b5d1d04f03b0da902a2e4351d..a8293c06ca875d667cf037a8db38549812d36b2a 100644 --- a/imports/api/bonus.js +++ b/imports/api/bonus.js @@ -16,11 +16,15 @@ export let Bonus = class Bonus { } static canJoinBonus (cardset_id) { - let cardset = Cardsets.findOne({_id: cardset_id}, {fields: {_id: 1, registrationPeriod: 1, owner: 1}}); - if (Roles.userIsInRole(Meteor.userId(), ['firstLogin', 'blocked']) || cardset.owner === Meteor.userId()) { + let cardset = Cardsets.findOne({_id: cardset_id}, {fields: {_id: 1, registrationPeriod: 1, owner: 1, kind: 1}}); + if (Roles.userIsInRole(Meteor.userId(), ['firstLogin', 'blocked'])) { return false; } - if (Roles.userIsInRole(Meteor.userId(), ['admin', 'editor', 'lecturer', 'university', 'pro'])) { + let roles = ['admin', 'editor', 'lecturer', 'university', 'pro']; + if (cardset.kind === "free") { + roles.push('standard'); + } + if (Roles.userIsInRole(Meteor.userId(), roles)) { return !this.isInBonus(cardset._id) && moment(cardset.registrationPeriod).endOf('day') > new Date(); } else { return false; diff --git a/imports/startup/client/registerhelper.js b/imports/startup/client/registerhelper.js index fa769f62eea5358ac0982024d4b7f8e544a72f5b..9f02257522eb874f649311860ab6a2d8d6e950b7 100644 --- a/imports/startup/client/registerhelper.js +++ b/imports/startup/client/registerhelper.js @@ -32,6 +32,14 @@ Template.registerHelper('getLastAppTitle', function () { return Meteor.settings.public.welcome.title.last; }); +Template.registerHelper('isInBonus', function () { + return Bonus.isInBonus(Router.current().params._id, Meteor.userId()); +}); + +Template.registerHelper('isInBonusAndNotOwner', function () { + return Bonus.isInBonus(Router.current().params._id) && (!UserPermissions.isOwner(Cardsets.findOne({_id: Router.current().params._id}).owner) && !UserPermissions.isAdmin()); +}); + Template.registerHelper('extendContext', function (key, value) { let result = _.clone(this); result[key] = value; diff --git a/imports/ui/cardset/cardset.html b/imports/ui/cardset/cardset.html index 1cdd62cc63dc37790a6d691000e23d5db88058ac..8487c5cb0e1455f2be1ce6dcc69f7406428be89f 100644 --- a/imports/ui/cardset/cardset.html +++ b/imports/ui/cardset/cardset.html @@ -47,7 +47,7 @@ {{selectedForLearning}} {{/unless}} {{#if isActiveRoute regex='cardsetdetailsid|cardsetcard'}} - {{#unless isInBonus}} + {{#unless isInBonusAndNotOwner}} {{#if this.quantity}}