فهرست منبع

Merge pull request #2813 from overleaf/ns-ta-group-account-admin

Add admin to group account when new group account is created

GitOrigin-RevId: 81c49a0b414896153a85a8ba1afc364164047c1c
Jessica Lawshe 6 سال پیش
والد
کامیت
4349e85444

+ 4 - 0
services/web/app/src/Features/Subscription/SubscriptionUpdater.js

@@ -265,6 +265,10 @@ const SubscriptionUpdater = {
       )
       )
     }
     }
     if (plan.groupPlan) {
     if (plan.groupPlan) {
+      if (!subscription.groupPlan) {
+        subscription.member_ids = subscription.member_ids || []
+        subscription.member_ids.push(subscription.admin_id)
+      }
       subscription.groupPlan = true
       subscription.groupPlan = true
       subscription.membersLimit = plan.membersLimit
       subscription.membersLimit = plan.membersLimit
     }
     }

+ 9 - 1
services/web/test/unit/src/Subscription/SubscriptionUpdaterTests.js

@@ -23,7 +23,7 @@ describe('SubscriptionUpdater', function() {
       _id: '111111111111111111111111',
       _id: '111111111111111111111111',
       admin_id: this.adminUser._id,
       admin_id: this.adminUser._id,
       manager_ids: [this.adminUser._id],
       manager_ids: [this.adminUser._id],
-      member_ids: this.allUserIds,
+      member_ids: [],
       save: sinon.stub().callsArgWith(0),
       save: sinon.stub().callsArgWith(0),
       planCode: 'student_or_something'
       planCode: 'student_or_something'
     }
     }
@@ -241,6 +241,10 @@ describe('SubscriptionUpdater', function() {
       this.SubscriptionUpdater.deleteSubscription = sinon.stub().yields()
       this.SubscriptionUpdater.deleteSubscription = sinon.stub().yields()
     })
     })
 
 
+    afterEach(function() {
+      this.subscription.member_ids = []
+    })
+
     it('should update the subscription with token etc when not expired', function(done) {
     it('should update the subscription with token etc when not expired', function(done) {
       this.SubscriptionUpdater._updateSubscriptionFromRecurly(
       this.SubscriptionUpdater._updateSubscriptionFromRecurly(
         this.recurlySubscription,
         this.recurlySubscription,
@@ -284,6 +288,7 @@ describe('SubscriptionUpdater', function() {
     })
     })
 
 
     it('should update all the users features', function(done) {
     it('should update all the users features', function(done) {
+      this.subscription.member_ids = this.allUserIds
       this.SubscriptionUpdater._updateSubscriptionFromRecurly(
       this.SubscriptionUpdater._updateSubscriptionFromRecurly(
         this.recurlySubscription,
         this.recurlySubscription,
         this.subscription,
         this.subscription,
@@ -323,6 +328,9 @@ describe('SubscriptionUpdater', function() {
           }
           }
           this.subscription.membersLimit.should.equal(5)
           this.subscription.membersLimit.should.equal(5)
           this.subscription.groupPlan.should.equal(true)
           this.subscription.groupPlan.should.equal(true)
+          this.subscription.member_ids.should.deep.equal([
+            this.subscription.admin_id
+          ])
           done()
           done()
         }
         }
       )
       )