Skip to content

Commit 4c02e7b

Browse files
committed
Allow to create shared drive with no recipients
1 parent d91048b commit 4c02e7b

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

model/sharing/sharing.go

+13-7
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,7 @@ func (s *Sharing) Create(inst *instance.Instance) (*permission.Permission, error
371371
if err := s.ValidateRules(); err != nil {
372372
return nil, err
373373
}
374-
if len(s.Members) < 2 {
374+
if !s.Drive && len(s.Members) < 2 {
375375
return nil, ErrNoRecipients
376376
}
377377

@@ -397,7 +397,7 @@ func (s *Sharing) CreateRequest(inst *instance.Instance) error {
397397
if err := s.ValidateRules(); err != nil {
398398
return err
399399
}
400-
if len(s.Members) < 2 {
400+
if !s.Drive && len(s.Members) < 2 {
401401
return ErrNoRecipients
402402
}
403403

@@ -685,6 +685,9 @@ func (s *Sharing) RevokeRecipientByNotification(inst *instance.Instance, m *Memb
685685

686686
// NoMoreRecipient cleans up the sharing if there is no more active recipient
687687
func (s *Sharing) NoMoreRecipient(inst *instance.Instance) error {
688+
if s.Drive {
689+
return nil
690+
}
688691
for _, m := range s.Members {
689692
if m.Status == MemberStatusReady {
690693
return couchdb.UpdateDoc(inst, s)
@@ -1126,11 +1129,14 @@ func CheckSharings(inst *instance.Instance, skipFSConsistency bool) ([]map[strin
11261129
membersChecks, validMembers := s.checkSharingMembers()
11271130
checks = append(checks, membersChecks...)
11281131

1129-
triggersChecks := s.checkSharingTriggers(inst, accepted)
1130-
checks = append(checks, triggersChecks...)
1132+
var triggersChecks, credentialsChecks []map[string]interface{}
1133+
if !s.Drive {
1134+
triggersChecks = s.checkSharingTriggers(inst, accepted)
1135+
checks = append(checks, triggersChecks...)
11311136

1132-
credentialsChecks := s.checkSharingCredentials()
1133-
checks = append(checks, credentialsChecks...)
1137+
credentialsChecks = s.checkSharingCredentials()
1138+
checks = append(checks, credentialsChecks...)
1139+
}
11341140

11351141
if len(membersChecks) == 0 && len(triggersChecks) == 0 && len(credentialsChecks) == 0 {
11361142
if !s.Owner || !s.Active {
@@ -1391,7 +1397,7 @@ func (s *Sharing) checkSharingTriggers(inst *instance.Instance, accepted bool) (
13911397
}
13921398

13931399
func (s *Sharing) checkSharingMembers() (checks []map[string]interface{}, validMembers []*instance.Instance) {
1394-
if len(s.Members) < 2 {
1400+
if !s.Drive && len(s.Members) < 2 {
13951401
checks = append(checks, map[string]interface{}{
13961402
"id": s.SID,
13971403
"type": "not_enough_members",

0 commit comments

Comments
 (0)