Skip to content

Commit

Permalink
#1418 Add user details preloading
Browse files Browse the repository at this point in the history
  • Loading branch information
nadouani committed Jun 30, 2020
1 parent 5673ffc commit 475e23d
Show file tree
Hide file tree
Showing 5 changed files with 65 additions and 40 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
dev
logs
bin
conf/application.conf
Expand Down
7 changes: 5 additions & 2 deletions frontend/app/scripts/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -89,12 +89,15 @@ angular.module('thehive', [
templateUrl: 'views/app.html',
controller: 'RootCtrl',
resolve: {
currentUser: function($q, $state, AuthenticationSrv, NotificationSrv) {
currentUser: function($q, $state, UserSrv, AuthenticationSrv, NotificationSrv) {
var deferred = $q.defer();

AuthenticationSrv.current()
.then(function(userData) {
return deferred.resolve(userData);
// Prepare user cache
UserSrv.loadCache(userData.organisation);

return deferred.resolve(userData);
})
.catch( function(err) {
NotificationSrv.error('App', err.data, err.status);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -179,8 +179,13 @@
return UserSrv.list(
self.currentUser.organisation,
{
filter: { locked: false },
sort: [{'name': 'asc'}]
filter: {
_is: {
_field: 'locked',
_value: false
}
},
sort: ['+name']
}
);
},
Expand Down
9 changes: 7 additions & 2 deletions frontend/app/scripts/directives/updatableUser.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,13 @@
if(value === true && !cached) {
// TODO nadouani use {"_field": "locked": "_value": false}
UserSrv.list(AuthenticationSrv.currentUser.organisation, {
filter: { locked: false },
sort: [{'name': 'asc'}]
filter: {
_is: {
_field: 'locked',
_value: false
}
},
sort: ['+name']
})
.then(function(users) {
scope.userList = users;
Expand Down
79 changes: 45 additions & 34 deletions frontend/app/scripts/services/api/UserSrv.js
Original file line number Diff line number Diff line change
Expand Up @@ -184,57 +184,45 @@
}
];

var queryConfig = {};

// Apply filter is defined
if (options && options.filter) {
// operations.push({
// '_name': 'filter',
// '_is': options.filter
// });

operations.push(
_.extend({'_name': 'filter'}, {'_is': options.filter})
);
queryConfig.filter = options.filter;
}

// Apply sort is defined
if (options && options.sort) {
// operations.push({
// '_name': 'sort',
// '_fields': options.sort
// });

operations.push(
_.extend({'_name': 'sort'}, {'_fields': options.sort})
);
queryConfig.sort = options.sort;
}

return QuerySrv.query('v1', operations)
.then(function(response) {
return $q.resolve(response.data);
});
return QuerySrv.call('v1', operations, queryConfig);
};

this.autoComplete = function(organisation, query) {
// TODO nadouani filter on server side
return this.list(organisation, {
filter: {
_is: {
locked: false
}
})
.then(function(data) {
return _.map(data, function(user) {
return {
label: user.name,
text: user.login
};
});
})
.then(function(users) {
return _.filter(users, function(user) {
var regex = new RegExp(query, 'gi');
}
})
.then(function(data) {
return _.map(data, function(user) {
return {
label: user.name,
text: user.login
};
});
})
.then(function(users) {
return _.filter(users, function(user) {
var regex = new RegExp(query, 'gi');

return regex.test(user.label);
});
return regex.test(user.label);
});
});
};

this.getCache = function(userId) {
Expand Down Expand Up @@ -268,6 +256,29 @@
self.userCache[userId] = userData;
};


/**
* Cache the details of all the visible users
*/
this.loadCache = function() {
var defer = $q.defer();

QuerySrv.call('v1', [
{'_name': 'listOrganisation'},
{'_name': 'users'},
])
.then(function(users) {
_.each(users, function(u) {
self.updateCache(u.login, u);
});
defer.resolve();
}).catch(function(err){
defer.reject(err);
});

return defer.promise;
};

this.openModal = function(user, organisation) {
var modalInstance = $uibModal.open({
templateUrl: 'views/partials/admin/organisation/user.modal.html',
Expand Down

0 comments on commit 475e23d

Please sign in to comment.