Search in sources :

Example 1 with UserRolesCreate

use of org.collectionspace.chain.csp.webui.userroles.UserRolesCreate in project application by collectionspace.

the class WebUI method configure_finish.

private void configure_finish(Spec spec) {
    final String MEDIA_RECORD_ID = "media";
    for (Operation op : Operation.values()) tries.put(op, new Trie());
    // Operation.CREATE/UPDATE = method= POST
    // Operation.READ = method= GET
    addMethod(Operation.READ, new String[] { "login" }, 0, new WebLogin(this, spec));
    addMethod(Operation.CREATE, new String[] { "login" }, 0, new WebLogin(this, spec));
    addMethod(Operation.CREATE, new String[] { "uploads" }, 0, new BlobCreateUpdate(spec.getRecord("blobs"), true));
    addMethod(Operation.READ, new String[] { "uploads" }, 0, new BlobCreateUpdate(spec.getRecord("blobs"), true));
    addMethod(Operation.READ, new String[] { "download" }, 1, new BlobRead());
    addMethod(Operation.READ, new String[] { "logout" }, 0, new WebLogout());
    addMethod(Operation.READ, new String[] { "loginstatus" }, 0, new WebLoginStatus(spec));
    addMethod(Operation.READ, new String[] { "authorities", "initialise" }, 0, new WebReset(false, false));
    addMethod(Operation.READ, new String[] { "reset" }, 0, new WebReset(false, true));
    addMethod(Operation.READ, new String[] { "quick-reset" }, 0, new WebReset(true, true));
    // addMethod(Operation.READ,new String[]{find_page,"uispec"},0,new
    // FindEditUISpec(spec.getAllRecords()));//removed as I don't think
    // anyone uses it
    addMethod(Operation.CREATE, new String[] { "passwordreset" }, 0, new UserDetailsReset(false, spec));
    addMethod(Operation.CREATE, new String[] { "resetpassword" }, 0, new UserDetailsReset(true, spec));
    addMethod(Operation.READ, new String[] { "adjacentRecords" }, 2, new RecordTraverser(spec));
    addMethod(Operation.READ, new String[] { "parseDate" }, 0, new StructuredDateParser());
    for (Schemas s : spec.getAllSchemas()) {
        addMethod(Operation.READ, new String[] { s.getWebURL(), "uischema" }, 0, new UISchema(spec, s));
    }
    addMethod(Operation.READ, new String[] { "generator" }, 0, new DataGenerator(spec));
    Record mediaR = spec.getRecord(MEDIA_RECORD_ID);
    if (mediaR == null) {
        log.error("No media record configured!!!");
    }
    for (Record r : spec.getAllRecords()) {
        addMethod(Operation.READ, new String[] { r.getWebURL(), "generator" }, 0, new DataGenerator(r, "screen"));
        addMethod(Operation.READ, new String[] { r.getWebURL(), "serviceschema" }, 0, new ServicesXsd(r, "common"));
        addMethod(Operation.READ, new String[] { r.getWebURL(), "uischema" }, 0, new UISchema(r, "screen"));
        addMethod(Operation.READ, new String[] { r.getTabURL(), "uischema" }, 0, new UISchema(r, "tab"));
        addMethod(Operation.READ, new String[] { r.getSearchURL(), "uischema" }, 0, new UISchema(r, "search"));
        addMethod(Operation.READ, new String[] { r.getWebURL(), "uispec" }, 0, new UISpec(r, "screen"));
        addMethod(Operation.READ, new String[] { r.getTabURL(), "uispec" }, 0, new UISpec(r, "tab"));
        addMethod(Operation.READ, new String[] { r.getSearchURL(), "uispec" }, 0, new UISpec(r, "search"));
        addMethod(Operation.READ, new String[] { r.getWebURL(), "termList" }, 1, new WebTermList(r));
        if (r.isType("authority")) {
            // urls like record urls to make life easier for the UI
            // CSPACE-1139
            addMethod(Operation.READ, new String[] { r.getWebURL() }, 0, new AuthoritiesVocabulariesSearchList(r, false));
            addMethod(Operation.READ, new String[] { r.getWebURL(), "search" }, 0, new AuthoritiesVocabulariesSearchList(r, true));
            addMethod(Operation.CREATE, new String[] { r.getWebURL(), "search" }, 0, new AuthoritiesVocabulariesSearchList(r, true));
            addMethod(Operation.READ, new String[] { "authorities", r.getWebURL() }, 0, new AuthoritiesVocabulariesSearchList(r, false));
            addMethod(Operation.READ, new String[] { "authorities", r.getWebURL(), "search" }, 0, new AuthoritiesVocabulariesSearchList(r, true));
            addMethod(Operation.CREATE, new String[] { "authorities", r.getWebURL(), "search" }, 0, new AuthoritiesVocabulariesSearchList(r, true));
            addMethod(Operation.CREATE, new String[] { "authorities", r.getWebURL() }, 0, new VocabulariesCreateUpdate(r, true));
            addMethod(Operation.READ, new String[] { "authorities", r.getWebURL(), "initialize" }, 0, new AuthoritiesVocabulariesInitialize(r, true));
            addMethod(Operation.READ, new String[] { "authorities", r.getWebURL(), "refresh" }, 0, new AuthoritiesVocabulariesInitialize(r, false));
            // We'll search on media related to the CSID tail.
            if (mediaR != null) {
                addMethod(Operation.READ, new String[] { r.getWebURL(), mediaR.getWebURL() }, 1, new RecordSearchList(mediaR, RecordSearchList.MODE_SEARCH_RELATED));
            }
            for (Instance n : r.getAllInstances()) {
                addMethod(Operation.READ, new String[] { "vocabularies", n.getWebURL() }, 0, new AuthoritiesVocabulariesSearchList(n, false));
                addMethod(Operation.READ, new String[] { "vocabularies", n.getWebURL(), "search" }, 0, new AuthoritiesVocabulariesSearchList(n, true));
                addMethod(Operation.CREATE, new String[] { "vocabularies", n.getWebURL(), "search" }, 0, new AuthoritiesVocabulariesSearchList(n, true));
                addMethod(Operation.READ, new String[] { "vocabularies", n.getWebURL(), "initialize" }, 0, new AuthoritiesVocabulariesInitialize(n, true, true));
                addMethod(Operation.READ, new String[] { "vocabularies", n.getWebURL(), "refresh" }, 0, new AuthoritiesVocabulariesInitialize(n, false, true));
                addMethod(Operation.READ, new String[] { "vocabularies", n.getWebURL() }, 1, new VocabulariesRead(n, VocabulariesRead.GET_FULL_INFO));
                addMethod(Operation.READ, new String[] { "vocabularies", "basic", n.getWebURL() }, 1, new VocabulariesRead(n, VocabulariesRead.GET_BASIC_INFO));
                addMethod(Operation.READ, new String[] { "vocabularies", n.getWebURL(), "authorities" }, 1, new VocabulariesRead(n, VocabulariesRead.GET_TERMS_USED_INFO));
                addMethod(Operation.READ, new String[] { "vocabularies", n.getWebURL(), "refobjs" }, 1, new VocabulariesRead(n, VocabulariesRead.GET_REF_OBJS_INFO));
                addMethod(Operation.READ, new String[] { "vocabularies", n.getWebURL(), "autocomplete" }, 0, new WebAutoComplete(spec.getRecord(r.getID())));
                addMethod(Operation.CREATE, new String[] { "vocabularies", n.getWebURL() }, 0, new VocabulariesCreateUpdate(n, true));
                addMethod(Operation.UPDATE, new String[] { "vocabularies", n.getWebURL() }, 1, new VocabulariesCreateUpdate(n, false));
                addMethod(Operation.DELETE, new String[] { "vocabularies", n.getWebURL() }, 0, new VocabulariesDelete(n));
                addMethod(Operation.UPDATE, new String[] { "vocabularies", n.getWebURL(), "workflow" }, 2, new VocabulariesWorkflowTransition(n));
                addMethod(Operation.READ, new String[] { "vocabularies", n.getWebURL(), "source-vocab" }, 1, new VocabRedirector(r));
            }
        } else if (r.isType("record") || r.isType("blob") || r.isType("authorizationdata")) {
            addMethod(Operation.READ, new String[] { r.getWebURL(), "__auto" }, 0, new WebAuto());
            addMethod(Operation.READ, new String[] { r.getWebURL(), "autocomplete" }, 0, new WebAutoComplete(spec.getRecord(r.getID())));
            addMethod(Operation.READ, new String[] { r.getWebURL(), "search" }, 0, new RecordSearchList(r, RecordSearchList.MODE_SEARCH));
            addMethod(Operation.CREATE, new String[] { r.getWebURL(), "search" }, 0, new RecordSearchList(r, RecordSearchList.MODE_SEARCH));
            addMethod(Operation.READ, new String[] { r.getWebURL() }, 0, new RecordSearchList(r, RecordSearchList.MODE_LIST));
            addMethod(Operation.READ, new String[] { r.getWebURL() }, 1, new RecordRead(r));
            addMethod(Operation.READ, new String[] { "basic", r.getWebURL() }, 1, new RecordRead(r, true));
            addMethod(Operation.DELETE, new String[] { r.getWebURL() }, 1, new RecordDelete(r.getID()));
            addMethod(Operation.CREATE, new String[] { r.getWebURL() }, 0, new RecordCreateUpdate(r, true));
            addMethod(Operation.UPDATE, new String[] { r.getWebURL() }, 1, new RecordCreateUpdate(r, false));
            addMethod(Operation.READ, new String[] { r.getWebURL(), "source-vocab" }, 1, new VocabRedirector(r));
            addMethod(Operation.READ, new String[] { r.getWebURL(), "authorities" }, 1, new RecordAuthorities(r));
            // relatable records.
            if ((r.isType("procedure") && !r.isType("vocabulary")) || "collection-object".equals(r.getID())) {
                for (Record r2 : spec.getAllRecords()) {
                    if ((r2.isType("procedure") && !r2.isType("vocabulary")) || "collection-object".equals(r2.getID())) {
                        // We do not actually care about the type of r, but
                        // rather just the CSID tail.
                        // We'll search on r2's related to the CSID tail.
                        addMethod(Operation.READ, new String[] { r.getWebURL(), r2.getWebURL() }, 1, new RecordSearchList(r2, RecordSearchList.MODE_SEARCH_RELATED));
                    } else if (r2.isType("searchall")) {
                        // Allow to ask for all procedures related to this
                        // record. Use SearchAll with a related search.
                        addMethod(Operation.READ, new String[] { r.getWebURL(), "procedures" }, 1, new RecordSearchList(r2, RecordSearchList.MODE_SEARCH_RELATED, "procedure"));
                    }
                }
            }
        } else if (r.isType("userdata")) {
            addMethod(Operation.READ, new String[] { r.getWebURL(), "search" }, 0, new UserDetailsSearchList(r, true));
            addMethod(Operation.READ, new String[] { r.getWebURL() }, 1, new UserDetailsRead(r));
            addMethod(Operation.READ, new String[] { r.getWebURL() }, 0, new UserDetailsSearchList(r, false));
            addMethod(Operation.DELETE, new String[] { r.getWebURL() }, 1, new UserDetailsDelete(r.getID()));
            addMethod(Operation.CREATE, new String[] { r.getWebURL() }, 0, new UserDetailsCreateUpdate(r, true));
            addMethod(Operation.UPDATE, new String[] { r.getWebURL() }, 1, new UserDetailsCreateUpdate(r, false));
            addMethod(Operation.READ, new String[] { r.getWebURL() }, 3, new UserRolesRead(spec.getRecordByWebUrl("userrole")));
            addMethod(Operation.CREATE, new String[] { r.getWebURL() }, 2, new UserRolesCreate(spec.getRecordByWebUrl("userrole")));
            addMethod(Operation.DELETE, new String[] { r.getWebURL() }, 3, new UserRolesDelete(spec.getRecordByWebUrl("userrole").getID()));
        } else if (r.isType("id")) {
            // XXX this isn't right but it does work. NEEDS to have it's own
            // methods rather than piggy backing on RECORD
            addMethod(Operation.READ, new String[] { r.getWebURL(), "__auto" }, 0, new WebAuto());
            addMethod(Operation.READ, new String[] { r.getWebURL(), "autocomplete" }, 0, new WebAutoComplete(spec.getRecord(r.getID())));
            addMethod(Operation.READ, new String[] { r.getWebURL(), "search" }, 0, new RecordSearchList(r, RecordSearchList.MODE_SEARCH));
            addMethod(Operation.READ, new String[] { r.getWebURL() }, 0, new RecordSearchList(r, RecordSearchList.MODE_LIST));
            addMethod(Operation.READ, new String[] { r.getWebURL() }, 1, new RecordRead(r));
            addMethod(Operation.DELETE, new String[] { r.getWebURL() }, 1, new RecordDelete(r.getID()));
            addMethod(Operation.CREATE, new String[] { r.getWebURL() }, 0, new RecordCreateUpdate(r, true));
            addMethod(Operation.UPDATE, new String[] { r.getWebURL() }, 1, new RecordCreateUpdate(r, false));
            addMethod(Operation.READ, new String[] { r.getWebURL(), "source-vocab" }, 1, new VocabRedirector(r));
        } else if (r.isType("searchall")) {
            addMethod(Operation.READ, new String[] { r.getWebURL(), "search" }, 0, new RecordSearchList(r, RecordSearchList.MODE_SEARCH));
        }
    }
    addMethod(Operation.CREATE, new String[] { "relationships" }, 0, new RelateCreateUpdate(true));
    addMethod(Operation.UPDATE, new String[] { "relationships" }, 1, new RelateCreateUpdate(false));
    addMethod(Operation.READ, new String[] { "relationships" }, 1, new RelateRead());
    addMethod(Operation.READ, new String[] { "relationships", "hierarchical" }, 1, new RelateRead("hierarchical"));
    addMethod(Operation.DELETE, new String[] { "relationships" }, 1, new RelateDelete(false));
    addMethod(Operation.DELETE, new String[] { "relationships", "one-way" }, 1, new RelateDelete(true));
    addMethod(Operation.READ, new String[] { "relationships", "search" }, 0, new RelateSearchList(true));
    addMethod(Operation.READ, new String[] { "relationships", "hierarchical", "search" }, 0, new RelateSearchList(true, "hierarchical"));
    addMethod(Operation.READ, new String[] { "relationships", "hierarchical" }, 0, new RelateSearchList(false, "hierarchical"));
    addMethod(Operation.READ, new String[] { "relationships" }, 0, new RelateSearchList(false));
}
Also used : RecordAuthorities(org.collectionspace.chain.csp.webui.record.RecordAuthorities) UserDetailsDelete(org.collectionspace.chain.csp.webui.userdetails.UserDetailsDelete) VocabulariesDelete(org.collectionspace.chain.csp.webui.authorities.VocabulariesDelete) Instance(org.collectionspace.chain.csp.schema.Instance) UserDetailsRead(org.collectionspace.chain.csp.webui.userdetails.UserDetailsRead) RelateRead(org.collectionspace.chain.csp.webui.relate.RelateRead) RecordDelete(org.collectionspace.chain.csp.webui.record.RecordDelete) UserRolesRead(org.collectionspace.chain.csp.webui.userroles.UserRolesRead) Operation(org.collectionspace.csp.api.ui.Operation) RecordCreateUpdate(org.collectionspace.chain.csp.webui.record.RecordCreateUpdate) RelateSearchList(org.collectionspace.chain.csp.webui.relate.RelateSearchList) UserRolesDelete(org.collectionspace.chain.csp.webui.userroles.UserRolesDelete) RecordTraverser(org.collectionspace.chain.csp.webui.misc.RecordTraverser) VocabulariesCreateUpdate(org.collectionspace.chain.csp.webui.authorities.VocabulariesCreateUpdate) BlobRead(org.collectionspace.chain.csp.webui.mediablob.BlobRead) UISpec(org.collectionspace.chain.csp.webui.nuispec.UISpec) WebAuto(org.collectionspace.chain.csp.webui.misc.WebAuto) Record(org.collectionspace.chain.csp.schema.Record) AuthoritiesVocabulariesSearchList(org.collectionspace.chain.csp.webui.authorities.AuthoritiesVocabulariesSearchList) Trie(org.collectionspace.chain.pathtrie.Trie) UserDetailsReset(org.collectionspace.chain.csp.webui.userdetails.UserDetailsReset) VocabulariesRead(org.collectionspace.chain.csp.webui.authorities.VocabulariesRead) UserRolesCreate(org.collectionspace.chain.csp.webui.userroles.UserRolesCreate) RelateCreateUpdate(org.collectionspace.chain.csp.webui.relate.RelateCreateUpdate) StructuredDateParser(org.collectionspace.chain.csp.webui.misc.StructuredDateParser) UISchema(org.collectionspace.chain.csp.webui.nuispec.UISchema) WebLogout(org.collectionspace.chain.csp.webui.misc.WebLogout) WebLogin(org.collectionspace.chain.csp.webui.misc.WebLogin) Schemas(org.collectionspace.chain.csp.schema.Schemas) AuthoritiesVocabulariesInitialize(org.collectionspace.chain.csp.webui.authorities.AuthoritiesVocabulariesInitialize) ServicesXsd(org.collectionspace.chain.csp.webui.nuispec.ServicesXsd) RelateDelete(org.collectionspace.chain.csp.webui.relate.RelateDelete) WebAutoComplete(org.collectionspace.chain.csp.webui.misc.WebAutoComplete) WebReset(org.collectionspace.chain.csp.webui.misc.WebReset) RecordSearchList(org.collectionspace.chain.csp.webui.record.RecordSearchList) VocabRedirector(org.collectionspace.chain.csp.webui.misc.VocabRedirector) UserDetailsCreateUpdate(org.collectionspace.chain.csp.webui.userdetails.UserDetailsCreateUpdate) UserDetailsSearchList(org.collectionspace.chain.csp.webui.userdetails.UserDetailsSearchList) WebLoginStatus(org.collectionspace.chain.csp.webui.misc.WebLoginStatus) DataGenerator(org.collectionspace.chain.csp.webui.nuispec.DataGenerator) WebTermList(org.collectionspace.chain.csp.webui.misc.WebTermList) RecordRead(org.collectionspace.chain.csp.webui.record.RecordRead) BlobCreateUpdate(org.collectionspace.chain.csp.webui.mediablob.BlobCreateUpdate) VocabulariesWorkflowTransition(org.collectionspace.chain.csp.webui.authorities.VocabulariesWorkflowTransition)

Aggregations

Instance (org.collectionspace.chain.csp.schema.Instance)1 Record (org.collectionspace.chain.csp.schema.Record)1 Schemas (org.collectionspace.chain.csp.schema.Schemas)1 AuthoritiesVocabulariesInitialize (org.collectionspace.chain.csp.webui.authorities.AuthoritiesVocabulariesInitialize)1 AuthoritiesVocabulariesSearchList (org.collectionspace.chain.csp.webui.authorities.AuthoritiesVocabulariesSearchList)1 VocabulariesCreateUpdate (org.collectionspace.chain.csp.webui.authorities.VocabulariesCreateUpdate)1 VocabulariesDelete (org.collectionspace.chain.csp.webui.authorities.VocabulariesDelete)1 VocabulariesRead (org.collectionspace.chain.csp.webui.authorities.VocabulariesRead)1 VocabulariesWorkflowTransition (org.collectionspace.chain.csp.webui.authorities.VocabulariesWorkflowTransition)1 BlobCreateUpdate (org.collectionspace.chain.csp.webui.mediablob.BlobCreateUpdate)1 BlobRead (org.collectionspace.chain.csp.webui.mediablob.BlobRead)1 RecordTraverser (org.collectionspace.chain.csp.webui.misc.RecordTraverser)1 StructuredDateParser (org.collectionspace.chain.csp.webui.misc.StructuredDateParser)1 VocabRedirector (org.collectionspace.chain.csp.webui.misc.VocabRedirector)1 WebAuto (org.collectionspace.chain.csp.webui.misc.WebAuto)1 WebAutoComplete (org.collectionspace.chain.csp.webui.misc.WebAutoComplete)1 WebLogin (org.collectionspace.chain.csp.webui.misc.WebLogin)1 WebLoginStatus (org.collectionspace.chain.csp.webui.misc.WebLoginStatus)1 WebLogout (org.collectionspace.chain.csp.webui.misc.WebLogout)1 WebReset (org.collectionspace.chain.csp.webui.misc.WebReset)1