use of org.molgenis.data.security.auth.Group in project molgenis by molgenis.
the class PermissionRegistryImplTest method testGetPermissions.
@Test
public void testGetPermissions() {
@SuppressWarnings("unchecked") Query<Group> query = mock(Query.class);
when(query.eq("name", "All Users")).thenReturn(query);
when(dataService.query("sys_sec_Group", Group.class)).thenReturn(query);
Group group = when(mock(Group.class).getId()).thenReturn("group0").getMock();
when(query.findOne()).thenReturn(group);
Multimap<ObjectIdentity, Pair<Permission, Sid>> expectedPermissions = ImmutableListMultimap.of(new PluginIdentity("useraccount"), new Pair<>(PluginPermission.READ, new GrantedAuthoritySid("ROLE_group0")));
assertEquals(permissionRegistryImpl.getPermissions(), expectedPermissions);
}
use of org.molgenis.data.security.auth.Group in project molgenis by molgenis.
the class AccountServiceImplTest method setUp.
@BeforeMethod
public void setUp() {
when(appSettings.getTitle()).thenReturn("Molgenis title");
when(authenticationSettings.getSignUpModeration()).thenReturn(false);
Group allUsersGroup = mock(Group.class);
@SuppressWarnings("unchecked") Query<Group> q = mock(Query.class);
when(q.eq(NAME, ALL_USER_GROUP)).thenReturn(q);
when(q.findOne()).thenReturn(allUsersGroup);
when(dataService.query(GROUP, Group.class)).thenReturn(q);
when(user.getUsername()).thenReturn("jansenj");
when(user.getFirstName()).thenReturn("Jan");
when(user.getMiddleNames()).thenReturn("Piet Hein");
when(user.getLastName()).thenReturn("Jansen");
when(user.getEmail()).thenReturn("jan.jansen@activation.nl");
when(user.getPassword()).thenReturn("password");
}
use of org.molgenis.data.security.auth.Group in project molgenis by molgenis.
the class SidUtilsTest method testCreateGroupAuthority.
@Test
public void testCreateGroupAuthority() {
Group group = when(mock(Group.class).getId()).thenReturn("groupId").getMock();
assertEquals("ROLE_groupId", SidUtils.createGroupAuthority(group));
}
use of org.molgenis.data.security.auth.Group in project molgenis by molgenis.
the class AccountServiceImpl method createUser.
@Override
@RunAsSystem
@Transactional
public void createUser(User user, String baseActivationUri) throws UsernameAlreadyExistsException, EmailAlreadyExistsException {
// Check if username already exists
if (userService.getUser(user.getUsername()) != null) {
throw new UsernameAlreadyExistsException("Username '" + user.getUsername() + "' already exists.");
}
// Check if email already exists
if (userService.getUserByEmail(user.getEmail()) != null) {
throw new EmailAlreadyExistsException("Email '" + user.getEmail() + "' is already registered.");
}
// collect activation info
String activationCode = idGenerator.generateId(SECURE_RANDOM);
List<String> activationEmailAddresses;
if (authenticationSettings.getSignUpModeration()) {
activationEmailAddresses = userService.getSuEmailAddresses();
if (activationEmailAddresses == null || activationEmailAddresses.isEmpty())
throw new MolgenisDataException("Administrator account is missing required email address");
} else {
String activationEmailAddress = user.getEmail();
if (activationEmailAddress == null || activationEmailAddress.isEmpty())
throw new MolgenisDataException("User '" + user.getUsername() + "' is missing required email address");
activationEmailAddresses = asList(activationEmailAddress);
}
// create user
user.setActivationCode(activationCode);
user.setActive(false);
dataService.add(USER, user);
LOG.debug("created user " + user.getUsername());
// add user to group
Group group = dataService.query(GROUP, Group.class).eq(NAME, ALL_USER_GROUP).findOne();
GroupMember groupMember = null;
if (group != null) {
groupMember = groupMemberFactory.create();
groupMember.setGroup(group);
groupMember.setUser(user);
dataService.add(GROUP_MEMBER, groupMember);
}
// send activation email
URI activationUri = URI.create(baseActivationUri + '/' + activationCode);
try {
SimpleMailMessage mailMessage = new SimpleMailMessage();
mailMessage.setTo(activationEmailAddresses.toArray(new String[] {}));
mailMessage.setSubject("User registration for " + appSettings.getTitle());
mailMessage.setText(createActivationEmailText(user, activationUri));
mailSender.send(mailMessage);
} catch (MailException mce) {
LOG.error("Could not send signup mail", mce);
if (groupMember != null) {
dataService.delete(GROUP_MEMBER, groupMember);
}
dataService.delete(USER, user);
throw new MolgenisUserException("An error occurred. Please contact the administrator. You are not signed up!");
}
LOG.debug("send activation email for user " + user.getUsername() + " to " + StringUtils.join(activationEmailAddresses, ','));
}
use of org.molgenis.data.security.auth.Group in project molgenis by molgenis.
the class WebAppPermissionRegistry method getPermissions.
@Override
public Multimap<ObjectIdentity, Pair<Permission, Sid>> getPermissions() {
User anonymousUser = dataService.query(USER, User.class).eq(USERNAME, ANONYMOUS_USERNAME).findOne();
Group allUsersGroup = dataService.query(GROUP, Group.class).eq(NAME, ALL_USER_GROUP).findOne();
ObjectIdentity pluginIdentity = new PluginIdentity(HomeController.ID);
return new ImmutableMultimap.Builder<ObjectIdentity, Pair<Permission, Sid>>().putAll(pluginIdentity, new Pair<>(PluginPermission.READ, createSid(anonymousUser)), new Pair<>(PluginPermission.READ, createSid(allUsersGroup))).build();
}
Aggregations