Skip to main content

how to get UserStatisticsAgent Implementation

Comments

2 comments

  • Zendesk API User
    Author: hbarthel - 2/12/2020 10:51

            ManagerBroker managerBroker = connection.getBroker().requireSpecialist(ManagerBroker.TYPE);

            UserManager userManager = managerBroker.getManager(UserManager.class);

            Long[] userIds = userManager.getUserIds();

            UserStatisticsAgent usa = connection.getBroker().requireSpecialist(UserStatisticsAgent.TYPE);

            for (Long userId : userIds) {

                String login = userManager.getUserByID(userId).getLoginName();

                LocalDate date = usa.getLastLogin(userId).orElse(null);

    ..............

            }

    0
  • Zendesk API User
    Author: tony_ziroff - 2/20/2020 14:43

    thanks! ended with the following code dumping user information, project memberships with roles and external group memberships

    import java.time.LocalDate;

    import java.util.Collection;

    import java.util.Iterator;

    import java.util.List;

    import de.espirit.firstspirit.access.AdminService;

    import de.espirit.firstspirit.access.Connection;

    import de.espirit.firstspirit.access.admin.UserStorage;

    import de.espirit.firstspirit.access.project.ExternalGroup;

    import de.espirit.firstspirit.access.project.Group;

    import de.espirit.firstspirit.access.project.Project;

    import de.espirit.firstspirit.access.User;

    import de.espirit.firstspirit.agency.ManagerBroker;

    import de.espirit.firstspirit.agency.UserStatisticsAgent;

    import de.espirit.firstspirit.manager.UserManager;

    Connection connection = context.getConnection();

    Project[] projects = connection.getProjects();

    ManagerBroker managerBroker = connection.getBroker().requireSpecialist(ManagerBroker.TYPE);

    UserManager userManager = managerBroker.getManager(UserManager.class);        

    UserStorage userstorage=connection.getService(AdminService.class).getUserStorage();        

    Long[] userIds = userManager.getUserIds();

    UserStatisticsAgent usa = connection.getBroker().requireSpecialist(UserStatisticsAgent.TYPE);

    for (Long userId : userIds) {

        String roles = "";

        String groupNames = "";

        User user=userstorage.getUserByID(userId);

        String userName = user.getLoginName() + "^-" + user.getRealname();

        String userInfo = userName + "^-" + user.getEMail() + "^-" + user.getLDAPSection() + "^-" + user.isActive();          

        

        Collection<ExternalGroup> extGroups = user.getExternalGroups();

        for (ExternalGroup group : extGroups) {

            groupNames += group.getName( ) + " - ";

        }

       

        String projectList = "";

        for(int i=0; i< projects.length; i++){

            List<User> users = projects[i].getUsers();

            Iterator<User> iterator = users.iterator();

         

            while(iterator.hasNext()){

                User localUser = iterator.next();

                if(user.getId() == localUser.getId()) {

                    projectList += projects[i].getName() + " - ";

                    Group[] groups = projects[i].getGroupsArray(localUser);

                    for( int j=0; j>groups.length; j++ ) {

                        roles = groups[j].getName();

                    }

                }

            }               

        }

       

        try{

            LocalDate date = usa.getLastLogin(userId).orElse(null);

            userInfo += "^-" + date.toString();

        }catch( Exception ex ){

            userInfo += "^-" + "no last login available";

        }

        context.logInfo( "^-" + userInfo  + "^-" + projectList+ "^-" + groupNames);

    }

    0

Please sign in to leave a comment.