func (rmc *RoomManagerCapabilities) Save( ctx scope.Context, account proto.Account, c security.Capability) error { capRow := &Capability{ ID: c.CapabilityID(), NonceBytes: c.Nonce(), EncryptedPrivateData: c.EncryptedPayload(), PublicData: c.PublicPayload(), } rmCapRow := &RoomManagerCapability{ Room: rmc.Room.Name, CapabilityID: c.CapabilityID(), Granted: time.Now(), } if account != nil { capRow.AccountID = account.ID().String() rmCapRow.AccountID = account.ID().String() } return rmc.Executor.Insert(capRow, rmCapRow) }