Search in sources :

Example 1 with User

use of com.joliciel.jochre.security.User in project jochre by urieli.

the class UpdateDocumentController method doAfterCompose.

@Override
public void doAfterCompose(Window window) throws Exception {
    super.doAfterCompose(window);
    Session session = Sessions.getCurrent();
    User user = (User) session.getAttribute(LoginController.SESSION_JOCHRE_USER);
    if (user == null)
        Executions.sendRedirect("login.zul");
    DocumentDao documentDao = DocumentDao.getInstance(jochreSession);
    List<Author> authors = documentDao.findAuthors();
    List<Comboitem> authorItems = cmbAuthors.getItems();
    for (Author author : authors) {
        Comboitem item = new Comboitem(author.getFullName());
        item.setValue(author.getId());
        authorItems.add(item);
    }
    lstAuthors.setItemRenderer(new AuthorListItemRenderer());
    winUpdateDocument.addEventListener("onModalOpen", new UpdateDocumentControllerModalListener());
}
Also used : AuthorListItemRenderer(com.joliciel.jochre.web.DocumentController.AuthorListItemRenderer) User(com.joliciel.jochre.security.User) Author(com.joliciel.jochre.doc.Author) Comboitem(org.zkoss.zul.Comboitem) DocumentDao(com.joliciel.jochre.doc.DocumentDao) JochreSession(com.joliciel.jochre.JochreSession) Session(org.zkoss.zk.ui.Session)

Example 2 with User

use of com.joliciel.jochre.security.User in project jochre by urieli.

the class ImageController method doAfterCompose.

@Override
public void doAfterCompose(Window window) throws Exception {
    super.doAfterCompose(window);
    Session session = Sessions.getCurrent();
    currentUser = (User) session.getAttribute(LoginController.SESSION_JOCHRE_USER);
    if (currentUser == null)
        Executions.sendRedirect("login.zul");
    // comp.setVariable(comp.getId() + "Ctrl", this, true);
    hebrewAccentsSpan.setContent("var hebrewAccents=\"" + HEBREW_ACCENTS + "\";");
    rowGrid.setRowRenderer(new ImageGridRowRenderer());
    HttpServletRequest request = (HttpServletRequest) Executions.getCurrent().getNativeRequest();
    imageId = Integer.parseInt(request.getParameter("imageId"));
    GraphicsDao graphicsDao = GraphicsDao.getInstance(jochreSession);
    currentImage = graphicsDao.loadJochreImage(imageId);
    docId = currentImage.getPage().getDocumentId();
    currentImageOwner = (currentUser.getRole().equals(UserRole.ADMIN) || currentImage.getOwner().equals(currentUser));
    if (!currentImageOwner) {
        btnSave.setVisible(false);
        btnSave2.setVisible(false);
        btnSaveAndExit.setVisible(false);
        btnSaveAndExit2.setVisible(false);
        cmbStatus.setVisible(false);
        lblImageStatus.setVisible(true);
    } else {
        btnSave.setVisible(true);
        btnSave2.setVisible(true);
        btnSaveAndExit.setVisible(true);
        btnSaveAndExit2.setVisible(true);
        cmbStatus.setVisible(true);
        lblImageStatus.setVisible(false);
    }
    if (currentUser.getRole().equals(UserRole.ADMIN)) {
        cmbOwner.setVisible(true);
        lblOwner.setVisible(false);
        SecurityDao securityDao = SecurityDao.getInstance(jochreSession);
        List<User> users = securityDao.findUsers();
        List<Comboitem> cmbOwnerItems = cmbOwner.getItems();
        Comboitem selectedUser = null;
        for (User user : users) {
            Comboitem item = new Comboitem(user.getFullName());
            item.setValue(user);
            if (currentImage.getOwner().equals(user))
                selectedUser = item;
            cmbOwnerItems.add(item);
        }
        cmbOwner.setSelectedItem(selectedUser);
    } else {
        cmbOwner.setVisible(false);
        lblOwner.setVisible(true);
        lblOwner.setValue(currentImage.getOwner().getFullName());
    }
    String pageTitle = Labels.getLabel("image.title");
    winJochreImage.getPage().setTitle(pageTitle);
    String windowTitle = Labels.getLabel("image.winJochreImage.title", new Object[] { currentImage.getPage().getDocument().getName(), currentImage.getPage().getIndex() });
    winJochreImage.setTitle(windowTitle);
    List<Comboitem> cmbStatusItems = cmbStatus.getItems();
    Comboitem selectedItem = null;
    List<ImageStatus> imageStatuses = new ArrayList<ImageStatus>();
    if (currentUser.getRole().equals(UserRole.ADMIN)) {
        for (ImageStatus imageStatus : ImageStatus.values()) {
            imageStatuses.add(imageStatus);
        }
    } else if (currentImage.getImageStatus().equals(ImageStatus.AUTO_NEW) || currentImage.getImageStatus().equals(ImageStatus.AUTO_VALIDATED)) {
        imageStatuses.add(ImageStatus.AUTO_NEW);
        imageStatuses.add(ImageStatus.AUTO_VALIDATED);
    } else {
        // a bit dangerous - leaving the image as "training" and allowing
        // modifications, but oh well!
        imageStatuses.add(currentImage.getImageStatus());
    }
    for (ImageStatus imageStatus : imageStatuses) {
        String statusLabel = Labels.getLabel("ImageStatus." + imageStatus.getCode());
        Comboitem item = new Comboitem(statusLabel);
        item.setValue(imageStatus.getId());
        if (currentImage.getImageStatus().equals(imageStatus))
            selectedItem = item;
        cmbStatusItems.add(item);
    }
    cmbStatus.setSelectedItem(selectedItem);
    lblImageStatus.setValue(Labels.getLabel("ImageStatus." + currentImage.getImageStatus().getCode()));
    reloadRowGrid();
}
Also used : User(com.joliciel.jochre.security.User) ImageStatus(com.joliciel.jochre.graphics.ImageStatus) ArrayList(java.util.ArrayList) HttpServletRequest(javax.servlet.http.HttpServletRequest) GraphicsDao(com.joliciel.jochre.graphics.GraphicsDao) Comboitem(org.zkoss.zul.Comboitem) JochreSession(com.joliciel.jochre.JochreSession) Session(org.zkoss.zk.ui.Session) SecurityDao(com.joliciel.jochre.security.SecurityDao)

Example 3 with User

use of com.joliciel.jochre.security.User in project jochre by urieli.

the class ImageController method save.

void save() {
    try {
        Comboitem selectedItem = cmbStatus.getSelectedItem();
        ImageStatus imageStatus = ImageStatus.forId((Integer) selectedItem.getValue());
        currentImage.setImageStatus(imageStatus);
        if (currentUser.getRole().equals(UserRole.ADMIN)) {
            User owner = (User) cmbOwner.getSelectedItem().getValue();
            currentImage.setOwner(owner);
        }
        GraphicsDao graphicsDao = GraphicsDao.getInstance(jochreSession);
        graphicsDao.saveJochreImage(currentImage);
        for (Paragraph paragraph : currentImage.getParagraphs()) {
            LOG.trace("Paragraph " + paragraph.getIndex() + ", " + paragraph.getRows().size() + " rows");
            for (RowOfShapes row : paragraph.getRows()) {
                List<List<String>> letterGroups = this.getLetterGroups(row);
                LOG.trace("Row " + row.getIndex() + ", " + row.getGroups().size() + " groups, " + letterGroups.size() + " letter groups");
                Iterator<List<String>> iLetterGroups = letterGroups.iterator();
                for (GroupOfShapes group : row.getGroups()) {
                    LOG.trace("Group " + group.getIndex() + " text : " + group.getWord());
                    boolean hasChange = false;
                    List<String> letters = null;
                    if (iLetterGroups.hasNext())
                        letters = iLetterGroups.next();
                    else
                        letters = new ArrayList<String>();
                    LOG.trace("Found " + letters.size() + " letters in text");
                    Iterator<String> iLetters = letters.iterator();
                    for (Shape shape : group.getShapes()) {
                        String currentLetter = shape.getLetter();
                        if (currentLetter == null)
                            currentLetter = "";
                        String newLetter = "";
                        if (iLetters.hasNext())
                            newLetter = iLetters.next();
                        if (newLetter.startsWith("[") && newLetter.endsWith("]")) {
                            newLetter = newLetter.substring(1, newLetter.length() - 1);
                        }
                        LOG.trace("currentLetter:  " + currentLetter + ", newLetter: " + newLetter);
                        if (!currentLetter.equals(newLetter)) {
                            LOG.trace("newLetter: " + newLetter);
                            shape.setLetter(newLetter);
                            shape.save();
                            hasChange = true;
                        }
                    }
                    if (hasChange)
                        LOG.trace("Group text after : " + group.getWord());
                }
            // next group
            }
        // next row
        }
        // next paragraph
        Messagebox.show(Labels.getLabel("button.saveComplete"));
    } catch (Exception e) {
        LOG.error("Failure in save", e);
        throw new RuntimeException(e);
    }
}
Also used : User(com.joliciel.jochre.security.User) Shape(com.joliciel.jochre.graphics.Shape) ImageStatus(com.joliciel.jochre.graphics.ImageStatus) ArrayList(java.util.ArrayList) RowOfShapes(com.joliciel.jochre.graphics.RowOfShapes) Paragraph(com.joliciel.jochre.graphics.Paragraph) GraphicsDao(com.joliciel.jochre.graphics.GraphicsDao) GroupOfShapes(com.joliciel.jochre.graphics.GroupOfShapes) Comboitem(org.zkoss.zul.Comboitem) List(java.util.List) ArrayList(java.util.ArrayList)

Example 4 with User

use of com.joliciel.jochre.security.User in project jochre by urieli.

the class LoginController method onClick$btnLogin.

@Listen("onClick = #btnLogin")
public void onClick$btnLogin(Event event) {
    try {
        LOG.debug("onClick$btnLogin");
        Session session = Sessions.getCurrent();
        SecurityDao securityDao = SecurityDao.getInstance(jochreSession);
        User user = null;
        try {
            user = securityDao.findUser(txtUserName.getValue());
        } catch (EntityNotFoundException enfe) {
            LOG.debug("Unknown user: " + txtUserName.getValue());
            lblError.setVisible(true);
        }
        if (user != null) {
            boolean success = user.login(txtPassword.getValue());
            if (!success) {
                LOG.debug("Login failed");
                lblError.setVisible(true);
                Parameters parameters = securityDao.loadParameters();
                Date lastFailedLoginAttempt = parameters.getLastFailedLoginAttempt();
                Date now = new Date();
                long diff = now.getTime() - lastFailedLoginAttempt.getTime();
                LOG.debug("time since last failed login: " + diff);
            } else {
                LOG.debug("Login success");
                session.setAttribute(SESSION_JOCHRE_USER, user);
                Executions.sendRedirect("docs.zul");
            }
        }
    } catch (Exception e) {
        LOG.error("Failure in onClick$btnLogin", e);
        throw new RuntimeException(e);
    }
}
Also used : User(com.joliciel.jochre.security.User) Parameters(com.joliciel.jochre.security.Parameters) EntityNotFoundException(com.joliciel.jochre.EntityNotFoundException) Date(java.util.Date) EntityNotFoundException(com.joliciel.jochre.EntityNotFoundException) Session(org.zkoss.zk.ui.Session) JochreSession(com.joliciel.jochre.JochreSession) SecurityDao(com.joliciel.jochre.security.SecurityDao) Listen(org.zkoss.zk.ui.select.annotation.Listen)

Example 5 with User

use of com.joliciel.jochre.security.User in project jochre by urieli.

the class MenuController method doAfterCompose.

@Override
public void doAfterCompose(Panel panel) throws Exception {
    super.doAfterCompose(panel);
    LOG.debug("MenuController");
    Session session = Sessions.getCurrent();
    User currentUser = (User) session.getAttribute(LoginController.SESSION_JOCHRE_USER);
    if (currentUser != null) {
        lblName.setValue(currentUser.getFirstName() + " " + currentUser.getLastName());
        toolbar1.setVisible(true);
    } else {
        lblName.setValue("");
        toolbar1.setVisible(false);
    }
    lblCorpusName.setValue(JochreProperties.getInstance().getJochreSession().getConfig().getConfig("jochre.web").getString("corpus-name"));
}
Also used : User(com.joliciel.jochre.security.User) Session(org.zkoss.zk.ui.Session)

Aggregations

User (com.joliciel.jochre.security.User)9 Session (org.zkoss.zk.ui.Session)6 SecurityDao (com.joliciel.jochre.security.SecurityDao)4 JochreSession (com.joliciel.jochre.JochreSession)3 GraphicsDao (com.joliciel.jochre.graphics.GraphicsDao)3 ImageStatus (com.joliciel.jochre.graphics.ImageStatus)3 ArrayList (java.util.ArrayList)3 ImageDocumentExtractor (com.joliciel.jochre.doc.ImageDocumentExtractor)2 JochreDocumentGenerator (com.joliciel.jochre.doc.JochreDocumentGenerator)2 Shape (com.joliciel.jochre.graphics.Shape)2 PdfDocumentProcessor (com.joliciel.jochre.pdf.PdfDocumentProcessor)2 File (java.io.File)2 List (java.util.List)2 Listen (org.zkoss.zk.ui.select.annotation.Listen)2 Comboitem (org.zkoss.zul.Comboitem)2 EntityNotFoundException (com.joliciel.jochre.EntityNotFoundException)1 BeamSearchImageAnalyser (com.joliciel.jochre.analyser.BeamSearchImageAnalyser)1 ErrorLogger (com.joliciel.jochre.analyser.ErrorLogger)1 FScoreObserver (com.joliciel.jochre.analyser.FScoreObserver)1 ImageAnalyser (com.joliciel.jochre.analyser.ImageAnalyser)1