package pt.utl.ist.scripts.runOnce;

import java.util.Collection;

import net.sourceforge.fenixedu.domain.Person;
import pt.utl.ist.scripts.commons.AtomicScript;

public class FixInactivePersons extends AtomicScript {

    public static void main(String[] args) {
        process(new FixInactivePersons());
        System.exit(0);
    }

    @Override
    protected void run() throws Exception {

        

        final Collection<Person> persons = Person.readAllPersons();
        long max = 0;

        for (Person person : persons) {
            if (person.getUsername().matches("INA[0-9]+")) {
                long value = Long.valueOf(person.getUsername().replaceFirst("INA", ""));
                if (value > max) {
                    max = value;
                }
            }
        }

        for (Person person : persons) {
            if (person.getUsername().startsWith("INA")) {
                if (person.getPersonRolesSet().size() != 0) {
                    logger.info("We are about to delete all " + person.getUsername() + "'s roles.");
                    person.getPersonRoles().clear();
                    person.getLoginIdentification().closeLoginIfNecessary();
                }
            } else {
                if (person.getPersonRolesSet().size() == 0 && person.isExternalPerson()) {
                    logger.info("We are setting the following person: " + person.getUsername() + " to inactive");
                    person.getLoginIdentification().closeLoginIfNecessary();
                }
            }

        }

        

    }

}
