Skip to content

Instantly share code, notes, and snippets.

@tgmweb
Created February 13, 2015 04:47
Show Gist options
  • Save tgmweb/1fdf78d91c876b30b6a7 to your computer and use it in GitHub Desktop.
Save tgmweb/1fdf78d91c876b30b6a7 to your computer and use it in GitHub Desktop.
package uk.ebiz.lucee.controller;
import io.milton.annotations.*;
import io.milton.http.http11.auth.DigestGenerator;
import io.milton.http.http11.auth.DigestResponse;
import io.milton.resource.AccessControlledResource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import uk.ebiz.lucee.communicator.LuceeCommunicator;
import uk.ebiz.lucee.filter.custom.CustomFilter;
import uk.ebiz.lucee.model.APIUser;
import uk.ebiz.lucee.model.Folder;
import java.util.ArrayList;
import java.util.List;
@ResourceController
public class UserController {
private final static Logger logger = LoggerFactory.getLogger(UserController.class);
private DigestGenerator digestGenerator = new DigestGenerator();
private LuceeCommunicator communicator = new LuceeCommunicator();
private final List<APIUser> users = new ArrayList<APIUser>();
public UserController() {
logger.info("User Controller was started");
}
@Name
public String getUserControllerName(APIUser user) {
return user.getName();
}
@ChildrenOf
public Folder getUsersHome(UserController root) {
return new Folder();
}
@ChildrenOf
@Users
public List<APIUser> getUsers(UserController root) {
logger.info("Get users");
List<APIUser> list = findAll();
return list;
}
@ChildOf
@Users
public APIUser findMusicianByName(UserController root, String name) {
logger.info("Find user");
return find(name);
}
@Authenticate
public Boolean verifyDigestPassword(APIUser m, DigestResponse digest) {
logger.info("Check credentials - digest");
// compared requested password digest with persisted password digest or plain text password
return false;
}
@Authenticate
public Boolean verifyDigestPassword(APIUser m, String requestedPassword) {
logger.info("Check credentials");
// compared requested password digest with persisted password digest or plain text password
return false;
}
@MakeCollection
public APIUser createAndSaveMusician(UserController root, String newName) {
logger.info("create User??");
APIUser m = new APIUser();
m.setName(newName);
return m;
}
@AccessControlList
public List<AccessControlledResource.Priviledge> getMusicianPrivs(APIUser target, APIUser currentUser) {
logger.info("create User??");
if( target == currentUser ) {
return AccessControlledResource.READ_WRITE;
} else {
// This prevents read access to each others calendars
return AccessControlledResource.NONE;
// This gives read access to each others calendars
//return AccessControlledResource.READ_CONTENT;
}
}
public List<APIUser> findAll() {
logger.info("List all users?");
return communicator.getUsers();
}
public APIUser find(String userName) {
// return static user
logger.info("Find User?");
return communicator.getUser(userName);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment