base.jee.api.cassandra.JoinGroup Maven / Gradle / Ivy
/**
* Creative commons Attribution-NonCommercial license.
*
* http://creativecommons.org/licenses/by-nc/2.5/au/deed.en_GB
*
* NO WARRANTY IS GIVEN OR IMPLIED, USE AT YOUR OWN RISK.
*/
package base.jee.api.cassandra;
import base.Command;
import base.jee.Constants;
import base.security.PermissionException;
import base.security.ResourceUid;
import base.security.User;
import com.datastax.driver.core.PreparedStatement;
import com.datastax.driver.core.Session;
import java.io.IOException;
import java.util.UUID;
import static base.jee.api.cassandra.util.Log.log;
public class JoinGroup extends Command {
private CassandraAPI api;
private User user;
private UUID group;
private UUID person;
public JoinGroup(CassandraAPI api, User user, UUID group, UUID person) throws PermissionException {
if(api == null) {
throw new IllegalArgumentException("Invalid parameter: api");
}
if(group == null) {
throw new IllegalArgumentException("Invalid parameter: group");
}
if(person == null) {
throw new IllegalArgumentException("Invalid parameter: person");
}
if(user == null) {
throw new PermissionException(this.getClass().getSimpleName(), user, "You do not have permission to manage groups.", Constants.GROUP_MANAGE_ROLE);
}
this.api = api;
this.group = group;
this.person = person;
this.user = user;
}
public JoinGroup() {
}
@Override
protected void execute() throws IOException {
Session s = api.getCassandraSession();
PreparedStatement t = s.prepare("insert into group_member (person_uuid,group_uuid,joined) values(?,?,?)");
s.execute(t.bind(person, group));
log(s, "INFO", user, "Added person " + person + " for to group " + group, new ResourceUid("Person", person.toString()), new ResourceUid("Group", group.toString()));
}
@Override
public String getJsonParameters() {
return "{" +
"\"user.person_uuid\":\"" + user.getPersonUuid() + "\"," +
"\"group.uuid\":\"" + group + "\"," +
"\"person.uuid\":\"" + person + "\"" +
"}";
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy