Skip to content
This repository was archived by the owner on Feb 14, 2022. It is now read-only.

Commit fd67262

Browse files
committed
Auto validate invited users
1 parent 1891839 commit fd67262

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

src/main/java/pt/ist/fenix/webapp/CreateUserAccounts.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,7 @@
1515
import org.fenixedu.bennu.core.domain.Bennu;
1616
import org.fenixedu.bennu.core.domain.User;
1717
import org.fenixedu.bennu.core.domain.UserProfile;
18-
import org.fenixedu.bennu.scheduler.CronTask;
1918
import org.fenixedu.bennu.scheduler.annotation.Task;
20-
import org.fenixedu.bennu.scheduler.custom.CustomTask;
21-
import org.fenixedu.bennu.scheduler.custom.ReadCustomTask;
2219
import org.fenixedu.connect.domain.Account;
2320
import org.fenixedu.connect.domain.ConnectSystem;
2421
import org.fenixedu.connect.domain.Identity;
@@ -41,6 +38,7 @@
4138
import pt.ist.fenixedu.contracts.domain.accessControl.ActiveEmployees;
4239
import pt.ist.fenixedu.contracts.domain.accessControl.ActiveGrantOwner;
4340
import pt.ist.fenixedu.contracts.domain.accessControl.ActiveResearchers;
41+
import pt.ist.fenixedu.contracts.domain.organizationalStructure.Invitation;
4442
import pt.ist.fenixframework.FenixFramework;
4543
import pt.ist.standards.geographic.Planet;
4644

@@ -276,7 +274,18 @@ private boolean isStudentOrTeacherOrEmployee(final User user) {
276274
return true;
277275
}
278276
}
279-
return new ActiveEmployees().isMember(user) || new ActiveResearchers().isMember(user) || new ActiveGrantOwner().isMember(user);
277+
return new ActiveEmployees().isMember(user)
278+
|| new ActiveResearchers().isMember(user)
279+
|| new ActiveGrantOwner().isMember(user)
280+
|| hasActiveInvite(user);
281+
}
282+
283+
private boolean hasActiveInvite(final User user) {
284+
return user.getPerson() != null && user.getPerson().getParentsSet().stream()
285+
.filter(Invitation.class::isInstance)
286+
.map(Invitation.class::cast)
287+
.anyMatch(invitation -> invitation.isActive());
288+
280289
}
281290

282291
private void createAccount(final User user) {

0 commit comments

Comments
 (0)