sentilo/sentilo

View on GitHub
scripts/upgrades/1.8.0/mongodb/upgrade_1.8.0.js

Summary

Maintainability
C
1 day
Test Coverage
// Remove the unnecessary field 'passwordRepeat' from the User collection. 
db.user.update({},{ $unset: {"passwordRepeat": ""}}, {multi:true});

//Previous versions had a bug when a new user was added to the Catalog by a super admin user: both fields tenantsAuth 
//and tenantsListVisible were initialized incorrectly. Therefore, in some situations, these users were not 
//displayed in the admin list.
var total = 0;
var users = db.user.find({tenantsAuth:{$exists:true,$eq:[]}, tenantId:{$exists:true}});
users.forEach(function (e) {    
var updated = false;
    
if((e.tenantsAuth && e.tenantsAuth.indexOf(e.tenantId)) || !e.tenantsAuth){
    db.user.update({"_id" : e._id}, { $push: { "tenantsAuth" : e.tenantId}} );
    print("tenantsAuth field for user " + e.name + " updated!")
    updated = true;
}

if((e.tenantsListVisible && e.tenantsListVisible.indexOf(e.tenantId)) || !e.tenantsListVisible){
    db.user.update({"_id" : e._id}, { $push: { "tenantsListVisible" : e.tenantId}} );
    print("tenantsListVisible field for user " + e.name + " updated!")
    updated = true;
}                      

if(updated){     
    total++;
}

});
print("Number of users updated: " + total);