Bonjour,
Y a t’il moyen de connaitre la liste des comptes qui ont un périphérique mobile non autorisé ?
Merci d’avance.
Bonjour,
Y a t’il moyen de connaitre la liste des comptes qui ont un périphérique mobile non autorisé ?
Merci d’avance.
J’y arrive à peu près…
Sauf qu’il ne ramène que les devices dont la synchronisation n’est pas activée (ou interdite).
new DeviceLocator();
DeviceClient dc = DeviceLocator.locate(prop.getProperty("core.url"));
AccessToken gTok = dc.login(prop.getProperty("core.login"), prop.getProperty("core.password"), "EB");
DeviceQuery dq = new DeviceQuery();
//dq.setPartnership(false);
ResultList<DeviceUser> du = dc.find(gTok, dq);
for (DeviceUser u : du) {
logger.debug(u.getLogin());
}
Bonjour,
Si c’est pour du one-shot le plus simple c’est de le faire en sql,
#se connecter avec le user postgres
su postgres
# se cnnecter a la DB de bluemind
psql bj
# commande sql pour lister tous les mobiles qui n'ont pas été autorisé
select u.login, d.type, d.identifier from eas_device d left join eas_sync_perms p on d.id=p.device_id left join userbm u on d.owner=u.id where p.owner is null;
# se decconecter de la DB
\q
C’est plus pour faire un suivi au quotidien en fait;
Cela permettra aussi de détecter d’éventuelle tentative de piratage “interne”…
Avec les APIs actuelles, l’idée est de parcourir les utilisateurs et pour chacun d’eux, récupérer la liste de périphériques associés (API getDevices) et vérifier que l’attribut permsDeviceId n’est pas null.
Merci pour les infos… je vais regarder cela prochainement…
Nous entrons en phase très active de migration de l’ensemble du département et le manque d’outils de supervision se fait sentir.
A quand ces fonctionnalités dans l’admin ?
Nous avons soumis le même souhait dans la suggestion box : https://community.blue-mind.net/suggestions/details/SB-1014
Enfin quelque chose qui s’en rapproche 
J’ai voté pour…
voté aussi …
Ci dessous le code que j’utilise.
Il liste tous les périphériques (et le statut) des utilisateurs du domaine cg89.fr
Je met tout çà dans un log…
Je ne sais pas s’il est optimal mais il fonctionne…
private void getWaitingDevices() throws AuthFault, ServerFault {
SystemClient sc = new SystemLocator().locate(prop.getProperty("core.url"));
DeviceClient dc = DeviceLocator.locate(prop.getProperty("core.url"));
ICore coreClient = CoreClient.newCore(prop.getProperty("core.url"));
AccessToken aTok = sc.login(prop.getProperty("core.login"), prop.getProperty("core.password"), "EB");
UserQuery userQuery = new UserQuery();
userQuery.setDomainName("cg89.fr");
try {
ResultList<User> userList = coreClient.getUser().find(aTok, userQuery);
for (User u : userList) {
List<Device> devices = dc.getDevices(aTok, u.getId());
for (Device d : devices) {
if(d.getPermsDeviceId() == 0){
logger.info(u.getDisplayName() + " - "+ d.getType() + " : non autorisé");
}else{
logger.info(u.getDisplayName() + " - "+ d.getType() + " : autorisé");
}
}
}
} catch (AuthFault | ServerFault e) {
e.printStackTrace();
} finally {
sc.logout(aTok);
}
}