@Override public void removeUsers(User user) { if (user.isRoot() || user.isGuest()) { throw new IllegalRemovalException("You can't remove " + user.getName()); } else { super.removeUsers(user); } }
protected void removeUsers(String username) throws IllegalRemovalException, UserUnknownException { hasUser(username); if (username.equals(ROOT_USER)) throw new IllegalRemovalException(username); else { User toRemove = getUserByUsername(username); toRemove.remove(); super.removeUsers(toRemove); } }
@Override public void addUsers(User user) throws UserAlreadyExistsException, PasswordIsTooWeakException { try { hasUser(user.getUsername()); } catch (UserUnknownException e) { super.addUsers(user); return; } throw new UserAlreadyExistsException(user.getUsername()); }
public FileSystem(MyDriveManager mdm) { super(); setMyDriveManager(mdm); super.setIdSeed(0); Root root = new Root(); this.addUsers(root); try { super.setFsRoot( new Directory(this.generateUniqueId(), PATH_DELIM, root.getUmask(), root, this)); } catch (InvalidFileNameException | InvalidMaskException e) { /* This exception should not occur it only exists to protect the method against * bad programming */ log.trace(e.getMessage()); e.printStackTrace(); } Directory home = new Directory(generateUniqueId(), HOME_DIR, root.getUmask(), root, getSlash()); addToSlash(home); Directory rootHomeDirectory = new Directory(generateUniqueId(), root.getUsername(), root.getUmask(), root, home); home.addFile(rootHomeDirectory); root.setHomeDirectory((Directory) home.getFileByName(ROOT_USER)); Guest guest = new Guest(); Directory guestHomeDirectory = new Directory(generateUniqueId(), guest.getUsername(), guest.getUmask(), guest, home); home.addFile(guestHomeDirectory); guest.setHomeDirectory((Directory) home.getFileByName(GUEST_USER)); addUsers(guest); }
public void addUsers(String username) throws UserAlreadyExistsException, InvalidUsernameException, PasswordIsTooWeakException { try { hasUser(username); } catch (UserUnknownException e) { User toCreate = new User(username, this); Directory homeDirectory = new Directory( this.generateUniqueId(), username, toCreate.getUmask(), toCreate, getHomeDirectory()); this.addDirectoryToHome(homeDirectory); toCreate.setHomeDirectory(homeDirectory); super.addUsers(toCreate); return; } throw new UserAlreadyExistsException(username); }
private void xmlImportUser(List<Element> user) throws ImportDocumentException, PasswordIsTooWeakException { for (Element node : user) { String username = node.getAttributeValue("username"); User toInsert; try { this.getUserByUsername(username); } catch (UserAlreadyExistsException e) { e.getMessage(); throw new ImportDocumentException(); } catch (UserUnknownException e) { toInsert = new User(username, this); if (node.getChild("password") != null) toInsert.setPassword(node.getChild("password").getValue()); if (node.getChild("name") != null) toInsert.setName(node.getChild("name").getValue()); if (node.getChild("mask") != null) toInsert.setUmask(node.getChild("mask").getValue()); if (node.getChild("home") != null) { String[] tokens = node.getChild("home").getValue().split(PATH_DELIM); toInsert.setHomeDirectory( createDir( createPath(node.getChild("home").getValue()), tokens[tokens.length - 1], toInsert)); } else { Directory homeDirectory = new Directory( this.generateUniqueId(), username, toInsert.getUmask(), toInsert, getHomeDirectory()); toInsert.setHomeDirectory(homeDirectory); this.addDirectoryToHome(homeDirectory); } super.addUsers(toInsert); } } }
@Override public void setMyDriveManager(MyDriveManager mngr) { if (mngr == null) { super.setMyDriveManager(null); } else mngr.setFilesystem(this); }
private void addToSlash(File file) { super.getFsRoot().addFile(file); }
/* Uniques Ids */ private int generateUniqueId() { Integer idSeed = super.getIdSeed(); super.setIdSeed(++idSeed); return idSeed; }