Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
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.sql.util;
 
import static base.jee.api.sql.util.Log.log;
Grant personId a new role against a specific resource uid. ie Grant "John Smith" permission to update "Document" with uid "401".
public class UpsertPersonResourceRole {
	public static void upsertPersonResourceRole(Connection cUUID assigneeUuidString resourceString uidString roleUser updatorthrows SQLException {
		PreparedStatement s = null;
		PreparedStatement t = null;
		ResultSet r = null;
		try {
			s = c.prepareStatement("select (select count(*) from role where resource=? and uid=? and assignee_uuid=? and role=?), first_name, last_name from person where uuid=?");
			s.setString(1, resource);
			s.setString(2, uid);
			s.setString(3, assigneeUuid.toString());
			s.setString(4, role);
			s.setString(5, assigneeUuid.toString());
			r = s.executeQuery();
			if(r.next() && r.getInt(1) == 0) {
				t = c.prepareStatement("insert into role (resource,uid,assignee_uuid,role) values(?,?,?,?)");
				t.setString(1, resource);
				t.setString(2, uid);
				t.setString(3, assigneeUuid.toString());
				t.setString(4, role);
				t.close();
				t = c.prepareStatement("update token set roles='!' where person_uuid=?");
				t.setString(1, assigneeUuid.toString());
				t.close();
				t = null;
				log(c"INFO"updator"Added role \"" + Json.escape(role) + "\" for person \"" + Json.escape(r.getString(2) + " " + r.getString(3)) + "\"."new ResourceUid("Person"assigneeUuid.toString()), new ResourceUid(resourceuid));
			}
			s.close();
			s = null;
			r.close();
			r = null;
finally {
			if(r != null) { try { r.close(); } catch(Exception f){} }
			if(s != null) { try { s.close(); } catch(Exception f){} }
			if(t != null) { try { t.close(); } catch(Exception f){} }
		}
	}
New to GrepCode? Check out our FAQ X