Search in sources :

Example 1 with User

use of org.goobi.beans.User in project goobi-workflow by intranda.

the class WebDav method getAnzahlBaende.

public int getAnzahlBaende(String inVerzeichnis) {
    try {
        User aktuellerBenutzer = Helper.getCurrentUser();
        String VerzeichnisAlle = aktuellerBenutzer.getHomeDir() + inVerzeichnis;
        return StorageProvider.getInstance().list(VerzeichnisAlle, new WebDavFilter()).size();
    } catch (Exception e) {
        log.error(e);
        return 0;
    }
}
Also used : User(org.goobi.beans.User) WebDavFilter(org.goobi.io.WebDavFilter) IOException(java.io.IOException)

Example 2 with User

use of org.goobi.beans.User in project goobi-workflow by intranda.

the class WebDav method removeFromHomeAlle.

/**
 * Remove Folders from Directory ================================================================
 */
// TODO: Use generic types
public void removeFromHomeAlle(List<String> inList, String inVerzeichnis) {
    String VerzeichnisAlle;
    User aktuellerBenutzer = Helper.getCurrentUser();
    try {
        VerzeichnisAlle = aktuellerBenutzer.getHomeDir() + inVerzeichnis;
    } catch (Exception ioe) {
        log.error("Exception RemoveFromHomeAlle()", ioe);
        Helper.setFehlerMeldung("Upload stopped, error", ioe.getMessage());
        return;
    }
    for (Iterator<String> it = inList.iterator(); it.hasNext(); ) {
        String myname = it.next();
        FilesystemHelper.deleteSymLink(VerzeichnisAlle + myname);
    }
}
Also used : User(org.goobi.beans.User) IOException(java.io.IOException)

Example 3 with User

use of org.goobi.beans.User in project goobi-workflow by intranda.

the class StepBean method SchrittDurchBenutzerUebernehmen.

/*
     * Bearbeitung des Schritts übernehmen oder abschliessen
     */
public String SchrittDurchBenutzerUebernehmen() {
    // synchronized (this.flagWait) {
    // 
    // if (!this.flagWait) {
    // this.flagWait = true;
    // Helper.getHibernateSession().clear();
    // Helper.getHibernateSession().refresh(this.mySchritt);
    // reload step
    mySchritt = StepManager.getStepById(mySchritt.getId());
    mySchritt.lazyLoad();
    if (!(this.mySchritt.getBearbeitungsstatusEnum() == StepStatus.OPEN || this.mySchritt.getBearbeitungsstatusEnum() == StepStatus.ERROR)) {
        Helper.setFehlerMeldung("stepInWorkError");
        // this.flagWait = false;
        return "";
    } else {
        this.mySchritt.setBearbeitungsstatusEnum(StepStatus.INWORK);
        this.mySchritt.setEditTypeEnum(StepEditType.MANUAL_SINGLE);
        mySchritt.setBearbeitungszeitpunkt(new Date());
        User ben = Helper.getCurrentUser();
        if (ben != null) {
            mySchritt.setBearbeitungsbenutzer(ben);
        }
        if (this.mySchritt.getBearbeitungsbeginn() == null) {
            Date myDate = new Date();
            this.mySchritt.setBearbeitungsbeginn(myDate);
        }
        SendMail.getInstance().sendMailToAssignedUser(mySchritt, StepStatus.INWORK);
        HistoryManager.addHistory(this.mySchritt.getBearbeitungsbeginn(), this.mySchritt.getReihenfolge().doubleValue(), this.mySchritt.getTitel(), HistoryEventType.stepInWork.getValue(), this.mySchritt.getProzess().getId());
        // this.mySchritt.getTitel(), HistoryEventType.stepInWork, this.mySchritt.getProzess()));
        try {
            /*
                 * den Prozess aktualisieren, so dass der Sortierungshelper gespeichert wird
                 */
            // ProcessManager.saveProcess(this.mySchritt.getProzess());
            StepManager.saveStep(mySchritt);
        } catch (DAOException e) {
            Helper.setFehlerMeldung(Helper.getTranslation("stepSaveError"), e);
            log.error("step couldn't get saved", e);
        // } finally {
        // this.flagWait = false;
        }
        if (this.mySchritt.isTypImagesLesen() || this.mySchritt.isTypImagesSchreiben()) {
            DownloadToHome();
        }
    }
    // }
    return "task_edit";
}
Also used : DAOException(de.sub.goobi.helper.exceptions.DAOException) User(org.goobi.beans.User) Date(java.util.Date)

Example 4 with User

use of org.goobi.beans.User in project goobi-workflow by intranda.

the class UserBean method Neu.

public String Neu() {
    this.myClass = new User();
    this.myClass.setVorname("");
    this.myClass.setNachname("");
    this.myClass.setLogin("");
    this.myClass.setLdaplogin("");
    RandomNumberGenerator rng = new SecureRandomNumberGenerator();
    Object salt = rng.nextBytes();
    this.myClass.setPasswordSalt(salt.toString());
    updateUsergroupPaginator();
    updateProjectPaginator();
    resetChangeLists();
    return "user_edit";
}
Also used : User(org.goobi.beans.User) RandomNumberGenerator(org.apache.shiro.crypto.RandomNumberGenerator) SecureRandomNumberGenerator(org.apache.shiro.crypto.SecureRandomNumberGenerator) SecureRandomNumberGenerator(org.apache.shiro.crypto.SecureRandomNumberGenerator) DatabaseObject(org.goobi.beans.DatabaseObject)

Example 5 with User

use of org.goobi.beans.User in project goobi-workflow by intranda.

the class CopyProcess method NeuenProzessAnlegen2.

/**
 * Anlegen des Prozesses und Speichern der Metadaten ================================================================
 *
 * @throws DAOException
 * @throws SwapException
 * @throws WriteException
 */
public Process NeuenProzessAnlegen2() throws ReadException, IOException, InterruptedException, PreferencesException, SwapException, DAOException, WriteException {
    this.prozessKopie.setId(null);
    EigenschaftenHinzufuegen(null);
    for (Step step : this.prozessKopie.getSchritteList()) {
        /*
             * -------------------------------- always save date and user for each step --------------------------------
             */
        step.setBearbeitungszeitpunkt(this.prozessKopie.getErstellungsdatum());
        step.setEditTypeEnum(StepEditType.AUTOMATIC);
        User user = Helper.getCurrentUser();
        if (user != null) {
            step.setBearbeitungsbenutzer(user);
        }
        /*
             * -------------------------------- only if its done, set edit start and end date --------------------------------
             */
        if (step.getBearbeitungsstatusEnum() == StepStatus.DONE) {
            step.setBearbeitungsbeginn(this.prozessKopie.getErstellungsdatum());
            // this concerns steps, which are set as done right on creation
            // bearbeitungsbeginn is set to creation timestamp of process
            // because the creation of it is basically begin of work
            Date myDate = new Date();
            step.setBearbeitungszeitpunkt(myDate);
            step.setBearbeitungsende(myDate);
        }
    }
    try {
        ProcessManager.saveProcess(this.prozessKopie);
    // dao.refresh(this.prozessKopie);
    } catch (DAOException e) {
        e.printStackTrace();
        log.error("error on save: ", e);
        return this.prozessKopie;
    }
    /*
         * wenn noch keine RDF-Datei vorhanden ist (weil keine Opac-Abfrage stattfand, dann jetzt eine anlegen
         */
    if (this.myRdf == null) {
        createNewFileformat();
    }
    // * --------------------------------*/
    if (this.updateData) {
        if (this.myRdf != null) {
            for (AdditionalField field : this.additionalFields) {
                if (field.isUghbinding() && field.getShowDependingOnDoctype(getDocType())) {
                    /* welches Docstruct */
                    DocStruct myTempStruct = this.myRdf.getDigitalDocument().getLogicalDocStruct();
                    DocStruct myTempChild = null;
                    if (field.getDocstruct().equals("firstchild")) {
                        try {
                            myTempStruct = this.myRdf.getDigitalDocument().getLogicalDocStruct().getAllChildren().get(0);
                        } catch (RuntimeException e) {
                        /*
                                 * das Firstchild unterhalb des Topstructs konnte nicht ermittelt werden
                                 */
                        }
                    }
                    /*
                         * falls topstruct und firstchild das Metadatum bekommen sollen
                         */
                    if (!field.getDocstruct().equals("firstchild") && field.getDocstruct().contains("firstchild")) {
                        try {
                            myTempChild = this.myRdf.getDigitalDocument().getLogicalDocStruct().getAllChildren().get(0);
                        } catch (RuntimeException e) {
                        }
                    }
                    if (field.getDocstruct().equals("boundbook")) {
                        myTempStruct = this.myRdf.getDigitalDocument().getPhysicalDocStruct();
                    }
                    /* welches Metadatum */
                    try {
                        /*
                             * bis auf die Autoren alle additionals in die Metadaten übernehmen
                             */
                        if (!field.getMetadata().equals("ListOfCreators")) {
                            MetadataType mdt = this.ughHelp.getMetadataType(this.prozessKopie.getRegelsatz().getPreferences(), field.getMetadata());
                            Metadata md = this.ughHelp.getMetadata(myTempStruct, mdt);
                            /*
                                 * wenn das Metadatum null ist, dann jetzt initialisieren
                                 */
                            if (md == null) {
                                md = new Metadata(mdt);
                                md.setParent(myTempStruct);
                                myTempStruct.addMetadata(md);
                            }
                            md.setValue(field.getWert());
                            /*
                                 * wenn dem Topstruct und dem Firstchild der Wert gegeben werden soll
                                 */
                            if (myTempChild != null) {
                                md = this.ughHelp.getMetadata(myTempChild, mdt);
                                md.setValue(field.getWert());
                            }
                        }
                    } catch (NullPointerException e) {
                    } catch (UghHelperException e) {
                    } catch (MetadataTypeNotAllowedException e) {
                    }
                }
            // end if ughbinding
            }
            // end for
            /*
                 * -------------------------------- Collectionen hinzufügen --------------------------------
                 */
            DocStruct colStruct = this.myRdf.getDigitalDocument().getLogicalDocStruct();
            try {
                addCollections(colStruct);
                /*
                     * falls ein erstes Kind vorhanden ist, sind die Collectionen dafür
                     */
                colStruct = colStruct.getAllChildren().get(0);
                addCollections(colStruct);
            } catch (RuntimeException e) {
            /*
                     * das Firstchild unterhalb des Topstructs konnte nicht ermittelt werden
                     */
            }
            /*
                 * -------------------------------- Imagepfad hinzufügen (evtl. vorhandene zunächst löschen) --------------------------------
                 */
            try {
                DigitalDocument dd = this.myRdf.getDigitalDocument();
                DocStructType dst = this.prozessVorlage.getRegelsatz().getPreferences().getDocStrctTypeByName("BoundBook");
                DocStruct dsBoundBook = dd.createDocStruct(dst);
                dd.setPhysicalDocStruct(dsBoundBook);
                UghHelper ughhelp = new UghHelper();
                MetadataType mdt = ughhelp.getMetadataType(this.prozessKopie, "pathimagefiles");
                if (this.myRdf != null && this.myRdf.getDigitalDocument() != null && this.myRdf.getDigitalDocument().getPhysicalDocStruct() != null) {
                    List<? extends Metadata> alleImagepfade = this.myRdf.getDigitalDocument().getPhysicalDocStruct().getAllMetadataByType(mdt);
                    if (alleImagepfade != null && alleImagepfade.size() > 0) {
                        for (Metadata md : alleImagepfade) {
                            this.myRdf.getDigitalDocument().getPhysicalDocStruct().getAllMetadata().remove(md);
                        }
                    }
                    Metadata newmd = new Metadata(mdt);
                    newmd.setValue(prozessKopie.getImagesTifDirectory(false));
                    this.myRdf.getDigitalDocument().getPhysicalDocStruct().addMetadata(newmd);
                }
                /* Rdf-File schreiben */
                this.prozessKopie.writeMetadataFile(this.myRdf);
                /*
                     * -------------------------------- soll der Prozess als Vorlage verwendet werden? --------------------------------
                     */
                if (this.useTemplates && this.prozessKopie.isInAuswahllisteAnzeigen()) {
                    this.prozessKopie.writeMetadataAsTemplateFile(this.myRdf);
                }
            } catch (ugh.exceptions.DocStructHasNoTypeException e) {
                Helper.setFehlerMeldung("DocStructHasNoTypeException", e.getMessage());
                log.error("creation of new process throws an error: ", e);
            } catch (UghHelperException e) {
                Helper.setFehlerMeldung("UghHelperException", e.getMessage());
                log.error("creation of new process throws an error: ", e);
            } catch (MetadataTypeNotAllowedException e) {
                Helper.setFehlerMeldung("MetadataTypeNotAllowedException", e.getMessage());
                log.error("creation of new process throws an error: ", e);
            } catch (TypeNotAllowedForParentException e) {
                log.error(e);
            }
        }
    } else {
        this.prozessKopie.writeMetadataFile(this.myRdf);
    }
    // Adding process to history
    if (!HistoryAnalyserJob.updateHistoryForProzess(this.prozessKopie)) {
        Helper.setFehlerMeldung("historyNotUpdated");
    } else {
        try {
            ProcessManager.saveProcess(this.prozessKopie);
        } catch (DAOException e) {
            e.printStackTrace();
            log.error("error on save: ", e);
            return this.prozessKopie;
        }
    }
    this.prozessKopie.readMetadataFile();
    return this.prozessKopie;
}
Also used : TypeNotAllowedForParentException(ugh.exceptions.TypeNotAllowedForParentException) User(org.goobi.beans.User) MetadataType(ugh.dl.MetadataType) Metadata(ugh.dl.Metadata) Step(org.goobi.beans.Step) DigitalDocument(ugh.dl.DigitalDocument) Date(java.util.Date) DAOException(de.sub.goobi.helper.exceptions.DAOException) DocStructHasNoTypeException(ugh.exceptions.DocStructHasNoTypeException) AdditionalField(de.sub.goobi.forms.AdditionalField) MetadataTypeNotAllowedException(ugh.exceptions.MetadataTypeNotAllowedException) DocStructType(ugh.dl.DocStructType) UghHelperException(de.sub.goobi.helper.exceptions.UghHelperException) UghHelper(de.sub.goobi.helper.UghHelper) DocStruct(ugh.dl.DocStruct)

Aggregations

User (org.goobi.beans.User)67 DAOException (de.sub.goobi.helper.exceptions.DAOException)28 Date (java.util.Date)22 Step (org.goobi.beans.Step)20 IOException (java.io.IOException)12 ArrayList (java.util.ArrayList)11 Connection (java.sql.Connection)9 QueryRunner (org.apache.commons.dbutils.QueryRunner)9 LogEntry (org.goobi.beans.LogEntry)9 SwapException (de.sub.goobi.helper.exceptions.SwapException)7 Path (java.nio.file.Path)7 AbstractTest (de.sub.goobi.AbstractTest)5 UghHelperException (de.sub.goobi.helper.exceptions.UghHelperException)5 LoginBean (org.goobi.managedbeans.LoginBean)5 Test (org.junit.Test)5 DocStructHasNoTypeException (ugh.exceptions.DocStructHasNoTypeException)5 NoSuchAlgorithmException (java.security.NoSuchAlgorithmException)4 SQLException (java.sql.SQLException)4 ErrorProperty (org.goobi.beans.ErrorProperty)4 Process (org.goobi.beans.Process)4