Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   This is free and unencumbered software released into the public domain.
  
   Anyone is free to copy, modify, publish, use, compile, sell, or
   distribute this software, either in source code form or as a compiled
   binary, for any purpose, commercial or non-commercial, and by any
   means.
  
   In jurisdictions that recognize copyright laws, the author or authors
  of this software dedicate any and all copyright interest in the
  software to the public domain. We make this dedication for the benefit
  of the public at large and to the detriment of our heirs and
  successors. We intend this dedication to be an overt act of
  relinquishment in perpetuity of all present and future rights to this
  software under copyright law.
 
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
  OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
  ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  OTHER DEALINGS IN THE SOFTWARE.
  */
 package base.jee.api.sql;
 
 import base.KeyValue;
 import base.MemCache;
 import base.Throttle;
 
 
 import java.util.List;
 import java.util.Set;
 import java.util.UUID;
 
 import static base.jee.Constants.DEFAULT_THROTTLE_AUTH_LOCKOUT;

Implementation of the base library API for usage with MySQL and SQLite.
 
 public class SqlAPI implements API {
 
 	private DataSource ds;
 	private Settings settings;
 
 	public SqlAPI(DataSource dsthrows IOException {
 		this. = ds;
 
 		new Setup(ds).run();
 		this. = new Settings(this);
 
 		if(.get("log.hidden.ip"null) == null) {
 			.set("log.hidden.ip""");
 		}
 
 		if(.get("self.signup"null) == null) {
 			.set("self.signup""false");
 		}
 
 		// Initialise default throttle settings
 		new Throttle(ds"auth", 3, 60);
 		new Throttle(ds"ip", 60, 10, 10);
 
 	}
 
 	public void initialSetup(String siteString firstNameString lastNameString emailAddressString usernameString passwordString smtpHostnameint smtpPortboolean selfSignupString ipthrows IOException {
 		new InitialSetup(sitefirstNamelastNameemailAddressusernamepasswordsmtpHostnamesmtpPortselfSignupip).run();
 	}
 
 	public Settings getSettingsCache() {
 		return ;
 	}
 
 	public DataSource getDataSource() {
		return ;
	}
	public void registerApiCalls(JeeBase jee) {
		jee.add(new Authenticate());
		jee.add(new CreatePerson());
		jee.add(new GetBatchResults());
		jee.add(new GetGroup());
		jee.add(new GetGroups());
		jee.add(new GetGroupMembers());
		jee.add(new GetGroupRoles());
		jee.add(new GetPerson());
		jee.add(new GetPersonByEmail());
		jee.add(new GetPersonCount());
		jee.add(new GetPersonRoles());
		jee.add(new GetPersonGroups());
		jee.add(new GetSession());
		jee.add(new GetSettings());
		jee.add(new HasPersonRecord());
		jee.add(new RecentLogEntries());
		jee.add(new SignUp());
		jee.add(new SearchPeople());
		jee.add(new UpsertGroup());
		jee.add(new DeleteGroupRole());
		jee.add(new DeleteRole());
		jee.add(new JoinGroup());
		jee.add(new LeaveGroup());
		jee.add(new RemoveSetting());
		jee.add(new UpsertGroupRole());
		jee.add(new UpsertRole());
		jee.add(new UpsertSetting());
	}
	public List<EmailgetPendingEmail(int countthrows IOException {
		return new GetPendingEmail(count).execute();
	}
	public List<KeyValuegetSettings(User userthrows IOException {
		return new GetSettings(user).execute();
	}
	public List<KeyValuegetPersonSettings(User userUUID personthrows IOException {
		return new GetPersonSettings(userperson).execute();
	}
	public List<AuditLogEntrygetRecentLogEntries(User userString resourceTypeString resourceUidboolean debuglong limitthrows IOException {
		return new RecentLogEntries(thisuserresourceTyperesourceUiddebuglimit).run();
	}
	public List<AuditLogEntrygetRecentLogEntriesByIP(User userString ipboolean debuglong limitthrows IOException {
		return new RecentLogEntriesByIP(thisuseripdebuglimit).run();
	}
	public List<AuditLogEntrygetRecentLogEntriesByPerson(User userUUID uuidboolean debuglong limitthrows IOException {
		return new RecentLogEntriesByPerson(thisuseruuiddebuglimit).run();
	}
	public void removeSetting(User userString namethrows IOException {
		new RemoveSetting(username).run();
	}
	public void sendEmail(User userString emailthrows IOException {
		new SendEmail(useremail).run();
	}
	public void upsertSetting(User userString nameString valuethrows IOException {
		new UpsertSetting(usernamevalue).run();
	}
	public void upsertPersonSetting(User userUUID personString nameString valuethrows IOException {
		new UpsertPersonSetting(thisuserpersonnamevalue).run();
	}
	public void deleteSetting(User userString namethrows IOException {
	}
	public void deleteAllSettings(User userthrows IOException {
	}
	public void createTemplate(User userString basedOnString namethrows IOException {
		new CreateTemplate(userbasedOnname).run();
	}
	public void deleteTemplate(User userString namethrows PermissionException {
		new DeleteTemplate(username);
	}
	public List<ResourcegetTemplateResources(String siteString templatethrows IOException {
		return new GetTemplateResources(sitetemplate).execute();
	}
	public List<KeyValuegetTemplates() throws IOException {
		return new GetTemplates().execute();
	}
	public List<KeyValuegetSiteTemplates(User userthrows IOException {
		return new GetSiteTemplates(user).execute();
	}
	public List<base.jee.api.model.ThrottlegetThrottles(User userthrows IOException {
		return new GetThrottles(thisuser).execute();
	}
	public void upsertTemplateResource(User userString templateString namebyte[] contentboolean binarythrows IOException {
		new UpsertTemplateResource(usertemplatenamecontentbinary).run();
	}
	public void activateAccountUsingToken(String tokenString passwordString password2String ipthrows IOException {
		new ActivateAccountUsingToken(tokenpasswordpassword2ip).run();
	}
	public List<KeyValueauthenticate(String siteString currentTokenString usernameString passwordString ipthrows IOException {
		return new Authenticate(thissitecurrentTokenusernamepasswordip).execute();
	}
	public UUID createPerson(TemplateManager templateManagerUser userString firstNameString lastNameString emailString usernameString passwordString initialRolesString expirythrows IOException {
		List<UuidQueryResultr = new CreatePerson(templateManageruserfirstNamelastNameemailusernamepasswordinitialRolesexpiry).run();
		if(r == null || r.size() == 0) {
			return null;
		}
		return r.get(0).getUUID();
	}
	public void deleteGroupResourceRole(User userString resourceString uidUUID groupUuidString rolethrows IOException {
		new DeleteGroupResourceRole(userresourceuidgroupUuidrole).run();
	}
	public void deleteGroupRole(User userUUID groupUuidString rolethrows IOException {
		new DeleteGroupRole(usergroupUuidrole).run();
	}
	public void deleteResourceRole(User userString resourceString uidUUID personUuidString rolethrows IOException {
		new DeleteResourceRole(userresourceuidpersonUuidrole).run();
	}
	public void deleteRole(User userUUID personUuidString rolethrows IOException {
		new DeleteRole(userpersonUuidrole).run();
	}
	public base.jee.api.model.Throttle deleteThrottle(User userString uidthrows IOException {
		List<base.jee.api.model.Throttler = new DeleteThrottle(thisuseruid).execute();
		if(r.size() == 0) {
			return null;
else {
			return r.get(0);
		}
	}
	public List<StringQueryResultgetBatchResults(User userUUID batchthrows IOException {
		return new GetBatchResults(thisuserbatch).execute();
	}
	public Group getGroup(User userUUID uuidthrows IOException {
		List<Groupr = new GetGroup(useruuid).execute();
		if(r == null || r.size() == 0) {
			return null;
		}
		return r.get(0);
	}
	public List<PersongetGroupMembers(User userUUID groupthrows IOException {
		return new GetGroupMembers(usergroup).execute();
	}
	public List<PersonRolegetGroupRoles(User userUUID groupUuidthrows IOException {
		return new GetGroupRoles(usergroupUuid).execute();
	}
	public List<GroupgetGroups(User userthrows IOException {
		return new GetGroups(user).execute();
	}
	public Person getPerson(User userUUID personUuidthrows IOException {
		List<Personr = new GetPerson(userpersonUuid).execute();
		if(r == null || r.size() == 0) {
			return null;
		}
		return r.get(0);
	}
	public Person getPersonByEmail(User userString emailthrows IOException {
		List<Personr = new GetPersonByEmail(useremail).execute();
		if(r == null || r.size() == 0) {
			return null;
		}
		return r.get(0);
	}
	public long exportPeople(User userQueryResultHandler<Personhandlerthrows IOException {
		long count = 0;
		List<LongQueryResultr = new ExportPeople(this.getDataSource(), userhandler).execute();
		if(r.size() > 0) {
			count = r.get(0).getLong();
		}
		return count;
	}
	public long countPeople(User userthrows IOException {
		long count = 0;
		List<LongQueryResultr = new GetPersonCount(thisuser).execute();
		if(r.size() > 0) {
			count = r.get(0).getLong();
		}
		return count;
	}
	public List<GroupgetPersonGroups(User userUUID personUuidthrows IOException {
		return new GetPersonGroups(userpersonUuid).execute();
	}
	public List<PersonRolegetPersonRoles(User userUUID personUuidthrows IOException {
		return new GetPersonRoles(userpersonUuid).execute();
	}
	public User getUserSession(String siteString tokenString ipthrows IOException {
		List<Userr = new GetSession(thissitetokenip).execute();
		if(r == null || r.size() == 0) {
			return null;
		}
		return r.get(0);
	}
	public boolean hasPersonRecord() throws IOException {
		return r != null && r.size() > 0 && r.get(0).getInteger() > 0;
	}
	public List<KeyValueinvalidateSession(String siteString tokenString ipthrows IOException {
		return new InvalidateSession(sitetokenip).execute();
	}
	public void joinGroup(User userUUID groupUUID personthrows IOException {
		new JoinGroup(usergroupperson).run();
	}
	public void leaveGroup(User userUUID groupUUID personthrows IOException {
		new LeaveGroup(usergroupperson).run();
	}
	public List<StringQueryResultrequestPasswordResetEmail(TemplateManager templatesString siteString emailString ipthrows IOException {
		return new RequestPasswordResetEmail(thistemplatessiteemailip).execute();
	}
	public void resetPasswordUsingToken(String tokenString passwordString password2String ipthrows IOException {
		new ResetPasswordUsingToken(tokenpasswordpassword2ip).run();
	}
	public List<PersonsearchPeople(User userString keywordsthrows IOException {
		return new SearchPeople(userkeywords).execute();
	}
	public void setPendingEmailStatus(UUID uuidString errorthrows IOException {
		new SetPendingEmailStatus(uuiderror).run();
	}
	public List<LocationgetLocationByIP(String ipthrows IOException {
		return new GetLocationByIP(thisip).run();
	}
	public List<KeyValuesignUp(TemplateManager templateManagerUser userString siteString firstNameString lastNameString emailString usernameString passwordString ipthrows IOException {
		return new SignUp(templateManagerusersitefirstNamelastNameemailusernamepasswordip).run();
	}
	public List<StringQueryResultsignUpConfirmation(String requestTokenString ipthrows IOException {
		return new SignUpConfirmation(thisrequestTokenip).run();
	}
	public void updatePerson(User userUUID uuidString firstNameString lastNameString emailString expirythrows IOException {
		new UpdatePerson(useruuidfirstNamelastNameemailexpiry).run();
	}
	public UUID addGroup(User userString nameint typethrows IOException {
		List<UuidQueryResultr = new AddGroup(usernametype).run();
		if(r == null || r.size() == 0) {
			return null;
		}
		return r.get(0).getUUID();
	}
	public void updateGroup(User userUUID uuidString nameint typethrows IOException {
		new UpsertGroup(useruuidnametype).run();
	}
	public void upsertGroupResourceRole(User userUUID groupUuidString roleString resourceString uidthrows IOException {
		new UpsertGroupResourceRole(usergroupUuidroleresourceuid).run();
	}
	public void upsertGroupRole(User userUUID groupUuidString rolethrows IOException {
		new UpsertGroupRole(usergroupUuidrole).run();
	}
	public void upsertResourceRole(User userUUID personUuidString roleString resourceString uidthrows IOException {
		new UpsertResourceRole(userpersonUuidroleresourceuid).run();
	}
	public void upsertRole(User userUUID personUuidString rolethrows IOException {
		new UpsertRole(userpersonUuidrole).run();
	}
	public void log(String levelUser userString messageResourceUid[] resourcesthrows IOException {
		try {
			base.jee.api.sql.util.Log.log(levelusermessageresources);
catch(SQLException e) {
			throw new IOException(e);
		}
	}
	public void expireTokens() throws IOException {
	}
	public void expireLogEntries() throws IOException {
	}
	public void wipe() throws IOException {
		Connection c = null;
		try {
			truncate(c"base_group");
			truncate(c"base_log");
			truncate(c"base_log_type");
			truncate(c"email");
			truncate(c"group_member");
			truncate(c"ip_location");
			truncate(c"location");
			truncate(c"person");
			truncate(c"request_token");
			truncate(c"role");
			truncate(c"setting");
			truncate(c"template_resource");
			truncate(c"template");
			truncate(c"throttle");
			truncate(c"token");
catch(SQLException e) {
			throw new IOException(e);
finally {
			if(c != null) {
				try { c.commit(); } catch(SQLException e) {}
				try { c.close(); } catch(SQLException e) {}
			}
		}
	}
	private static final MemCache ROLES = new MemCache(5*60);

Returns roles associated with the "All users" group, and the "Authenticated users" group.
		Set<Stringroles = (Set<String>) .getItem("a");
		if(roles == null) {
			Connection c = null;
			try {
				Set<Stringauth = base.jee.api.sql.util.GetGroupRoles.getGroupRoles(c.);
				Set<Stringall = base.jee.api.sql.util.GetGroupRoles.getGroupRoles(c.);
				auth.addAll(all);
				.addItem(all"u");
				.addItem(auth"a");
				roles = auth;
catch(SQLException e) {
				throw new IOException(e);
finally {
				if(c != null) {
					try { c.rollback(); } catch(SQLException e) {}
					try { c.close(); } catch(SQLException e) {}
				}
			}
		}
		return roles;
	}

Returns roles associated with the "All users" group.
		Set<Stringroles = (Set<String>) .getItem("u");
		if(roles == null) {
			Connection c = null;
			try {
				Set<Stringauth = base.jee.api.sql.util.GetGroupRoles.getGroupRoles(c.);
				Set<Stringall = base.jee.api.sql.util.GetGroupRoles.getGroupRoles(c.);
				auth.addAll(all);
				.addItem(all"u");
				.addItem(auth"a");
				roles = all;
catch(SQLException e) {
				throw new IOException(e);
finally {
				if(c != null) {
					try { c.rollback(); } catch(SQLException e) {}
					try { c.close(); } catch(SQLException e) {}
				}
			}
		}
		return roles;
	}
	private void truncate(Connection cString tablethrows IOException {
		PreparedStatement s = null;
		try {
			s = c.prepareStatement("delete from " + table);
			s.close();
			s = null;
catch(SQLException e) {
			throw new IOException(e);
finally {
			if(s != null) {
				try { s.close(); } catch(SQLException e) {}
			}
		}
	}
New to GrepCode? Check out our FAQ X