mirror of
https://github.com/micromdm/micromdm/
synced 2026-08-11 20:45:32 +08:00
Fixes #546. Save a record of the last imported DEP token and prefer use that one first when we read out tokens back. (#633)
This commit is contained in:
@@ -22,6 +22,10 @@ func (db *DB) AddToken(consumerKey string, json []byte) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = b.Put([]byte("last_added"), []byte(consumerKey))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return b.Put([]byte(consumerKey), json)
|
||||
})
|
||||
if err != nil {
|
||||
@@ -33,11 +37,13 @@ func (db *DB) AddToken(consumerKey string, json []byte) error {
|
||||
|
||||
func (db *DB) DEPTokens() ([]config.DEPToken, error) {
|
||||
var result []config.DEPToken
|
||||
var lastAdded string
|
||||
err := db.View(func(tx *bolt.Tx) error {
|
||||
b := tx.Bucket([]byte(depTokenBucket))
|
||||
if b == nil {
|
||||
return nil
|
||||
}
|
||||
lastAdded = string(b.Get([]byte("last_added")))
|
||||
c := b.Cursor()
|
||||
|
||||
prefix := []byte("CK_")
|
||||
@@ -48,7 +54,14 @@ func (db *DB) DEPTokens() ([]config.DEPToken, error) {
|
||||
// TODO: log problematic DEP token, or remove altogether?
|
||||
continue
|
||||
}
|
||||
result = append(result, depToken)
|
||||
if lastAdded == depToken.ConsumerKey {
|
||||
// the server merely takes the first DEP token. let's
|
||||
// make sure the most recent one is the one that's
|
||||
// returned first
|
||||
result = append([]config.DEPToken{depToken}, result...)
|
||||
} else {
|
||||
result = append(result, depToken)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user