diff --git a/frontend-js/src/main/js/gui/admin/ConfigurationAdminPanel.js b/frontend-js/src/main/js/gui/admin/ConfigurationAdminPanel.js index 1da686d8b1db6c00ac77cd864aa74c111e91737e..eb25b190e10681c254761cb8b58c5b072e7a0af0 100644 --- a/frontend-js/src/main/js/gui/admin/ConfigurationAdminPanel.js +++ b/frontend-js/src/main/js/gui/admin/ConfigurationAdminPanel.js @@ -122,6 +122,12 @@ ConfigurationAdminPanel.prototype.optionToTableRow = function (option) { editOption = "<input name='edit-" + option.getType() + "' value='" + value + "'/>"; } else if (option.getValueType() === "TEXT") { editOption = "<textarea name='edit-" + option.getType() + "'>" + xss(value) + "</textarea>"; + } else if (option.getValueType() === "BOOLEAN") { + var checked = ""; + if (value.toLowerCase() === "true") { + checked = " checked "; + } + editOption = "<input type='checkbox' name='edit-" + option.getType() + "' " + checked + " />"; } else if (option.getValueType() === "COLOR") { editOption = "<div>" + "<input class='minerva-color-input' name='edit-" + option.getType() + "' data='" + option.getType() + "' value='" + value + "'/>" + @@ -141,7 +147,17 @@ ConfigurationAdminPanel.prototype.saveOption = function (type) { var self = this; return ServerConnector.getConfiguration().then(function (configuration) { var option = configuration.getOption(type); - var value = $("[name='edit-" + type + "']", self.getElement()).val(); + var element = $("[name='edit-" + type + "']", self.getElement()); + var value; + if (element.is(':checkbox')) { + if (element.is(':checked')) { + value = "true"; + } else { + value = "false"; + } + } else { + value = element.val(); + } option.setValue(value); return ServerConnector.updateConfigurationOption(option); }); diff --git a/frontend-js/src/main/js/gui/admin/EditUserDialog.js b/frontend-js/src/main/js/gui/admin/EditUserDialog.js index aca5a8bc24e6cbfcc3fa356e4f8b256786ca717c..248aa190f0698e82eee05e42e4ec09adbfd34c3f 100644 --- a/frontend-js/src/main/js/gui/admin/EditUserDialog.js +++ b/frontend-js/src/main/js/gui/admin/EditUserDialog.js @@ -471,9 +471,12 @@ EditUserDialog.prototype.setProjects = function (projects) { return self.createUserPrivilegeColumns().then(function (columns) { var dataTable = $($("[name='projectsTable']", self.getElement())[0]).DataTable(); var data = []; + + var rowData = self.projectToTableRow(null, columns); + data.push(rowData); for (var i = 0; i < projects.length; i++) { var project = projects[i]; - var rowData = self.projectToTableRow(project, columns); + rowData = self.projectToTableRow(project, columns); data.push(rowData); } dataTable.clear().rows.add(data).draw(); @@ -483,16 +486,22 @@ EditUserDialog.prototype.setProjects = function (projects) { EditUserDialog.prototype.projectToTableRow = function (project, columns) { var user = this.getUser(); var row = []; + var id = null; + var projectId = "[DEFAULT PRIVILEGE FOR NEW PROJECT]"; + if (project !== null) { + id = project.getId(); + projectId = project.getProjectId(); + } - row[0] = "<span data='" + project.getId() + "'>" + project.getProjectId() + "</span>"; + row[0] = "<span data='" + id + "'>" + projectId + "</span>"; for (var i = 1; i < columns.length; i++) { var privilege = columns[i].privilegeType; var checked = ""; - if (user.hasPrivilege(privilege, project.getId())) { + if (user.hasPrivilege(privilege, id)) { checked = "checked"; } - row.push("<input type='checkbox' name='project-privilege-checkbox' data='" + privilege.getName() + "-" + project.getId() + "' " + checked + " />"); + row.push("<input type='checkbox' name='project-privilege-checkbox' data='" + privilege.getName() + "-" + id + "' " + checked + " />"); } return row; diff --git a/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js b/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js index b32f01eca3c92b0110a351ad728d3a061954ed7c..1c1a6e3c14667f636023d526770e3706d811c9af 100644 --- a/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js +++ b/frontend-js/src/main/js/gui/admin/MapsAdminPanel.js @@ -273,6 +273,9 @@ MapsAdminPanel.prototype.onRefreshClicked = function () { var self = this; return ServerConnector.getProjects(true).then(function (projects) { return self.setProjects(projects); + }).then(function () { + //we need to refresh users as well because of privileges + return ServerConnector.getUsers(true); }); }; diff --git a/frontend-js/src/main/js/map/data/UserPreferences.js b/frontend-js/src/main/js/map/data/UserPreferences.js index c3807b066432534e4921bf05360509001d24913a..e5112a52d17363985f6cea1a8e8452b081ba3f3a 100644 --- a/frontend-js/src/main/js/map/data/UserPreferences.js +++ b/frontend-js/src/main/js/map/data/UserPreferences.js @@ -35,7 +35,11 @@ UserPreferences.prototype.setElementAnnotators = function (elementAnnotators) { this._elementAnnotators = elementAnnotators; }; UserPreferences.prototype.getElementAnnotators = function (className) { - return this._elementAnnotators[className]; + var result = this._elementAnnotators[className]; + if (result === undefined) { + result = []; + } + return result; }; UserPreferences.prototype.setElementRequiredAnnotations = function (elementRequiredAnnotations) { this._elementRequiredAnnotations = {}; @@ -50,13 +54,21 @@ UserPreferences.prototype.setElementRequiredAnnotations = function (elementRequi } }; UserPreferences.prototype.getElementRequiredAnnotations = function (className) { - return this._elementRequiredAnnotations[className]; + var result = this._elementRequiredAnnotations[className]; + if (result === undefined) { + result = {list: []}; + } + return result; }; UserPreferences.prototype.setElementValidAnnotations = function (elementValidAnnotations) { this._elementValidAnnotations = elementValidAnnotations; }; UserPreferences.prototype.getElementValidAnnotations = function (className) { - return this._elementValidAnnotations[className]; + var result = this._elementValidAnnotations[className]; + if (result === undefined) { + result = []; + } + return result; }; UserPreferences.prototype.toExport = function () { diff --git a/frontend-js/src/test/js/gui/admin/EditUserDialog-test.js b/frontend-js/src/test/js/gui/admin/EditUserDialog-test.js index d410430a03f6126d00f79cf45634bc6d9b87db8c..b4e2e2f832e83ca1ea0734ed697b52aa7d9e8b48 100644 --- a/frontend-js/src/test/js/gui/admin/EditUserDialog-test.js +++ b/frontend-js/src/test/js/gui/admin/EditUserDialog-test.js @@ -31,6 +31,8 @@ describe('EditUserDialog', function () { return dialog.init(); }).then(function () { assert.equal(0, logger.getWarnings().length); + assert.ok(testDiv.innerHTML.indexOf("DEFAULT PRIVILEGE FOR NEW PROJECT") >= 0); + assert.equal(testDiv.innerHTML.indexOf("DEFAULT PRIVILEGE FOR NEW PROJECT"), testDiv.innerHTML.lastIndexOf("DEFAULT PRIVILEGE FOR NEW PROJECT")); dialog.destroy(); }); }); diff --git a/frontend-js/testFiles/apiCalls/configuration/token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/configuration/token=MOCK_TOKEN_ID& index 8c9acc670575a8b9a3b8924dc49b83b76a7fe8b8..8e613c6930b2c03413c96fb8e9e5b3070227597f 100644 --- a/frontend-js/testFiles/apiCalls/configuration/token=MOCK_TOKEN_ID& +++ b/frontend-js/testFiles/apiCalls/configuration/token=MOCK_TOKEN_ID& @@ -1 +1 @@ -{"modelFormats":[{"handler":"lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser","extension":"xml","name":"CellDesigner SBML"},{"handler":"lcsb.mapviewer.converter.model.sbgnml.SbgnmlXmlConverter","extension":"sbgn","name":"SBGN-ML"},{"handler":"lcsb.mapviewer.converter.model.sbml.SbmlParser","extension":"xml","name":"SBML"}],"elementTypes":[{"name":"Degraded","className":"lcsb.mapviewer.model.map.species.Degraded","parentClass":"lcsb.mapviewer.model.map.species.Species"},{"name":"Compartment","className":"lcsb.mapviewer.model.map.compartment.LeftSquareCompartment","parentClass":"lcsb.mapviewer.model.map.compartment.Compartment"},{"name":"Protein","className":"lcsb.mapviewer.model.map.species.IonChannelProtein","parentClass":"lcsb.mapviewer.model.map.species.Protein"},{"name":"Compartment","className":"lcsb.mapviewer.model.map.compartment.TopSquareCompartment","parentClass":"lcsb.mapviewer.model.map.compartment.Compartment"},{"name":"Ion","className":"lcsb.mapviewer.model.map.species.Ion","parentClass":"lcsb.mapviewer.model.map.species.Chemical"},{"name":"Species","className":"lcsb.mapviewer.model.map.species.Species","parentClass":"lcsb.mapviewer.model.map.species.Element"},{"name":"Compartment","className":"lcsb.mapviewer.model.map.compartment.RightSquareCompartment","parentClass":"lcsb.mapviewer.model.map.compartment.Compartment"},{"name":"Drug","className":"lcsb.mapviewer.model.map.species.Drug","parentClass":"lcsb.mapviewer.model.map.species.Species"},{"name":"Protein","className":"lcsb.mapviewer.model.map.species.Protein","parentClass":"lcsb.mapviewer.model.map.species.Species"},{"name":"Protein","className":"lcsb.mapviewer.model.map.species.TruncatedProtein","parentClass":"lcsb.mapviewer.model.map.species.Protein"},{"name":"Compartment","className":"lcsb.mapviewer.model.map.compartment.PathwayCompartment","parentClass":"lcsb.mapviewer.model.map.compartment.Compartment"},{"name":"Compartment","className":"lcsb.mapviewer.model.map.compartment.BottomSquareCompartment","parentClass":"lcsb.mapviewer.model.map.compartment.Compartment"},{"name":"RNA","className":"lcsb.mapviewer.model.map.species.Rna","parentClass":"lcsb.mapviewer.model.map.species.Species"},{"name":"Chemical","className":"lcsb.mapviewer.model.map.species.Chemical","parentClass":"lcsb.mapviewer.model.map.species.Species"},{"name":"Compartment","className":"lcsb.mapviewer.model.map.compartment.Compartment","parentClass":"lcsb.mapviewer.model.map.species.Element"},{"name":"Compartment","className":"lcsb.mapviewer.model.map.compartment.OvalCompartment","parentClass":"lcsb.mapviewer.model.map.compartment.Compartment"},{"name":"Compartment","className":"lcsb.mapviewer.model.map.compartment.SquareCompartment","parentClass":"lcsb.mapviewer.model.map.compartment.Compartment"},{"name":"Unknown","className":"lcsb.mapviewer.model.map.species.Unknown","parentClass":"lcsb.mapviewer.model.map.species.Species"},{"name":"Element","className":"lcsb.mapviewer.model.map.species.Element","parentClass":"lcsb.mapviewer.model.map.BioEntity"},{"name":"Phenotype","className":"lcsb.mapviewer.model.map.species.Phenotype","parentClass":"lcsb.mapviewer.model.map.species.Species"},{"name":"Complex","className":"lcsb.mapviewer.model.map.species.Complex","parentClass":"lcsb.mapviewer.model.map.species.Species"},{"name":"Antisense RNA","className":"lcsb.mapviewer.model.map.species.AntisenseRna","parentClass":"lcsb.mapviewer.model.map.species.Species"},{"name":"Protein","className":"lcsb.mapviewer.model.map.species.ReceptorProtein","parentClass":"lcsb.mapviewer.model.map.species.Protein"},{"name":"Simple molecule","className":"lcsb.mapviewer.model.map.species.SimpleMolecule","parentClass":"lcsb.mapviewer.model.map.species.Chemical"},{"name":"Protein","className":"lcsb.mapviewer.model.map.species.GenericProtein","parentClass":"lcsb.mapviewer.model.map.species.Protein"},{"name":"Gene","className":"lcsb.mapviewer.model.map.species.Gene","parentClass":"lcsb.mapviewer.model.map.species.Species"}],"modificationStateTypes":{"PHOSPHORYLATED":{"commonName":"phosphorylated","abbreviation":"P"},"METHYLATED":{"commonName":"methylated","abbreviation":"Me"},"PALMYTOYLATED":{"commonName":"palmytoylated","abbreviation":"Pa"},"ACETYLATED":{"commonName":"acetylated","abbreviation":"Ac"},"SULFATED":{"commonName":"sulfated","abbreviation":"S"},"GLYCOSYLATED":{"commonName":"glycosylated","abbreviation":"G"},"PRENYLATED":{"commonName":"prenylated","abbreviation":"Pr"},"UBIQUITINATED":{"commonName":"ubiquitinated","abbreviation":"Ub"},"PROTONATED":{"commonName":"protonated","abbreviation":"H"},"HYDROXYLATED":{"commonName":"hydroxylated","abbreviation":"OH"},"MYRISTOYLATED":{"commonName":"myristoylated","abbreviation":"My"},"UNKNOWN":{"commonName":"unknown","abbreviation":"?"},"EMPTY":{"commonName":"empty","abbreviation":""},"DONT_CARE":{"commonName":"don't care","abbreviation":"*"}},"imageFormats":[{"handler":"lcsb.mapviewer.converter.graphics.PngImageGenerator","extension":"png","name":"PNG image"},{"handler":"lcsb.mapviewer.converter.graphics.PdfImageGenerator","extension":"pdf","name":"PDF"},{"handler":"lcsb.mapviewer.converter.graphics.SvgImageGenerator","extension":"svg","name":"SVG image"}],"plugins":[],"annotators":[{"name":"Biocompendium","className":"lcsb.mapviewer.annotation.services.annotators.BiocompendiumAnnotator","elementClassNames":["lcsb.mapviewer.model.map.species.Protein","lcsb.mapviewer.model.map.species.Gene","lcsb.mapviewer.model.map.species.Rna"],"url":"http://biocompendium.embl.de/"},{"name":"Chebi","className":"lcsb.mapviewer.annotation.services.annotators.ChebiAnnotator","elementClassNames":["lcsb.mapviewer.model.map.species.Chemical"],"url":"http://www.ebi.ac.uk/chebi/"},{"name":"Uniprot","className":"lcsb.mapviewer.annotation.services.annotators.UniprotAnnotator","elementClassNames":["lcsb.mapviewer.model.map.species.Protein","lcsb.mapviewer.model.map.species.Gene","lcsb.mapviewer.model.map.species.Rna"],"url":"http://www.uniprot.org/"},{"name":"Gene Ontology","className":"lcsb.mapviewer.annotation.services.annotators.GoAnnotator","elementClassNames":["lcsb.mapviewer.model.map.species.Phenotype","lcsb.mapviewer.model.map.compartment.Compartment","lcsb.mapviewer.model.map.species.Complex"],"url":"http://amigo.geneontology.org/amigo"},{"name":"HGNC","className":"lcsb.mapviewer.annotation.services.annotators.HgncAnnotator","elementClassNames":["lcsb.mapviewer.model.map.species.Protein","lcsb.mapviewer.model.map.species.Rna","lcsb.mapviewer.model.map.species.Gene"],"url":"http://www.genenames.org"},{"name":"Protein Data Bank","className":"lcsb.mapviewer.annotation.services.annotators.PdbAnnotator","elementClassNames":["lcsb.mapviewer.model.map.species.Protein","lcsb.mapviewer.model.map.species.Rna","lcsb.mapviewer.model.map.species.Gene"],"url":"http://www.pdbe.org/"},{"name":"Recon annotator","className":"lcsb.mapviewer.annotation.services.annotators.ReconAnnotator","elementClassNames":["lcsb.mapviewer.model.map.species.Chemical","lcsb.mapviewer.model.map.reaction.Reaction"],"url":"http://humanmetabolism.org/"},{"name":"Entrez Gene","className":"lcsb.mapviewer.annotation.services.annotators.EntrezAnnotator","elementClassNames":["lcsb.mapviewer.model.map.species.Protein","lcsb.mapviewer.model.map.species.Rna","lcsb.mapviewer.model.map.species.Gene"],"url":"http://www.ncbi.nlm.nih.gov/gene"},{"name":"Ensembl","className":"lcsb.mapviewer.annotation.services.annotators.EnsemblAnnotator","elementClassNames":["lcsb.mapviewer.model.map.species.Protein","lcsb.mapviewer.model.map.species.Rna","lcsb.mapviewer.model.map.species.Gene"],"url":"www.ensembl.org"}],"buildDate":" 14/02/2018 09:55","reactionTypes":[{"name":"Unknown positive influence","className":"lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Generic Reaction","className":"lcsb.mapviewer.model.map.reaction.Reaction","parentClass":"lcsb.mapviewer.model.map.BioEntity"},{"name":"Reduced physical stimulation","className":"lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Negative influence","className":"lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Known transition omitted","className":"lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Reduced modulation","className":"lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Translation","className":"lcsb.mapviewer.model.map.reaction.type.TranslationReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Heterodimer association","className":"lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Transcription","className":"lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Unknown reduced trigger","className":"lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Unknown negative influence","className":"lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Truncation","className":"lcsb.mapviewer.model.map.reaction.type.TruncationReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Transport","className":"lcsb.mapviewer.model.map.reaction.type.TransportReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Reduced trigger","className":"lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"State transition","className":"lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Positive influence","className":"lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Unknown reduced physical stimulation","className":"lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Boolean logic gate","className":"lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Unknown reduced modulation","className":"lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Unknown transition","className":"lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Dissociation","className":"lcsb.mapviewer.model.map.reaction.type.DissociationReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"}],"version":"12.0.0","mapTypes":[{"name":"Downstream targets","id":"DOWNSTREAM_TARGETS"},{"name":"Pathway","id":"PATHWAY"},{"name":"Unknown","id":"UNKNOWN"}],"miriamTypes":{"CHEMBL_TARGET":{"commonName":"ChEMBL target","uris":["urn:miriam:chembl.target"],"homepage":"https://www.ebi.ac.uk/chembldb/","registryIdentifier":"MIR:00000085"},"UNIPROT":{"commonName":"Uniprot","uris":["urn:miriam:uniprot"],"homepage":"http://www.uniprot.org/","registryIdentifier":"MIR:00000005"},"MI_R_BASE_MATURE_SEQUENCE":{"commonName":"miRBase Mature Sequence Database","uris":["urn:miriam:mirbase.mature"],"homepage":"http://www.mirbase.org/","registryIdentifier":"MIR:00000235"},"PFAM":{"commonName":"Protein Family Database","uris":["urn:miriam:pfam"],"homepage":"http://pfam.xfam.org//","registryIdentifier":"MIR:00000028"},"ENSEMBL_PLANTS":{"commonName":"Ensembl Plants","uris":["urn:miriam:ensembl.plant"],"homepage":"http://plants.ensembl.org/","registryIdentifier":"MIR:00000205"},"WIKIPEDIA":{"commonName":"Wikipedia (English)","uris":["urn:miriam:wikipedia.en"],"homepage":"http://en.wikipedia.org/wiki/Main_Page","registryIdentifier":"MIR:00000384"},"CHEBI":{"commonName":"Chebi","uris":["urn:miriam:obo.chebi","urn:miriam:chebi"],"homepage":"http://www.ebi.ac.uk/chebi/","registryIdentifier":"MIR:00000002"},"WIKIDATA":{"commonName":"Wikidata","uris":["urn:miriam:wikidata"],"homepage":"https://www.wikidata.org/","registryIdentifier":"MIR:00000549"},"REACTOME":{"commonName":"Reactome","uris":["urn:miriam:reactome"],"homepage":"http://www.reactome.org/","registryIdentifier":"MIR:00000018"},"EC":{"commonName":"Enzyme Nomenclature","uris":["urn:miriam:ec-code"],"homepage":"http://www.enzyme-database.org/","registryIdentifier":"MIR:00000004"},"DOI":{"commonName":"Digital Object Identifier","uris":["urn:miriam:doi"],"homepage":"http://www.doi.org/","registryIdentifier":"MIR:00000019"},"UNIPROT_ISOFORM":{"commonName":"UniProt Isoform","uris":["urn:miriam:uniprot.isoform"],"homepage":"http://www.uniprot.org/","registryIdentifier":"MIR:00000388"},"OMIM":{"commonName":"Online Mendelian Inheritance in Man","uris":["urn:miriam:omim"],"homepage":"http://omim.org/","registryIdentifier":"MIR:00000016"},"DRUGBANK_TARGET_V4":{"commonName":"DrugBank Target v4","uris":["urn:miriam:drugbankv4.target"],"homepage":"http://www.drugbank.ca/targets","registryIdentifier":"MIR:00000528"},"MIR_TAR_BASE_MATURE_SEQUENCE":{"commonName":"miRTarBase Mature Sequence Database","uris":["urn:miriam:mirtarbase"],"homepage":"http://mirtarbase.mbc.nctu.edu.tw/","registryIdentifier":"MIR:00100739"},"CHEMBL_COMPOUND":{"commonName":"ChEMBL","uris":["urn:miriam:chembl.compound"],"homepage":"https://www.ebi.ac.uk/chembldb/","registryIdentifier":"MIR:00000084"},"KEGG_PATHWAY":{"commonName":"Kegg Pathway","uris":["urn:miriam:kegg.pathway"],"homepage":"http://www.genome.jp/kegg/pathway.html","registryIdentifier":"MIR:00000012"},"CAS":{"commonName":"Chemical Abstracts Service","uris":["urn:miriam:cas"],"homepage":"http://commonchemistry.org","registryIdentifier":"MIR:00000237"},"REFSEQ":{"commonName":"RefSeq","uris":["urn:miriam:refseq"],"homepage":"http://www.ncbi.nlm.nih.gov/projects/RefSeq/","registryIdentifier":"MIR:00000039"},"WORM_BASE":{"commonName":"WormBase","uris":["urn:miriam:wormbase"],"homepage":"http://wormbase.bio2rdf.org/fct","registryIdentifier":"MIR:00000027"},"MI_R_BASE_SEQUENCE":{"commonName":"miRBase Sequence Database","uris":["urn:miriam:mirbase"],"homepage":"http://www.mirbase.org/","registryIdentifier":"MIR:00000078"},"TAIR_LOCUS":{"commonName":"TAIR Locus","uris":["urn:miriam:tair.locus"],"homepage":"http://arabidopsis.org/index.jsp","registryIdentifier":"MIR:00000050"},"PHARM":{"commonName":"PharmGKB Pathways","uris":["urn:miriam:pharmgkb.pathways"],"homepage":"http://www.pharmgkb.org/","registryIdentifier":"MIR:00000089"},"PDB":{"commonName":"Protein Data Bank","uris":["urn:miriam:pdb"],"homepage":"http://www.pdbe.org/","registryIdentifier":"MIR:00000020"},"PANTHER":{"commonName":"PANTHER Family","uris":["urn:miriam:panther.family","urn:miriam:panther"],"homepage":"http://www.pantherdb.org/","registryIdentifier":"MIR:00000060"},"TAXONOMY":{"commonName":"Taxonomy","uris":["urn:miriam:taxonomy"],"homepage":"http://www.ncbi.nlm.nih.gov/taxonomy/","registryIdentifier":"MIR:00000006"},"UNIGENE":{"commonName":"UniGene","uris":["urn:miriam:unigene"],"homepage":"http://www.ncbi.nlm.nih.gov/unigene","registryIdentifier":"MIR:00000346"},"HGNC":{"commonName":"HGNC","uris":["urn:miriam:hgnc"],"homepage":"http://www.genenames.org","registryIdentifier":"MIR:00000080"},"HGNC_SYMBOL":{"commonName":"HGNC Symbol","uris":["urn:miriam:hgnc.symbol"],"homepage":"http://www.genenames.org","registryIdentifier":"MIR:00000362"},"COG":{"commonName":"Clusters of Orthologous Groups","uris":["urn:miriam:cogs"],"homepage":"https://www.ncbi.nlm.nih.gov/COG/","registryIdentifier":"MIR:00000296"},"WIKIPATHWAYS":{"commonName":"WikiPathways","uris":["urn:miriam:wikipathways"],"homepage":"http://www.wikipathways.org/","registryIdentifier":"MIR:00000076"},"HMDB":{"commonName":"HMDB","uris":["urn:miriam:hmdb"],"homepage":"http://www.hmdb.ca/","registryIdentifier":"MIR:00000051"},"CHEMSPIDER":{"commonName":"ChemSpider","uris":["urn:miriam:chemspider"],"homepage":"http://www.chemspider.com//","registryIdentifier":"MIR:00000138"},"ENSEMBL":{"commonName":"Ensembl","uris":["urn:miriam:ensembl"],"homepage":"www.ensembl.org","registryIdentifier":"MIR:00000003"},"GO":{"commonName":"Gene Ontology","uris":["urn:miriam:obo.go","urn:miriam:go"],"homepage":"http://amigo.geneontology.org/amigo","registryIdentifier":"MIR:00000022"},"KEGG_REACTION":{"commonName":"Kegg Reaction","uris":["urn:miriam:kegg.reaction"],"homepage":"http://www.genome.jp/kegg/reaction/","registryIdentifier":"MIR:00000014"},"KEGG_ORTHOLOGY":{"commonName":"KEGG Orthology","uris":["urn:miriam:kegg.orthology"],"homepage":"http://www.genome.jp/kegg/ko.html","registryIdentifier":"MIR:00000116"},"PUBCHEM":{"commonName":"PubChem-compound","uris":["urn:miriam:pubchem.compound"],"homepage":"http://pubchem.ncbi.nlm.nih.gov/","registryIdentifier":"MIR:00000034"},"MESH_2012":{"commonName":"MeSH 2012","uris":["urn:miriam:mesh.2012","urn:miriam:mesh"],"homepage":"http://www.nlm.nih.gov/mesh/","registryIdentifier":"MIR:00000270"},"MGD":{"commonName":"Mouse Genome Database","uris":["urn:miriam:mgd"],"homepage":"http://www.informatics.jax.org/","registryIdentifier":"MIR:00000037"},"ENTREZ":{"commonName":"Entrez Gene","uris":["urn:miriam:ncbigene","urn:miriam:entrez.gene"],"homepage":"http://www.ncbi.nlm.nih.gov/gene","registryIdentifier":"MIR:00000069"},"PUBCHEM_SUBSTANCE":{"commonName":"PubChem-substance","uris":["urn:miriam:pubchem.substance"],"homepage":"http://pubchem.ncbi.nlm.nih.gov/","registryIdentifier":"MIR:00000033"},"CCDS":{"commonName":"Consensus CDS","uris":["urn:miriam:ccds"],"homepage":"http://www.ncbi.nlm.nih.gov/CCDS/","registryIdentifier":"MIR:00000375"},"KEGG_GENES":{"commonName":"Kegg Genes","uris":["urn:miriam:kegg.genes","urn:miriam:kegg.genes:hsa"],"homepage":"http://www.genome.jp/kegg/genes.html","registryIdentifier":"MIR:00000070"},"TOXICOGENOMIC_CHEMICAL":{"commonName":"Toxicogenomic Chemical","uris":["urn:miriam:ctd.chemical"],"homepage":"http://ctdbase.org/","registryIdentifier":"MIR:00000098"},"SGD":{"commonName":"Saccharomyces Genome Database","uris":["urn:miriam:sgd"],"homepage":"http://www.yeastgenome.org/","registryIdentifier":"MIR:00000023"},"KEGG_COMPOUND":{"commonName":"Kegg Compound","uris":["urn:miriam:kegg.compound"],"homepage":"http://www.genome.jp/kegg/ligand.html","registryIdentifier":"MIR:00000013"},"INTERPRO":{"commonName":"InterPro","uris":["urn:miriam:interpro"],"homepage":"http://www.ebi.ac.uk/interpro/","registryIdentifier":"MIR:00000011"},"UNKNOWN":{"commonName":"Unknown","uris":[],"homepage":null,"registryIdentifier":null},"DRUGBANK":{"commonName":"DrugBank","uris":["urn:miriam:drugbank"],"homepage":"http://www.drugbank.ca/","registryIdentifier":"MIR:00000102"},"PUBMED":{"commonName":"PubMed","uris":["urn:miriam:pubmed"],"homepage":"http://www.ncbi.nlm.nih.gov/PubMed/","registryIdentifier":"MIR:00000015"}},"unitTypes":[{"name":"ampere","id":"AMPERE"},{"name":"becquerel","id":"BECQUEREL"},{"name":"candela","id":"CANDELA"},{"name":"coulumb","id":"COULUMB"},{"name":"dimensionless","id":"DIMENSIONLESS"},{"name":"farad","id":"FARAD"},{"name":"gram","id":"GRAM"},{"name":"gray","id":"GRAY"},{"name":"henry","id":"HENRY"},{"name":"hertz","id":"HERTZ"},{"name":"item","id":"ITEM"},{"name":"joule","id":"JOULE"},{"name":"katal","id":"KATAL"},{"name":"kelvin","id":"KELVIN"},{"name":"kilogram","id":"KILOGRAM"},{"name":"litre","id":"LITRE"},{"name":"lumen","id":"LUMEN"},{"name":"lux","id":"LUX"},{"name":"metre","id":"METRE"},{"name":"mole","id":"MOLE"},{"name":"newton","id":"NEWTON"},{"name":"ohm","id":"OHM"},{"name":"pascal","id":"PASCAL"},{"name":"radian","id":"RADIAN"},{"name":"second","id":"SECOND"},{"name":"siemens","id":"SIEMENS"},{"name":"sievert","id":"SIEVERT"},{"name":"steradian","id":"STERADIAN"},{"name":"tesla","id":"TESLA"},{"name":"volt","id":"VOLT"},{"name":"watt","id":"WATT"},{"name":"weber","id":"WEBER"}],"options":[{"idObject":9,"type":"EMAIL_ADDRESS","value":"gawron13@o2.pl","valueType":"EMAIL","commonName":"E-mail address"},{"idObject":10,"type":"EMAIL_LOGIN","value":"gawron13","valueType":"STRING","commonName":"E-mail server login"},{"idObject":11,"type":"EMAIL_PASSWORD","value":"k13liszk!","valueType":"PASSWORD","commonName":"E-mail server password"},{"idObject":13,"type":"EMAIL_IMAP_SERVER","value":"your.imap.domain.com","valueType":"STRING","commonName":"IMAP server"},{"idObject":12,"type":"EMAIL_SMTP_SERVER","value":"poczta.o2.pl","valueType":"STRING","commonName":"SMTP server"},{"idObject":14,"type":"EMAIL_SMTP_PORT","value":"25","valueType":"INTEGER","commonName":"SMTP port"},{"idObject":6,"type":"DEFAULT_MAP","value":"sample","valueType":"STRING","commonName":"Default Project Id"},{"idObject":4,"type":"LOGO_IMG","value":"udl.png","valueType":"URL","commonName":"Logo icon"},{"idObject":3,"type":"LOGO_LINK","value":"http://wwwen.uni.lu/","valueType":"URL","commonName":"Logo link (after click)"},{"idObject":7,"type":"SEARCH_DISTANCE","value":"10","valueType":"DOUBLE","commonName":"Max distance for clicking on element (px)"},{"idObject":1,"type":"REQUEST_ACCOUNT_EMAIL","value":"your.email@domain.com","valueType":"EMAIL","commonName":"Email used for requesting an account"},{"idObject":8,"type":"SEARCH_RESULT_NUMBER","value":"100","valueType":"INTEGER","commonName":"Max number of results in search box. "},{"idObject":2,"type":"GOOGLE_ANALYTICS_IDENTIFIER","value":"","valueType":"STRING","commonName":"Google Analytics tracking ID used for statistics"},{"idObject":5,"type":"LOGO_TEXT","value":"University of Luxembourg","valueType":"STRING","commonName":"Logo description"},{"idObject":56,"type":"X_FRAME_DOMAIN","value":"http://localhost:8080/","valueType":"URL","commonName":"Domain allowed to connect via x-frame technology"},{"idObject":131,"type":"BIG_FILE_STORAGE_DIR","value":"minerva-big/","valueType":"STRING","commonName":"Path to store big files"},{"idObject":138,"type":"LEGEND_FILE_1","value":"resources/images/legend_a.png","valueType":"URL","commonName":"Legend 1 image file"},{"idObject":139,"type":"LEGEND_FILE_2","value":"resources/images/legend_b.png","valueType":"URL","commonName":"Legend 2 image file"},{"idObject":140,"type":"LEGEND_FILE_3","value":"resources/images/legend_c.png","valueType":"URL","commonName":"Legend 3 image file"},{"idObject":141,"type":"LEGEND_FILE_4","value":"resources/images/legend_d.png","valueType":"URL","commonName":"Legend 4 image file"},{"idObject":142,"type":"USER_MANUAL_FILE","value":"resources/other/user_guide.pdf","valueType":"URL","commonName":"User manual file"},{"idObject":205,"type":"MIN_COLOR_VAL","value":"FF0000","valueType":"COLOR","commonName":"Overlay color for negative values"},{"idObject":206,"type":"MAX_COLOR_VAL","value":"fbff00","valueType":"COLOR","commonName":"Overlay color for postive values"},{"idObject":218,"type":"SIMPLE_COLOR_VAL","value":"00ff40","valueType":"COLOR","commonName":"Overlay color when no values are defined"},{"idObject":239,"type":"NEUTRAL_COLOR_VAL","value":"0400ff","valueType":"COLOR","commonName":"Overlay color for value=0"},{"idObject":252,"type":"OVERLAY_OPACITY","value":"0.8","valueType":"DOUBLE","commonName":"Opacity used when drwaing data overlays (value between 0.0-1.0)"},{"idObject":253,"type":"REQUEST_ACCOUNT_DEFAULT_CONTENT","value":"Dear Diseas map team,\n\nI would like to request for an account.\n\nKind regards","valueType":"TEXT","commonName":"Email content used for requesting an account"}],"privilegeTypes":{"VIEW_PROJECT":{"commonName":"View project","valueType":"boolean","objectType":"Project"},"LAYOUT_MANAGEMENT":{"commonName":"Manage layouts","valueType":"boolean","objectType":"Project"},"PROJECT_MANAGEMENT":{"commonName":"Map management","valueType":"boolean","objectType":null},"CUSTOM_LAYOUTS":{"commonName":"Custom layouts","valueType":"int","objectType":null},"ADD_MAP":{"commonName":"Add project","valueType":"boolean","objectType":null},"LAYOUT_VIEW":{"commonName":"View layout","valueType":"boolean","objectType":"Layout"},"MANAGE_GENOMES":{"commonName":"Manage genomes","valueType":"boolean","objectType":null},"EDIT_COMMENTS_PROJECT":{"commonName":"Manage comments","valueType":"boolean","objectType":"Project"},"CONFIGURATION_MANAGE":{"commonName":"Manage configuration","valueType":"boolean","objectType":null},"USER_MANAGEMENT":{"commonName":"User management","valueType":"boolean","objectType":null}},"overlayTypes":[{"name":"GENERIC"},{"name":"GENETIC_VARIANT"}]} \ No newline at end of file +{"modelFormats":[{"handler":"lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser","extension":"xml","name":"CellDesigner SBML"},{"handler":"lcsb.mapviewer.converter.model.sbgnml.SbgnmlXmlConverter","extension":"sbgn","name":"SBGN-ML"},{"handler":"lcsb.mapviewer.converter.model.sbml.SbmlParser","extension":"xml","name":"SBML"}],"elementTypes":[{"name":"Degraded","className":"lcsb.mapviewer.model.map.species.Degraded","parentClass":"lcsb.mapviewer.model.map.species.Species"},{"name":"Compartment","className":"lcsb.mapviewer.model.map.compartment.LeftSquareCompartment","parentClass":"lcsb.mapviewer.model.map.compartment.Compartment"},{"name":"Protein","className":"lcsb.mapviewer.model.map.species.IonChannelProtein","parentClass":"lcsb.mapviewer.model.map.species.Protein"},{"name":"Compartment","className":"lcsb.mapviewer.model.map.compartment.TopSquareCompartment","parentClass":"lcsb.mapviewer.model.map.compartment.Compartment"},{"name":"Ion","className":"lcsb.mapviewer.model.map.species.Ion","parentClass":"lcsb.mapviewer.model.map.species.Chemical"},{"name":"Species","className":"lcsb.mapviewer.model.map.species.Species","parentClass":"lcsb.mapviewer.model.map.species.Element"},{"name":"Compartment","className":"lcsb.mapviewer.model.map.compartment.RightSquareCompartment","parentClass":"lcsb.mapviewer.model.map.compartment.Compartment"},{"name":"Drug","className":"lcsb.mapviewer.model.map.species.Drug","parentClass":"lcsb.mapviewer.model.map.species.Species"},{"name":"Protein","className":"lcsb.mapviewer.model.map.species.Protein","parentClass":"lcsb.mapviewer.model.map.species.Species"},{"name":"Protein","className":"lcsb.mapviewer.model.map.species.TruncatedProtein","parentClass":"lcsb.mapviewer.model.map.species.Protein"},{"name":"Compartment","className":"lcsb.mapviewer.model.map.compartment.PathwayCompartment","parentClass":"lcsb.mapviewer.model.map.compartment.Compartment"},{"name":"Compartment","className":"lcsb.mapviewer.model.map.compartment.BottomSquareCompartment","parentClass":"lcsb.mapviewer.model.map.compartment.Compartment"},{"name":"RNA","className":"lcsb.mapviewer.model.map.species.Rna","parentClass":"lcsb.mapviewer.model.map.species.Species"},{"name":"Chemical","className":"lcsb.mapviewer.model.map.species.Chemical","parentClass":"lcsb.mapviewer.model.map.species.Species"},{"name":"Compartment","className":"lcsb.mapviewer.model.map.compartment.Compartment","parentClass":"lcsb.mapviewer.model.map.species.Element"},{"name":"Compartment","className":"lcsb.mapviewer.model.map.compartment.OvalCompartment","parentClass":"lcsb.mapviewer.model.map.compartment.Compartment"},{"name":"Compartment","className":"lcsb.mapviewer.model.map.compartment.SquareCompartment","parentClass":"lcsb.mapviewer.model.map.compartment.Compartment"},{"name":"Unknown","className":"lcsb.mapviewer.model.map.species.Unknown","parentClass":"lcsb.mapviewer.model.map.species.Species"},{"name":"Element","className":"lcsb.mapviewer.model.map.species.Element","parentClass":"lcsb.mapviewer.model.map.BioEntity"},{"name":"Phenotype","className":"lcsb.mapviewer.model.map.species.Phenotype","parentClass":"lcsb.mapviewer.model.map.species.Species"},{"name":"Complex","className":"lcsb.mapviewer.model.map.species.Complex","parentClass":"lcsb.mapviewer.model.map.species.Species"},{"name":"Antisense RNA","className":"lcsb.mapviewer.model.map.species.AntisenseRna","parentClass":"lcsb.mapviewer.model.map.species.Species"},{"name":"Protein","className":"lcsb.mapviewer.model.map.species.ReceptorProtein","parentClass":"lcsb.mapviewer.model.map.species.Protein"},{"name":"Simple molecule","className":"lcsb.mapviewer.model.map.species.SimpleMolecule","parentClass":"lcsb.mapviewer.model.map.species.Chemical"},{"name":"Protein","className":"lcsb.mapviewer.model.map.species.GenericProtein","parentClass":"lcsb.mapviewer.model.map.species.Protein"},{"name":"Gene","className":"lcsb.mapviewer.model.map.species.Gene","parentClass":"lcsb.mapviewer.model.map.species.Species"}],"modificationStateTypes":{"PHOSPHORYLATED":{"commonName":"phosphorylated","abbreviation":"P"},"METHYLATED":{"commonName":"methylated","abbreviation":"Me"},"PALMYTOYLATED":{"commonName":"palmytoylated","abbreviation":"Pa"},"ACETYLATED":{"commonName":"acetylated","abbreviation":"Ac"},"SULFATED":{"commonName":"sulfated","abbreviation":"S"},"GLYCOSYLATED":{"commonName":"glycosylated","abbreviation":"G"},"PRENYLATED":{"commonName":"prenylated","abbreviation":"Pr"},"UBIQUITINATED":{"commonName":"ubiquitinated","abbreviation":"Ub"},"PROTONATED":{"commonName":"protonated","abbreviation":"H"},"HYDROXYLATED":{"commonName":"hydroxylated","abbreviation":"OH"},"MYRISTOYLATED":{"commonName":"myristoylated","abbreviation":"My"},"UNKNOWN":{"commonName":"unknown","abbreviation":"?"},"EMPTY":{"commonName":"empty","abbreviation":""},"DONT_CARE":{"commonName":"don't care","abbreviation":"*"}},"imageFormats":[{"handler":"lcsb.mapviewer.converter.graphics.PngImageGenerator","extension":"png","name":"PNG image"},{"handler":"lcsb.mapviewer.converter.graphics.PdfImageGenerator","extension":"pdf","name":"PDF"},{"handler":"lcsb.mapviewer.converter.graphics.SvgImageGenerator","extension":"svg","name":"SVG image"}],"plugins":[],"annotators":[{"name":"Biocompendium","className":"lcsb.mapviewer.annotation.services.annotators.BiocompendiumAnnotator","elementClassNames":["lcsb.mapviewer.model.map.species.Protein","lcsb.mapviewer.model.map.species.Gene","lcsb.mapviewer.model.map.species.Rna"],"url":"http://biocompendium.embl.de/"},{"name":"Chebi","className":"lcsb.mapviewer.annotation.services.annotators.ChebiAnnotator","elementClassNames":["lcsb.mapviewer.model.map.species.Chemical"],"url":"http://www.ebi.ac.uk/chebi/"},{"name":"Uniprot","className":"lcsb.mapviewer.annotation.services.annotators.UniprotAnnotator","elementClassNames":["lcsb.mapviewer.model.map.species.Protein","lcsb.mapviewer.model.map.species.Gene","lcsb.mapviewer.model.map.species.Rna"],"url":"http://www.uniprot.org/"},{"name":"Gene Ontology","className":"lcsb.mapviewer.annotation.services.annotators.GoAnnotator","elementClassNames":["lcsb.mapviewer.model.map.species.Phenotype","lcsb.mapviewer.model.map.compartment.Compartment","lcsb.mapviewer.model.map.species.Complex"],"url":"http://amigo.geneontology.org/amigo"},{"name":"HGNC","className":"lcsb.mapviewer.annotation.services.annotators.HgncAnnotator","elementClassNames":["lcsb.mapviewer.model.map.species.Protein","lcsb.mapviewer.model.map.species.Rna","lcsb.mapviewer.model.map.species.Gene"],"url":"http://www.genenames.org"},{"name":"Protein Data Bank","className":"lcsb.mapviewer.annotation.services.annotators.PdbAnnotator","elementClassNames":["lcsb.mapviewer.model.map.species.Protein","lcsb.mapviewer.model.map.species.Rna","lcsb.mapviewer.model.map.species.Gene"],"url":"http://www.pdbe.org/"},{"name":"Recon annotator","className":"lcsb.mapviewer.annotation.services.annotators.ReconAnnotator","elementClassNames":["lcsb.mapviewer.model.map.species.Chemical","lcsb.mapviewer.model.map.reaction.Reaction"],"url":"http://humanmetabolism.org/"},{"name":"Entrez Gene","className":"lcsb.mapviewer.annotation.services.annotators.EntrezAnnotator","elementClassNames":["lcsb.mapviewer.model.map.species.Protein","lcsb.mapviewer.model.map.species.Rna","lcsb.mapviewer.model.map.species.Gene"],"url":"http://www.ncbi.nlm.nih.gov/gene"},{"name":"Ensembl","className":"lcsb.mapviewer.annotation.services.annotators.EnsemblAnnotator","elementClassNames":["lcsb.mapviewer.model.map.species.Protein","lcsb.mapviewer.model.map.species.Rna","lcsb.mapviewer.model.map.species.Gene"],"url":"www.ensembl.org"}],"buildDate":" 15/02/2018 14:03","reactionTypes":[{"name":"Catalysis","className":"lcsb.mapviewer.model.map.reaction.type.CatalysisReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Unknown positive influence","className":"lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Generic Reaction","className":"lcsb.mapviewer.model.map.reaction.Reaction","parentClass":"lcsb.mapviewer.model.map.BioEntity"},{"name":"Known transition omitted","className":"lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Reduced modulation","className":"lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Translation","className":"lcsb.mapviewer.model.map.reaction.type.TranslationReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Heterodimer association","className":"lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Transcription","className":"lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Unknown reduced trigger","className":"lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Unknown negative influence","className":"lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Truncation","className":"lcsb.mapviewer.model.map.reaction.type.TruncationReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Transport","className":"lcsb.mapviewer.model.map.reaction.type.TransportReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Unknown catalysis","className":"lcsb.mapviewer.model.map.reaction.type.UnknownCatalysisReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Reduced trigger","className":"lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"State transition","className":"lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Physical stimulation","className":"lcsb.mapviewer.model.map.reaction.type.PhysicalStimulationReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Boolean logic gate","className":"lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Dissociation","className":"lcsb.mapviewer.model.map.reaction.type.DissociationReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Inhibition","className":"lcsb.mapviewer.model.map.reaction.type.InhibitionReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Reduced physical stimulation","className":"lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Negative influence","className":"lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Unknown inhibition","className":"lcsb.mapviewer.model.map.reaction.type.UnknownInhibitionReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Modulation","className":"lcsb.mapviewer.model.map.reaction.type.ModulationReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Positive influence","className":"lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Unknown reduced physical stimulation","className":"lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Unknown reduced modulation","className":"lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Unknown transition","className":"lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"},{"name":"Trigger","className":"lcsb.mapviewer.model.map.reaction.type.TriggerReaction","parentClass":"lcsb.mapviewer.model.map.reaction.Reaction"}],"version":"12.0.0","mapTypes":[{"name":"Downstream targets","id":"DOWNSTREAM_TARGETS"},{"name":"Pathway","id":"PATHWAY"},{"name":"Unknown","id":"UNKNOWN"}],"miriamTypes":{"CHEMBL_TARGET":{"commonName":"ChEMBL target","uris":["urn:miriam:chembl.target"],"homepage":"https://www.ebi.ac.uk/chembldb/","registryIdentifier":"MIR:00000085"},"UNIPROT":{"commonName":"Uniprot","uris":["urn:miriam:uniprot"],"homepage":"http://www.uniprot.org/","registryIdentifier":"MIR:00000005"},"MI_R_BASE_MATURE_SEQUENCE":{"commonName":"miRBase Mature Sequence Database","uris":["urn:miriam:mirbase.mature"],"homepage":"http://www.mirbase.org/","registryIdentifier":"MIR:00000235"},"PFAM":{"commonName":"Protein Family Database","uris":["urn:miriam:pfam"],"homepage":"http://pfam.xfam.org//","registryIdentifier":"MIR:00000028"},"ENSEMBL_PLANTS":{"commonName":"Ensembl Plants","uris":["urn:miriam:ensembl.plant"],"homepage":"http://plants.ensembl.org/","registryIdentifier":"MIR:00000205"},"WIKIPEDIA":{"commonName":"Wikipedia (English)","uris":["urn:miriam:wikipedia.en"],"homepage":"http://en.wikipedia.org/wiki/Main_Page","registryIdentifier":"MIR:00000384"},"CHEBI":{"commonName":"Chebi","uris":["urn:miriam:obo.chebi","urn:miriam:chebi"],"homepage":"http://www.ebi.ac.uk/chebi/","registryIdentifier":"MIR:00000002"},"WIKIDATA":{"commonName":"Wikidata","uris":["urn:miriam:wikidata"],"homepage":"https://www.wikidata.org/","registryIdentifier":"MIR:00000549"},"REACTOME":{"commonName":"Reactome","uris":["urn:miriam:reactome"],"homepage":"http://www.reactome.org/","registryIdentifier":"MIR:00000018"},"EC":{"commonName":"Enzyme Nomenclature","uris":["urn:miriam:ec-code"],"homepage":"http://www.enzyme-database.org/","registryIdentifier":"MIR:00000004"},"DOI":{"commonName":"Digital Object Identifier","uris":["urn:miriam:doi"],"homepage":"http://www.doi.org/","registryIdentifier":"MIR:00000019"},"UNIPROT_ISOFORM":{"commonName":"UniProt Isoform","uris":["urn:miriam:uniprot.isoform"],"homepage":"http://www.uniprot.org/","registryIdentifier":"MIR:00000388"},"OMIM":{"commonName":"Online Mendelian Inheritance in Man","uris":["urn:miriam:omim"],"homepage":"http://omim.org/","registryIdentifier":"MIR:00000016"},"DRUGBANK_TARGET_V4":{"commonName":"DrugBank Target v4","uris":["urn:miriam:drugbankv4.target"],"homepage":"http://www.drugbank.ca/targets","registryIdentifier":"MIR:00000528"},"MIR_TAR_BASE_MATURE_SEQUENCE":{"commonName":"miRTarBase Mature Sequence Database","uris":["urn:miriam:mirtarbase"],"homepage":"http://mirtarbase.mbc.nctu.edu.tw/","registryIdentifier":"MIR:00100739"},"CHEMBL_COMPOUND":{"commonName":"ChEMBL","uris":["urn:miriam:chembl.compound"],"homepage":"https://www.ebi.ac.uk/chembldb/","registryIdentifier":"MIR:00000084"},"KEGG_PATHWAY":{"commonName":"Kegg Pathway","uris":["urn:miriam:kegg.pathway"],"homepage":"http://www.genome.jp/kegg/pathway.html","registryIdentifier":"MIR:00000012"},"CAS":{"commonName":"Chemical Abstracts Service","uris":["urn:miriam:cas"],"homepage":"http://commonchemistry.org","registryIdentifier":"MIR:00000237"},"REFSEQ":{"commonName":"RefSeq","uris":["urn:miriam:refseq"],"homepage":"http://www.ncbi.nlm.nih.gov/projects/RefSeq/","registryIdentifier":"MIR:00000039"},"WORM_BASE":{"commonName":"WormBase","uris":["urn:miriam:wormbase"],"homepage":"http://wormbase.bio2rdf.org/fct","registryIdentifier":"MIR:00000027"},"MI_R_BASE_SEQUENCE":{"commonName":"miRBase Sequence Database","uris":["urn:miriam:mirbase"],"homepage":"http://www.mirbase.org/","registryIdentifier":"MIR:00000078"},"TAIR_LOCUS":{"commonName":"TAIR Locus","uris":["urn:miriam:tair.locus"],"homepage":"http://arabidopsis.org/index.jsp","registryIdentifier":"MIR:00000050"},"PHARM":{"commonName":"PharmGKB Pathways","uris":["urn:miriam:pharmgkb.pathways"],"homepage":"http://www.pharmgkb.org/","registryIdentifier":"MIR:00000089"},"PDB":{"commonName":"Protein Data Bank","uris":["urn:miriam:pdb"],"homepage":"http://www.pdbe.org/","registryIdentifier":"MIR:00000020"},"PANTHER":{"commonName":"PANTHER Family","uris":["urn:miriam:panther.family","urn:miriam:panther"],"homepage":"http://www.pantherdb.org/","registryIdentifier":"MIR:00000060"},"TAXONOMY":{"commonName":"Taxonomy","uris":["urn:miriam:taxonomy"],"homepage":"http://www.ncbi.nlm.nih.gov/taxonomy/","registryIdentifier":"MIR:00000006"},"UNIGENE":{"commonName":"UniGene","uris":["urn:miriam:unigene"],"homepage":"http://www.ncbi.nlm.nih.gov/unigene","registryIdentifier":"MIR:00000346"},"HGNC":{"commonName":"HGNC","uris":["urn:miriam:hgnc"],"homepage":"http://www.genenames.org","registryIdentifier":"MIR:00000080"},"HGNC_SYMBOL":{"commonName":"HGNC Symbol","uris":["urn:miriam:hgnc.symbol"],"homepage":"http://www.genenames.org","registryIdentifier":"MIR:00000362"},"COG":{"commonName":"Clusters of Orthologous Groups","uris":["urn:miriam:cogs"],"homepage":"https://www.ncbi.nlm.nih.gov/COG/","registryIdentifier":"MIR:00000296"},"WIKIPATHWAYS":{"commonName":"WikiPathways","uris":["urn:miriam:wikipathways"],"homepage":"http://www.wikipathways.org/","registryIdentifier":"MIR:00000076"},"HMDB":{"commonName":"HMDB","uris":["urn:miriam:hmdb"],"homepage":"http://www.hmdb.ca/","registryIdentifier":"MIR:00000051"},"CHEMSPIDER":{"commonName":"ChemSpider","uris":["urn:miriam:chemspider"],"homepage":"http://www.chemspider.com//","registryIdentifier":"MIR:00000138"},"ENSEMBL":{"commonName":"Ensembl","uris":["urn:miriam:ensembl"],"homepage":"www.ensembl.org","registryIdentifier":"MIR:00000003"},"GO":{"commonName":"Gene Ontology","uris":["urn:miriam:obo.go","urn:miriam:go"],"homepage":"http://amigo.geneontology.org/amigo","registryIdentifier":"MIR:00000022"},"KEGG_REACTION":{"commonName":"Kegg Reaction","uris":["urn:miriam:kegg.reaction"],"homepage":"http://www.genome.jp/kegg/reaction/","registryIdentifier":"MIR:00000014"},"KEGG_ORTHOLOGY":{"commonName":"KEGG Orthology","uris":["urn:miriam:kegg.orthology"],"homepage":"http://www.genome.jp/kegg/ko.html","registryIdentifier":"MIR:00000116"},"PUBCHEM":{"commonName":"PubChem-compound","uris":["urn:miriam:pubchem.compound"],"homepage":"http://pubchem.ncbi.nlm.nih.gov/","registryIdentifier":"MIR:00000034"},"MESH_2012":{"commonName":"MeSH 2012","uris":["urn:miriam:mesh.2012","urn:miriam:mesh"],"homepage":"http://www.nlm.nih.gov/mesh/","registryIdentifier":"MIR:00000270"},"MGD":{"commonName":"Mouse Genome Database","uris":["urn:miriam:mgd"],"homepage":"http://www.informatics.jax.org/","registryIdentifier":"MIR:00000037"},"ENTREZ":{"commonName":"Entrez Gene","uris":["urn:miriam:ncbigene","urn:miriam:entrez.gene"],"homepage":"http://www.ncbi.nlm.nih.gov/gene","registryIdentifier":"MIR:00000069"},"PUBCHEM_SUBSTANCE":{"commonName":"PubChem-substance","uris":["urn:miriam:pubchem.substance"],"homepage":"http://pubchem.ncbi.nlm.nih.gov/","registryIdentifier":"MIR:00000033"},"CCDS":{"commonName":"Consensus CDS","uris":["urn:miriam:ccds"],"homepage":"http://www.ncbi.nlm.nih.gov/CCDS/","registryIdentifier":"MIR:00000375"},"KEGG_GENES":{"commonName":"Kegg Genes","uris":["urn:miriam:kegg.genes","urn:miriam:kegg.genes:hsa"],"homepage":"http://www.genome.jp/kegg/genes.html","registryIdentifier":"MIR:00000070"},"TOXICOGENOMIC_CHEMICAL":{"commonName":"Toxicogenomic Chemical","uris":["urn:miriam:ctd.chemical"],"homepage":"http://ctdbase.org/","registryIdentifier":"MIR:00000098"},"SGD":{"commonName":"Saccharomyces Genome Database","uris":["urn:miriam:sgd"],"homepage":"http://www.yeastgenome.org/","registryIdentifier":"MIR:00000023"},"KEGG_COMPOUND":{"commonName":"Kegg Compound","uris":["urn:miriam:kegg.compound"],"homepage":"http://www.genome.jp/kegg/ligand.html","registryIdentifier":"MIR:00000013"},"INTERPRO":{"commonName":"InterPro","uris":["urn:miriam:interpro"],"homepage":"http://www.ebi.ac.uk/interpro/","registryIdentifier":"MIR:00000011"},"UNKNOWN":{"commonName":"Unknown","uris":[],"homepage":null,"registryIdentifier":null},"DRUGBANK":{"commonName":"DrugBank","uris":["urn:miriam:drugbank"],"homepage":"http://www.drugbank.ca/","registryIdentifier":"MIR:00000102"},"PUBMED":{"commonName":"PubMed","uris":["urn:miriam:pubmed"],"homepage":"http://www.ncbi.nlm.nih.gov/PubMed/","registryIdentifier":"MIR:00000015"}},"unitTypes":[{"name":"ampere","id":"AMPERE"},{"name":"becquerel","id":"BECQUEREL"},{"name":"candela","id":"CANDELA"},{"name":"coulumb","id":"COULUMB"},{"name":"dimensionless","id":"DIMENSIONLESS"},{"name":"farad","id":"FARAD"},{"name":"gram","id":"GRAM"},{"name":"gray","id":"GRAY"},{"name":"henry","id":"HENRY"},{"name":"hertz","id":"HERTZ"},{"name":"item","id":"ITEM"},{"name":"joule","id":"JOULE"},{"name":"katal","id":"KATAL"},{"name":"kelvin","id":"KELVIN"},{"name":"kilogram","id":"KILOGRAM"},{"name":"litre","id":"LITRE"},{"name":"lumen","id":"LUMEN"},{"name":"lux","id":"LUX"},{"name":"metre","id":"METRE"},{"name":"mole","id":"MOLE"},{"name":"newton","id":"NEWTON"},{"name":"ohm","id":"OHM"},{"name":"pascal","id":"PASCAL"},{"name":"radian","id":"RADIAN"},{"name":"second","id":"SECOND"},{"name":"siemens","id":"SIEMENS"},{"name":"sievert","id":"SIEVERT"},{"name":"steradian","id":"STERADIAN"},{"name":"tesla","id":"TESLA"},{"name":"volt","id":"VOLT"},{"name":"watt","id":"WATT"},{"name":"weber","id":"WEBER"}],"options":[{"idObject":9,"type":"EMAIL_ADDRESS","value":"gawron13@o2.pl","valueType":"EMAIL","commonName":"E-mail address"},{"idObject":10,"type":"EMAIL_LOGIN","value":"gawron13","valueType":"STRING","commonName":"E-mail server login"},{"idObject":11,"type":"EMAIL_PASSWORD","value":"k13liszk!","valueType":"PASSWORD","commonName":"E-mail server password"},{"idObject":13,"type":"EMAIL_IMAP_SERVER","value":"your.imap.domain.com","valueType":"STRING","commonName":"IMAP server"},{"idObject":12,"type":"EMAIL_SMTP_SERVER","value":"poczta.o2.pl","valueType":"STRING","commonName":"SMTP server"},{"idObject":14,"type":"EMAIL_SMTP_PORT","value":"25","valueType":"INTEGER","commonName":"SMTP port"},{"idObject":6,"type":"DEFAULT_MAP","value":"sample","valueType":"STRING","commonName":"Default Project Id"},{"idObject":4,"type":"LOGO_IMG","value":"udl.png","valueType":"URL","commonName":"Logo icon"},{"idObject":3,"type":"LOGO_LINK","value":"http://wwwen.uni.lu/","valueType":"URL","commonName":"Logo link (after click)"},{"idObject":7,"type":"SEARCH_DISTANCE","value":"10","valueType":"DOUBLE","commonName":"Max distance for clicking on element (px)"},{"idObject":1,"type":"REQUEST_ACCOUNT_EMAIL","value":"your.email@domain.com","valueType":"EMAIL","commonName":"Email used for requesting an account"},{"idObject":8,"type":"SEARCH_RESULT_NUMBER","value":"100","valueType":"INTEGER","commonName":"Max number of results in search box. "},{"idObject":2,"type":"GOOGLE_ANALYTICS_IDENTIFIER","value":"","valueType":"STRING","commonName":"Google Analytics tracking ID used for statistics"},{"idObject":5,"type":"LOGO_TEXT","value":"University of Luxembourg","valueType":"STRING","commonName":"Logo description"},{"idObject":56,"type":"X_FRAME_DOMAIN","value":"http://localhost:8080/","valueType":"URL","commonName":"Domain allowed to connect via x-frame technology"},{"idObject":131,"type":"BIG_FILE_STORAGE_DIR","value":"minerva-big/","valueType":"STRING","commonName":"Path to store big files"},{"idObject":138,"type":"LEGEND_FILE_1","value":"resources/images/legend_a.png","valueType":"URL","commonName":"Legend 1 image file"},{"idObject":139,"type":"LEGEND_FILE_2","value":"resources/images/legend_b.png","valueType":"URL","commonName":"Legend 2 image file"},{"idObject":140,"type":"LEGEND_FILE_3","value":"resources/images/legend_c.png","valueType":"URL","commonName":"Legend 3 image file"},{"idObject":141,"type":"LEGEND_FILE_4","value":"resources/images/legend_d.png","valueType":"URL","commonName":"Legend 4 image file"},{"idObject":142,"type":"USER_MANUAL_FILE","value":"resources/other/user_guide.pdf","valueType":"URL","commonName":"User manual file"},{"idObject":205,"type":"MIN_COLOR_VAL","value":"FF0000","valueType":"COLOR","commonName":"Overlay color for negative values"},{"idObject":206,"type":"MAX_COLOR_VAL","value":"fbff00","valueType":"COLOR","commonName":"Overlay color for postive values"},{"idObject":218,"type":"SIMPLE_COLOR_VAL","value":"00ff40","valueType":"COLOR","commonName":"Overlay color when no values are defined"},{"idObject":239,"type":"NEUTRAL_COLOR_VAL","value":"0400ff","valueType":"COLOR","commonName":"Overlay color for value=0"},{"idObject":252,"type":"OVERLAY_OPACITY","value":"0.8","valueType":"DOUBLE","commonName":"Opacity used when drwaing data overlays (value between 0.0-1.0)"},{"idObject":253,"type":"REQUEST_ACCOUNT_DEFAULT_CONTENT","value":"Dear Diseas map team,\n\nI would like to request for an account.\n\nKind regards","valueType":"TEXT","commonName":"Email content used for requesting an account"},{"idObject":266,"type":"DEFAULT_VIEW_PROJECT","value":"true","valueType":"BOOLEAN","commonName":"Default user privilege for: View project"},{"idObject":267,"type":"DEFAULT_EDIT_COMMENTS_PROJECT","value":"false","valueType":"BOOLEAN","commonName":"Default user privilege for: Manage comments"},{"idObject":268,"type":"DEFAULT_LAYOUT_MANAGEMENT","value":"false","valueType":"BOOLEAN","commonName":"Default user privilege for: Manage layouts"}],"privilegeTypes":{"VIEW_PROJECT":{"commonName":"View project","valueType":"boolean","objectType":"Project"},"LAYOUT_MANAGEMENT":{"commonName":"Manage layouts","valueType":"boolean","objectType":"Project"},"PROJECT_MANAGEMENT":{"commonName":"Map management","valueType":"boolean","objectType":null},"CUSTOM_LAYOUTS":{"commonName":"Custom layouts","valueType":"int","objectType":null},"ADD_MAP":{"commonName":"Add project","valueType":"boolean","objectType":null},"LAYOUT_VIEW":{"commonName":"View layout","valueType":"boolean","objectType":"Layout"},"MANAGE_GENOMES":{"commonName":"Manage genomes","valueType":"boolean","objectType":null},"EDIT_COMMENTS_PROJECT":{"commonName":"Manage comments","valueType":"boolean","objectType":"Project"},"CONFIGURATION_MANAGE":{"commonName":"Manage configuration","valueType":"boolean","objectType":null},"USER_MANAGEMENT":{"commonName":"User management","valueType":"boolean","objectType":null}},"overlayTypes":[{"name":"GENERIC"},{"name":"GENETIC_VARIANT"}]} \ No newline at end of file diff --git a/frontend-js/testFiles/apiCalls/users/admin b/frontend-js/testFiles/apiCalls/users/admin index 741c95d006c28fbf4f81a9c23ceac0079dde8ebe..7a0b8dd1ba308982491eb54f25b8e0c27708a0c2 100644 --- a/frontend-js/testFiles/apiCalls/users/admin +++ b/frontend-js/testFiles/apiCalls/users/admin @@ -1 +1 @@ -{"privileges":[{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19102},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":17},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":15763},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":14898},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":16045},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":18115},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":18115},{"type":"VIEW_PROJECT","value":1,"objectId":20},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":15763},{"type":"VIEW_PROJECT","value":1,"objectId":16668},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":17051},{"type":"VIEW_PROJECT","value":1,"objectId":11},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":20},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":18039},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":22},{"type":"CONFIGURATION_MANAGE","value":1},{"type":"MANAGE_GENOMES","value":1},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":16668},{"type":"VIEW_PROJECT","value":1,"objectId":18039},{"type":"VIEW_PROJECT","value":1,"objectId":22},{"type":"VIEW_PROJECT","value":1,"objectId":19103},{"type":"VIEW_PROJECT","value":1,"objectId":9},{"type":"VIEW_PROJECT","value":1,"objectId":15764},{"type":"VIEW_PROJECT","value":1,"objectId":18},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":18115},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":18},{"type":"VIEW_PROJECT","value":1,"objectId":7},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":19102},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":14897},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":17051},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":14898},{"type":"VIEW_PROJECT","value":1,"objectId":6},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":16045},{"type":"VIEW_PROJECT","value":1,"objectId":21},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":19103},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":11},{"type":"VIEW_PROJECT","value":1,"objectId":18115},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":17051},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":1},{"type":"ADD_MAP","value":1},{"type":"VIEW_PROJECT","value":1,"objectId":17},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":15764},{"type":"VIEW_PROJECT","value":1,"objectId":14897},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":10},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":22},{"type":"VIEW_PROJECT","value":1,"objectId":14898},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":16045},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":15763},{"type":"VIEW_PROJECT","value":1,"objectId":10},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":14897},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":15763},{"type":"VIEW_PROJECT","value":1,"objectId":8},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":7},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":16668},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":17},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":15764},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":19},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":21},{"type":"USER_MANAGEMENT","value":1},{"type":"VIEW_PROJECT","value":1,"objectId":17051},{"type":"VIEW_PROJECT","value":1,"objectId":15763},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":18039},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":19103},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":7},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":18},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":16045},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":15764},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":16668},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":8},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":10},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":15764},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19103},{"type":"CUSTOM_LAYOUTS","value":100},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":11},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":14897},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":18039},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":6},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":6},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":16668},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":19},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":20},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":18115},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":21},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":8},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":9},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":18039},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":1},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":14898},{"type":"PROJECT_MANAGEMENT","value":1},{"type":"VIEW_PROJECT","value":1,"objectId":19},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":19102},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":9},{"type":"VIEW_PROJECT","value":1,"objectId":16045},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":19102},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":14897},{"type":"VIEW_PROJECT","value":1,"objectId":1},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":17051},{"type":"VIEW_PROJECT","value":1,"objectId":19102},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":19103},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":14898},{"type":"CUSTOM_LAYOUTS_AVAILABLE","value":96}],"removed":false,"surname":"","minColor":null,"name":"admin","maxColor":null,"id":1,"login":"admin","email":"piotr.gawron@uni.lu"} \ No newline at end of file +{"simpleColor":null,"privileges":[{"type":"VIEW_PROJECT","value":1,"objectId":14898},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19103},{"type":"ADD_MAP","value":1},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":15764},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":19184},{"type":"VIEW_PROJECT","value":1,"objectId":6},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":17051},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":19102},{"type":"VIEW_PROJECT","value":1,"objectId":21113},{"type":"VIEW_PROJECT","value":1,"objectId":19187},{"type":"VIEW_PROJECT","value":1,"objectId":16668},{"type":"VIEW_PROJECT","value":1,"objectId":18115},{"type":"VIEW_PROJECT","value":1,"objectId":18039},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":14898},{"type":"VIEW_PROJECT","value":1,"objectId":20},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":6},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":15763},{"type":"VIEW_PROJECT","value":1,"objectId":20620},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":14898},{"type":"VIEW_PROJECT","value":1,"objectId":19},{"type":"CUSTOM_LAYOUTS","value":100},{"type":"MANAGE_GENOMES","value":1},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":20812},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":10},{"type":"VIEW_PROJECT","value":1,"objectId":21417},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":21},{"type":"VIEW_PROJECT","value":1,"objectId":22},{"type":"VIEW_PROJECT","value":1,"objectId":20605},{"type":"VIEW_PROJECT","value":1,"objectId":9},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":21113},{"type":"VIEW_PROJECT","value":1,"objectId":17},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":18039},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19186},{"type":"USER_MANAGEMENT","value":1},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":11},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":20603},{"type":"VIEW_PROJECT","value":1,"objectId":1},{"type":"VIEW_PROJECT","value":1,"objectId":18},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":21424},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":19103},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":21432},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":20603},{"type":"VIEW_PROJECT","value":1,"objectId":15764},{"type":"VIEW_PROJECT","value":1,"objectId":19103},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":21417},{"type":"VIEW_PROJECT","value":1,"objectId":15763},{"type":"PROJECT_MANAGEMENT","value":1},{"type":"VIEW_PROJECT","value":1,"objectId":21424},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":21430},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":19},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":16668},{"type":"VIEW_PROJECT","value":1,"objectId":11},{"type":"VIEW_PROJECT","value":1,"objectId":17051},{"type":"CONFIGURATION_MANAGE","value":1},{"type":"VIEW_PROJECT","value":1,"objectId":21},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":19187},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":22},{"type":"VIEW_PROJECT","value":1,"objectId":10},{"type":"VIEW_PROJECT","value":1,"objectId":20812},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":1},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":20620},{"type":"VIEW_PROJECT","value":1,"objectId":21430},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":20620},{"type":"VIEW_PROJECT","value":1,"objectId":8},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":15764},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":7},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":21430},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":18},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":21424},{"type":"VIEW_PROJECT","value":1,"objectId":20603},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":20812},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":18115},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":20605},{"type":"VIEW_PROJECT","value":1,"objectId":20604},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":21432},{"type":"VIEW_PROJECT","value":1,"objectId":21432},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":16668},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":9},{"type":"VIEW_PROJECT","value":1,"objectId":7},{"type":"VIEW_PROJECT","value":1,"objectId":19184},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":19186},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":18039},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":8},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":20604},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":17051},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":21417},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":20605},{"type":"VIEW_PROJECT","value":1,"objectId":19186},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":19102},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19184},{"type":"VIEW_PROJECT","value":1,"objectId":19102},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":20604},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":21113},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":18115},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":15763},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":19187},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":17},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":20},{"type":"VIEW_PROJECT","value":1,"objectId":null},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":null},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":null},{"type":"CUSTOM_LAYOUTS_AVAILABLE","value":86}],"preferences":{"element-required-annotations":{"lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.BottomSquareCompartment":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Chemical":{"require-at-least-one":true,"annotation-list":["CHEBI","PUBCHEM","PUBCHEM_SUBSTANCE"]},"lcsb.mapviewer.model.map.species.Degraded":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.compartment.PathwayCompartment":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.SimpleMolecule":{"require-at-least-one":true,"annotation-list":["CHEBI","PUBCHEM","PUBCHEM_SUBSTANCE"]},"lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.ReceptorProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Gene":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.compartment.OvalCompartment":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Protein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.BioEntity":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.GenericProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.TransportReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.IonChannelProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Phenotype":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Drug":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Element":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.DissociationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.SquareCompartment":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Ion":{"require-at-least-one":true,"annotation-list":["CHEBI","PUBCHEM","PUBCHEM_SUBSTANCE"]},"lcsb.mapviewer.model.map.reaction.Reaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.RightSquareCompartment":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.TranslationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.AntisenseRna":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Complex":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Unknown":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.TruncationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.LeftSquareCompartment":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.TruncatedProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL","CHEMBL_COMPOUND"]},"lcsb.mapviewer.model.map.compartment.Compartment":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.compartment.TopSquareCompartment":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Species":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Rna":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]}},"element-valid-annotations":{"lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.compartment.BottomSquareCompartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.species.Chemical":["CHEBI","HMDB","KEGG_COMPOUND","PUBCHEM","PUBCHEM_SUBSTANCE","PUBMED"],"lcsb.mapviewer.model.map.species.Degraded":["PUBMED"],"lcsb.mapviewer.model.map.compartment.PathwayCompartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.species.SimpleMolecule":["CHEBI","HMDB","KEGG_COMPOUND","PUBCHEM","PUBCHEM_SUBSTANCE","PUBMED"],"lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.species.ReceptorProtein":["CHEMBL_TARGET","EC","ENSEMBL","ENTREZ","HGNC","HGNC_SYMBOL","INTERPRO","KEGG_GENES","MGD","PANTHER","PUBMED","REFSEQ","UNIPROT","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.species.Gene":["ENSEMBL","ENTREZ","HGNC","HGNC_SYMBOL","KEGG_GENES","MGD","PANTHER","PUBMED","REFSEQ","UNIPROT"],"lcsb.mapviewer.model.map.compartment.OvalCompartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.species.Protein":["CHEMBL_TARGET","EC","ENSEMBL","ENTREZ","HGNC","HGNC_SYMBOL","INTERPRO","KEGG_GENES","MGD","PANTHER","PUBMED","REFSEQ","UNIPROT","UNIPROT_ISOFORM","CHEMBL_COMPOUND"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.BioEntity":["PUBMED"],"lcsb.mapviewer.model.map.species.GenericProtein":["CHEMBL_TARGET","EC","ENSEMBL","ENTREZ","HGNC","HGNC_SYMBOL","INTERPRO","KEGG_GENES","MGD","PANTHER","PUBMED","REFSEQ","UNIPROT","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.reaction.type.TransportReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.species.IonChannelProtein":["CHEMBL_TARGET","EC","ENSEMBL","ENTREZ","HGNC","HGNC_SYMBOL","INTERPRO","KEGG_GENES","MGD","PANTHER","PUBMED","REFSEQ","UNIPROT","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.species.Phenotype":["GO","MESH_2012","OMIM","PUBMED"],"lcsb.mapviewer.model.map.species.Drug":["CHEBI","CHEMBL_COMPOUND","DRUGBANK","HMDB","PUBMED"],"lcsb.mapviewer.model.map.species.Element":["PUBMED"],"lcsb.mapviewer.model.map.reaction.type.DissociationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.compartment.SquareCompartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.species.Ion":["CHEBI","HMDB","KEGG_COMPOUND","PUBCHEM","PUBCHEM_SUBSTANCE","PUBMED"],"lcsb.mapviewer.model.map.reaction.Reaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.compartment.RightSquareCompartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.reaction.type.TranslationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.species.AntisenseRna":["PUBMED"],"lcsb.mapviewer.model.map.species.Complex":["CHEMBL_TARGET","EC","GO","INTERPRO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.species.Unknown":["PUBMED"],"lcsb.mapviewer.model.map.reaction.type.TruncationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.compartment.LeftSquareCompartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.species.TruncatedProtein":["CHEMBL_TARGET","EC","ENSEMBL","ENTREZ","HGNC","HGNC_SYMBOL","INTERPRO","KEGG_GENES","MGD","PANTHER","PUBMED","REFSEQ","UNIPROT","UNIPROT_ISOFORM","CHEMBL_COMPOUND"],"lcsb.mapviewer.model.map.compartment.Compartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.compartment.TopSquareCompartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.species.Species":["PUBMED"],"lcsb.mapviewer.model.map.species.Rna":["ENSEMBL","ENTREZ","HGNC","HGNC_SYMBOL","KEGG_GENES","MGD","PANTHER","PUBMED","REFSEQ","UNIPROT"],"lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"]},"element-annotators":{"lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction":[],"lcsb.mapviewer.model.map.compartment.BottomSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction":[],"lcsb.mapviewer.model.map.species.Chemical":["Chebi"],"lcsb.mapviewer.model.map.species.Degraded":[],"lcsb.mapviewer.model.map.compartment.PathwayCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.species.SimpleMolecule":["Chebi"],"lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction":[],"lcsb.mapviewer.model.map.species.ReceptorProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction":[],"lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction":[],"lcsb.mapviewer.model.map.species.Gene":["HGNC"],"lcsb.mapviewer.model.map.compartment.OvalCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction":[],"lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction":[],"lcsb.mapviewer.model.map.species.Protein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction":[],"lcsb.mapviewer.model.map.BioEntity":[],"lcsb.mapviewer.model.map.species.GenericProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.TransportReaction":[],"lcsb.mapviewer.model.map.species.IonChannelProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction":[],"lcsb.mapviewer.model.map.species.Phenotype":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Drug":[],"lcsb.mapviewer.model.map.species.Element":[],"lcsb.mapviewer.model.map.reaction.type.DissociationReaction":[],"lcsb.mapviewer.model.map.compartment.SquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Ion":["Chebi"],"lcsb.mapviewer.model.map.reaction.Reaction":[],"lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction":[],"lcsb.mapviewer.model.map.compartment.RightSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.TranslationReaction":[],"lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction":[],"lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction":[],"lcsb.mapviewer.model.map.species.AntisenseRna":[],"lcsb.mapviewer.model.map.species.Complex":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Unknown":[],"lcsb.mapviewer.model.map.reaction.type.TruncationReaction":[],"lcsb.mapviewer.model.map.compartment.LeftSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction":[],"lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction":[],"lcsb.mapviewer.model.map.species.TruncatedProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.compartment.Compartment":["Gene Ontology"],"lcsb.mapviewer.model.map.compartment.TopSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Species":[],"lcsb.mapviewer.model.map.species.Rna":["HGNC"],"lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction":[],"lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction":[]},"project-upload":{"auto-resize":true,"sbgn":false,"cache-data":false,"semantic-zooming":false,"annotate-model":false,"validate-miriam":true}},"removed":false,"surname":"","minColor":null,"name":"admin","neutralColor":null,"maxColor":null,"id":1,"login":"admin","email":"piotr.gawron@uni.lu"} \ No newline at end of file diff --git a/frontend-js/testFiles/apiCalls/users/anonymous/token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/users/anonymous/token=MOCK_TOKEN_ID& index ee0146adc4cef43f5f11fa07173a5f30de8fc712..f6067fc49756a7c2daed2782d5201eb40ac91f27 100644 --- a/frontend-js/testFiles/apiCalls/users/anonymous/token=MOCK_TOKEN_ID& +++ b/frontend-js/testFiles/apiCalls/users/anonymous/token=MOCK_TOKEN_ID& @@ -1 +1 @@ -{"simpleColor":null,"privileges":[{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":18039},{"type":"USER_MANAGEMENT","value":0},{"type":"VIEW_PROJECT","value":1,"objectId":10},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19186},{"type":"VIEW_PROJECT","value":1,"objectId":21},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19187},{"type":"VIEW_PROJECT","value":1,"objectId":1},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19184},{"type":"VIEW_PROJECT","value":1,"objectId":19},{"type":"CUSTOM_LAYOUTS","value":0},{"type":"VIEW_PROJECT","value":1,"objectId":18039},{"type":"VIEW_PROJECT","value":1,"objectId":19102},{"type":"MANAGE_GENOMES","value":1},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":17051},{"type":"VIEW_PROJECT","value":1,"objectId":18305},{"type":"VIEW_PROJECT","value":1,"objectId":17},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":15763},{"type":"VIEW_PROJECT","value":1,"objectId":6},{"type":"VIEW_PROJECT","value":1,"objectId":15764},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":14898},{"type":"PROJECT_MANAGEMENT","value":0},{"type":"VIEW_PROJECT","value":1,"objectId":17051},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19102},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":17051},{"type":"VIEW_PROJECT","value":1,"objectId":18115},{"type":"VIEW_PROJECT","value":1,"objectId":15763},{"type":"VIEW_PROJECT","value":1,"objectId":14898},{"type":"VIEW_PROJECT","value":1,"objectId":22},{"type":"VIEW_PROJECT","value":0,"objectId":19184},{"type":"VIEW_PROJECT","value":1,"objectId":20605},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":16668},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19103},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":14898},{"type":"CONFIGURATION_MANAGE","value":0},{"type":"VIEW_PROJECT","value":1,"objectId":20},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":18115},{"type":"VIEW_PROJECT","value":1,"objectId":7},{"type":"VIEW_PROJECT","value":1,"objectId":18},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":15764},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":18115},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":16668},{"type":"VIEW_PROJECT","value":1,"objectId":19186},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":15764},{"type":"VIEW_PROJECT","value":1,"objectId":20603},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19103},{"type":"VIEW_PROJECT","value":1,"objectId":19187},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19184},{"type":"VIEW_PROJECT","value":1,"objectId":11},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19187},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":15763},{"type":"VIEW_PROJECT","value":1,"objectId":20604},{"type":"VIEW_PROJECT","value":1,"objectId":16668},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":18039},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19102},{"type":"VIEW_PROJECT","value":1,"objectId":8},{"type":"ADD_MAP","value":0},{"type":"VIEW_PROJECT","value":1,"objectId":9},{"type":"VIEW_PROJECT","value":1,"objectId":19103},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19186},{"type":"CUSTOM_LAYOUTS_AVAILABLE","value":0}],"preferences":{"element-required-annotations":{"lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.BottomSquareCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Chemical":{"require-at-least-one":true,"annotation-list":["PUBCHEM_SUBSTANCE","PUBCHEM","CHEBI"]},"lcsb.mapviewer.model.map.species.Degraded":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.compartment.PathwayCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.species.SimpleMolecule":{"require-at-least-one":true,"annotation-list":["PUBCHEM_SUBSTANCE","PUBCHEM","CHEBI"]},"lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.ReceptorProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Gene":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.compartment.OvalCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Protein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.BioEntity":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.species.GenericProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.TransportReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.IonChannelProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Phenotype":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Drug":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Element":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.DissociationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.SquareCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Ion":{"require-at-least-one":true,"annotation-list":["PUBCHEM_SUBSTANCE","PUBCHEM","CHEBI"]},"lcsb.mapviewer.model.map.reaction.Reaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.RightSquareCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.TranslationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.AntisenseRna":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Complex":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Unknown":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.TruncationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.LeftSquareCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.TruncatedProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.compartment.Compartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.compartment.TopSquareCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Species":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Rna":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]}},"element-valid-annotations":{"lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.compartment.BottomSquareCompartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.Chemical":["PUBCHEM_SUBSTANCE","PUBMED","PUBCHEM","HMDB","CHEBI","KEGG_COMPOUND"],"lcsb.mapviewer.model.map.species.Degraded":["PUBMED"],"lcsb.mapviewer.model.map.compartment.PathwayCompartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.species.SimpleMolecule":["PUBCHEM_SUBSTANCE","PUBMED","PUBCHEM","HMDB","CHEBI","KEGG_COMPOUND"],"lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.ReceptorProtein":["KEGG_GENES","INTERPRO","HGNC_SYMBOL","UNIPROT","CHEMBL_TARGET","ENSEMBL","PANTHER","EC","REFSEQ","PUBMED","HGNC","ENTREZ","MGD","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.Gene":["KEGG_GENES","REFSEQ","PUBMED","HGNC","HGNC_SYMBOL","UNIPROT","ENSEMBL","PANTHER","ENTREZ","MGD"],"lcsb.mapviewer.model.map.compartment.OvalCompartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.Protein":["KEGG_GENES","INTERPRO","HGNC_SYMBOL","UNIPROT","CHEMBL_TARGET","ENSEMBL","PANTHER","EC","REFSEQ","PUBMED","HGNC","ENTREZ","MGD","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.BioEntity":["PUBMED"],"lcsb.mapviewer.model.map.species.GenericProtein":["KEGG_GENES","INTERPRO","HGNC_SYMBOL","UNIPROT","CHEMBL_TARGET","ENSEMBL","PANTHER","EC","REFSEQ","PUBMED","HGNC","ENTREZ","MGD","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.reaction.type.TransportReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.IonChannelProtein":["KEGG_GENES","INTERPRO","HGNC_SYMBOL","UNIPROT","CHEMBL_TARGET","ENSEMBL","PANTHER","EC","REFSEQ","PUBMED","HGNC","ENTREZ","MGD","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.Phenotype":["PUBMED","OMIM","GO","MESH_2012"],"lcsb.mapviewer.model.map.species.Drug":["CHEMBL_COMPOUND","DRUGBANK","PUBMED","HMDB","CHEBI"],"lcsb.mapviewer.model.map.species.Element":["PUBMED"],"lcsb.mapviewer.model.map.reaction.type.DissociationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.compartment.SquareCompartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.species.Ion":["PUBCHEM_SUBSTANCE","PUBMED","PUBCHEM","HMDB","CHEBI","KEGG_COMPOUND"],"lcsb.mapviewer.model.map.reaction.Reaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.compartment.RightSquareCompartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.reaction.type.TranslationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.AntisenseRna":["PUBMED"],"lcsb.mapviewer.model.map.species.Complex":["EC","PUBMED","INTERPRO","CHEMBL_TARGET","GO","MESH_2012"],"lcsb.mapviewer.model.map.species.Unknown":["PUBMED"],"lcsb.mapviewer.model.map.reaction.type.TruncationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.compartment.LeftSquareCompartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.TruncatedProtein":["KEGG_GENES","INTERPRO","HGNC_SYMBOL","UNIPROT","CHEMBL_TARGET","ENSEMBL","PANTHER","EC","REFSEQ","PUBMED","HGNC","ENTREZ","MGD","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.compartment.Compartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.compartment.TopSquareCompartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.species.Species":["PUBMED"],"lcsb.mapviewer.model.map.species.Rna":["KEGG_GENES","REFSEQ","PUBMED","HGNC","HGNC_SYMBOL","UNIPROT","ENSEMBL","PANTHER","ENTREZ","MGD"],"lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"]},"element-annotators":{"lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction":[],"lcsb.mapviewer.model.map.compartment.BottomSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction":[],"lcsb.mapviewer.model.map.species.Chemical":["Chebi"],"lcsb.mapviewer.model.map.species.Degraded":[],"lcsb.mapviewer.model.map.compartment.PathwayCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.species.SimpleMolecule":["Chebi"],"lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction":[],"lcsb.mapviewer.model.map.species.ReceptorProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction":[],"lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction":[],"lcsb.mapviewer.model.map.species.Gene":["HGNC"],"lcsb.mapviewer.model.map.compartment.OvalCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction":[],"lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction":[],"lcsb.mapviewer.model.map.species.Protein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction":[],"lcsb.mapviewer.model.map.BioEntity":[],"lcsb.mapviewer.model.map.species.GenericProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.TransportReaction":[],"lcsb.mapviewer.model.map.species.IonChannelProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction":[],"lcsb.mapviewer.model.map.species.Phenotype":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Drug":[],"lcsb.mapviewer.model.map.species.Element":[],"lcsb.mapviewer.model.map.reaction.type.DissociationReaction":[],"lcsb.mapviewer.model.map.compartment.SquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Ion":["Chebi"],"lcsb.mapviewer.model.map.reaction.Reaction":[],"lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction":[],"lcsb.mapviewer.model.map.compartment.RightSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.TranslationReaction":[],"lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction":[],"lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction":[],"lcsb.mapviewer.model.map.species.AntisenseRna":[],"lcsb.mapviewer.model.map.species.Complex":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Unknown":[],"lcsb.mapviewer.model.map.reaction.type.TruncationReaction":[],"lcsb.mapviewer.model.map.compartment.LeftSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction":[],"lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction":[],"lcsb.mapviewer.model.map.species.TruncatedProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.compartment.Compartment":["Gene Ontology"],"lcsb.mapviewer.model.map.compartment.TopSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Species":[],"lcsb.mapviewer.model.map.species.Rna":["HGNC"],"lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction":[],"lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction":[]},"project-upload":{"auto-resize":true,"sbgn":false,"cache-data":false,"semantic-zooming":false,"annotate-model":false,"validate-miriam":false}},"removed":false,"surname":"","minColor":null,"name":"","maxColor":null,"id":3,"login":"anonymous","email":""} \ No newline at end of file +{"simpleColor":null,"privileges":[{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":14898},{"type":"VIEW_PROJECT","value":1,"objectId":8},{"type":"VIEW_PROJECT","value":1,"objectId":16668},{"type":"VIEW_PROJECT","value":1,"objectId":10},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":16668},{"type":"VIEW_PROJECT","value":1,"objectId":19102},{"type":"VIEW_PROJECT","value":1,"objectId":21430},{"type":"VIEW_PROJECT","value":1,"objectId":21432},{"type":"VIEW_PROJECT","value":1,"objectId":20812},{"type":"VIEW_PROJECT","value":1,"objectId":21417},{"type":"VIEW_PROJECT","value":1,"objectId":18039},{"type":"VIEW_PROJECT","value":1,"objectId":20620},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19102},{"type":"VIEW_PROJECT","value":1,"objectId":19},{"type":"VIEW_PROJECT","value":1,"objectId":15763},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":18039},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19103},{"type":"CONFIGURATION_MANAGE","value":0},{"type":"VIEW_PROJECT","value":1,"objectId":21113},{"type":"VIEW_PROJECT","value":1,"objectId":21},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":17051},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19187},{"type":"VIEW_PROJECT","value":1,"objectId":9},{"type":"VIEW_PROJECT","value":1,"objectId":1},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19184},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19184},{"type":"VIEW_PROJECT","value":1,"objectId":18},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":14898},{"type":"VIEW_PROJECT","value":1,"objectId":7},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19186},{"type":"VIEW_PROJECT","value":1,"objectId":11},{"type":"VIEW_PROJECT","value":1,"objectId":22},{"type":"ADD_MAP","value":0},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":17051},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19187},{"type":"VIEW_PROJECT","value":1,"objectId":18305},{"type":"VIEW_PROJECT","value":1,"objectId":19103},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":15764},{"type":"VIEW_PROJECT","value":1,"objectId":6},{"type":"VIEW_PROJECT","value":1,"objectId":17051},{"type":"MANAGE_GENOMES","value":1},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":16668},{"type":"VIEW_PROJECT","value":1,"objectId":17},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":18039},{"type":"VIEW_PROJECT","value":1,"objectId":20604},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":18115},{"type":"VIEW_PROJECT","value":1,"objectId":20603},{"type":"CUSTOM_LAYOUTS","value":0},{"type":"VIEW_PROJECT","value":1,"objectId":21424},{"type":"VIEW_PROJECT","value":1,"objectId":14898},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":15764},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":18115},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19103},{"type":"VIEW_PROJECT","value":1,"objectId":20},{"type":"PROJECT_MANAGEMENT","value":0},{"type":"VIEW_PROJECT","value":0,"objectId":19184},{"type":"VIEW_PROJECT","value":1,"objectId":15764},{"type":"VIEW_PROJECT","value":1,"objectId":18115},{"type":"VIEW_PROJECT","value":1,"objectId":19187},{"type":"VIEW_PROJECT","value":1,"objectId":20605},{"type":"USER_MANAGEMENT","value":0},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19186},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":15763},{"type":"VIEW_PROJECT","value":1,"objectId":19186},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19102},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":15763},{"type":"VIEW_PROJECT","value":1,"objectId":null},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":null},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":null},{"type":"CUSTOM_LAYOUTS_AVAILABLE","value":0}],"preferences":{"element-required-annotations":{"lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.BottomSquareCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Chemical":{"require-at-least-one":true,"annotation-list":["PUBCHEM_SUBSTANCE","PUBCHEM","CHEBI"]},"lcsb.mapviewer.model.map.species.Degraded":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.compartment.PathwayCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.species.SimpleMolecule":{"require-at-least-one":true,"annotation-list":["PUBCHEM_SUBSTANCE","PUBCHEM","CHEBI"]},"lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.ReceptorProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Gene":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.compartment.OvalCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Protein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.BioEntity":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.species.GenericProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.TransportReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.IonChannelProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Phenotype":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Drug":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Element":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.DissociationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.SquareCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Ion":{"require-at-least-one":true,"annotation-list":["PUBCHEM_SUBSTANCE","PUBCHEM","CHEBI"]},"lcsb.mapviewer.model.map.reaction.Reaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.RightSquareCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.TranslationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.AntisenseRna":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Complex":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Unknown":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.TruncationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.LeftSquareCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.TruncatedProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.compartment.Compartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.compartment.TopSquareCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Species":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Rna":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]}},"element-valid-annotations":{"lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.compartment.BottomSquareCompartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.Chemical":["PUBCHEM_SUBSTANCE","PUBMED","PUBCHEM","HMDB","CHEBI","KEGG_COMPOUND"],"lcsb.mapviewer.model.map.species.Degraded":["PUBMED"],"lcsb.mapviewer.model.map.compartment.PathwayCompartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.species.SimpleMolecule":["PUBCHEM_SUBSTANCE","PUBMED","PUBCHEM","HMDB","CHEBI","KEGG_COMPOUND"],"lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.ReceptorProtein":["KEGG_GENES","INTERPRO","HGNC_SYMBOL","UNIPROT","CHEMBL_TARGET","ENSEMBL","PANTHER","EC","REFSEQ","PUBMED","HGNC","ENTREZ","MGD","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.Gene":["KEGG_GENES","REFSEQ","PUBMED","HGNC","HGNC_SYMBOL","UNIPROT","ENSEMBL","PANTHER","ENTREZ","MGD"],"lcsb.mapviewer.model.map.compartment.OvalCompartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.Protein":["KEGG_GENES","INTERPRO","HGNC_SYMBOL","UNIPROT","CHEMBL_TARGET","ENSEMBL","PANTHER","EC","REFSEQ","PUBMED","HGNC","ENTREZ","MGD","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.BioEntity":["PUBMED"],"lcsb.mapviewer.model.map.species.GenericProtein":["KEGG_GENES","INTERPRO","HGNC_SYMBOL","UNIPROT","CHEMBL_TARGET","ENSEMBL","PANTHER","EC","REFSEQ","PUBMED","HGNC","ENTREZ","MGD","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.reaction.type.TransportReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.IonChannelProtein":["KEGG_GENES","INTERPRO","HGNC_SYMBOL","UNIPROT","CHEMBL_TARGET","ENSEMBL","PANTHER","EC","REFSEQ","PUBMED","HGNC","ENTREZ","MGD","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.Phenotype":["PUBMED","OMIM","GO","MESH_2012"],"lcsb.mapviewer.model.map.species.Drug":["CHEMBL_COMPOUND","DRUGBANK","PUBMED","HMDB","CHEBI"],"lcsb.mapviewer.model.map.species.Element":["PUBMED"],"lcsb.mapviewer.model.map.reaction.type.DissociationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.compartment.SquareCompartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.species.Ion":["PUBCHEM_SUBSTANCE","PUBMED","PUBCHEM","HMDB","CHEBI","KEGG_COMPOUND"],"lcsb.mapviewer.model.map.reaction.Reaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.compartment.RightSquareCompartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.reaction.type.TranslationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.AntisenseRna":["PUBMED"],"lcsb.mapviewer.model.map.species.Complex":["EC","PUBMED","INTERPRO","CHEMBL_TARGET","GO","MESH_2012"],"lcsb.mapviewer.model.map.species.Unknown":["PUBMED"],"lcsb.mapviewer.model.map.reaction.type.TruncationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.compartment.LeftSquareCompartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.TruncatedProtein":["KEGG_GENES","INTERPRO","HGNC_SYMBOL","UNIPROT","CHEMBL_TARGET","ENSEMBL","PANTHER","EC","REFSEQ","PUBMED","HGNC","ENTREZ","MGD","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.compartment.Compartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.compartment.TopSquareCompartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.species.Species":["PUBMED"],"lcsb.mapviewer.model.map.species.Rna":["KEGG_GENES","REFSEQ","PUBMED","HGNC","HGNC_SYMBOL","UNIPROT","ENSEMBL","PANTHER","ENTREZ","MGD"],"lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"]},"element-annotators":{"lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction":[],"lcsb.mapviewer.model.map.compartment.BottomSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction":[],"lcsb.mapviewer.model.map.species.Chemical":["Chebi"],"lcsb.mapviewer.model.map.species.Degraded":[],"lcsb.mapviewer.model.map.compartment.PathwayCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.species.SimpleMolecule":["Chebi"],"lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction":[],"lcsb.mapviewer.model.map.species.ReceptorProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction":[],"lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction":[],"lcsb.mapviewer.model.map.species.Gene":["HGNC"],"lcsb.mapviewer.model.map.compartment.OvalCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction":[],"lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction":[],"lcsb.mapviewer.model.map.species.Protein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction":[],"lcsb.mapviewer.model.map.BioEntity":[],"lcsb.mapviewer.model.map.species.GenericProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.TransportReaction":[],"lcsb.mapviewer.model.map.species.IonChannelProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction":[],"lcsb.mapviewer.model.map.species.Phenotype":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Drug":[],"lcsb.mapviewer.model.map.species.Element":[],"lcsb.mapviewer.model.map.reaction.type.DissociationReaction":[],"lcsb.mapviewer.model.map.compartment.SquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Ion":["Chebi"],"lcsb.mapviewer.model.map.reaction.Reaction":[],"lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction":[],"lcsb.mapviewer.model.map.compartment.RightSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.TranslationReaction":[],"lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction":[],"lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction":[],"lcsb.mapviewer.model.map.species.AntisenseRna":[],"lcsb.mapviewer.model.map.species.Complex":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Unknown":[],"lcsb.mapviewer.model.map.reaction.type.TruncationReaction":[],"lcsb.mapviewer.model.map.compartment.LeftSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction":[],"lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction":[],"lcsb.mapviewer.model.map.species.TruncatedProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.compartment.Compartment":["Gene Ontology"],"lcsb.mapviewer.model.map.compartment.TopSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Species":[],"lcsb.mapviewer.model.map.species.Rna":["HGNC"],"lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction":[],"lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction":[]},"project-upload":{"auto-resize":true,"sbgn":false,"cache-data":false,"semantic-zooming":false,"annotate-model":false,"validate-miriam":false}},"removed":false,"surname":"","minColor":null,"name":"","neutralColor":null,"maxColor":null,"id":3,"login":"anonymous","email":""} \ No newline at end of file diff --git a/frontend-js/testFiles/apiCalls/users/token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/users/token=MOCK_TOKEN_ID& index 8a12b39e694db0c83fe06bba037f74e599cbeece..2cb776c3346298c4e1da97f398620c000c5e4d80 100644 --- a/frontend-js/testFiles/apiCalls/users/token=MOCK_TOKEN_ID& +++ b/frontend-js/testFiles/apiCalls/users/token=MOCK_TOKEN_ID& @@ -1 +1 @@ -[{"simpleColor":null,"privileges":[{"type":"VIEW_PROJECT","value":1,"objectId":17051},{"type":"VIEW_PROJECT","value":1,"objectId":14898},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":18039},{"type":"VIEW_PROJECT","value":1,"objectId":7},{"type":"CUSTOM_LAYOUTS","value":0},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":14898},{"type":"ADD_MAP","value":0},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":16668},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":16668},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":0,"objectId":19102},{"type":"VIEW_PROJECT","value":1,"objectId":15763},{"type":"VIEW_PROJECT","value":1,"objectId":16668},{"type":"VIEW_PROJECT","value":1,"objectId":21},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":15763},{"type":"VIEW_PROJECT","value":1,"objectId":19102},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":17051},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":19184},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":16668},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":17051},{"type":"VIEW_PROJECT","value":1,"objectId":10},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19184},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":17051},{"type":"VIEW_PROJECT","value":1,"objectId":8},{"type":"VIEW_PROJECT","value":1,"objectId":19103},{"type":"VIEW_PROJECT","value":1,"objectId":22},{"type":"VIEW_PROJECT","value":1,"objectId":18115},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":19103},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":18115},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":15764},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":15763},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19103},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":15764},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":18115},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":0,"objectId":15764},{"type":"VIEW_PROJECT","value":1,"objectId":15764},{"type":"VIEW_PROJECT","value":1,"objectId":19187},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":15763},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":18039},{"type":"VIEW_PROJECT","value":0,"objectId":19184},{"type":"VIEW_PROJECT","value":1,"objectId":9},{"type":"PROJECT_MANAGEMENT","value":0},{"type":"VIEW_PROJECT","value":1,"objectId":6},{"type":"VIEW_PROJECT","value":1,"objectId":18039},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":14898},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":18039},{"type":"VIEW_PROJECT","value":1,"objectId":1},{"type":"VIEW_PROJECT","value":1,"objectId":11},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19103},{"type":"VIEW_PROJECT","value":1,"objectId":18305},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":0,"objectId":19184},{"type":"VIEW_PROJECT","value":1,"objectId":19},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":0,"objectId":18039},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":19102},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19102},{"type":"VIEW_PROJECT","value":1,"objectId":17},{"type":"VIEW_PROJECT","value":1,"objectId":18},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":0,"objectId":14898},{"type":"USER_MANAGEMENT","value":0},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":14898},{"type":"VIEW_PROJECT","value":1,"objectId":19186},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19102},{"type":"CONFIGURATION_MANAGE","value":0},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":0,"objectId":18115},{"type":"VIEW_PROJECT","value":1,"objectId":20},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":0,"objectId":17051},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":0,"objectId":15763},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19184},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":15764},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":18115},{"type":"MANAGE_GENOMES","value":1},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":0,"objectId":19103},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":0,"objectId":16668},{"type":"CUSTOM_LAYOUTS_AVAILABLE","value":0}],"removed":false,"surname":"","minColor":null,"name":"","maxColor":null,"id":3,"login":"anonymous","email":""},{"simpleColor":null,"privileges":[{"type":"VIEW_PROJECT","value":1,"objectId":11},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":22},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19102},{"type":"VIEW_PROJECT","value":1,"objectId":22},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":1},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":14898},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":11},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":18},{"type":"VIEW_PROJECT","value":1,"objectId":16668},{"type":"VIEW_PROJECT","value":1,"objectId":20},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":20},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":18115},{"type":"CONFIGURATION_MANAGE","value":1},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":10},{"type":"VIEW_PROJECT","value":1,"objectId":7},{"type":"VIEW_PROJECT","value":1,"objectId":17},{"type":"VIEW_PROJECT","value":1,"objectId":18},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":7},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":18039},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":19186},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":19184},{"type":"VIEW_PROJECT","value":1,"objectId":6},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":19186},{"type":"VIEW_PROJECT","value":1,"objectId":15764},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":18039},{"type":"VIEW_PROJECT","value":1,"objectId":19103},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":21},{"type":"VIEW_PROJECT","value":1,"objectId":18039},{"type":"VIEW_PROJECT","value":1,"objectId":15763},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":6},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":9},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":19184},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":19184},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":19},{"type":"VIEW_PROJECT","value":1,"objectId":8},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":15764},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":20},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":14898},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":19102},{"type":"VIEW_PROJECT","value":1,"objectId":19},{"type":"VIEW_PROJECT","value":1,"objectId":18115},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":19187},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":19103},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":15764},{"type":"VIEW_PROJECT","value":1,"objectId":1},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":19187},{"type":"VIEW_PROJECT","value":1,"objectId":17051},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":17051},{"type":"PROJECT_MANAGEMENT","value":1},{"type":"VIEW_PROJECT","value":1,"objectId":19186},{"type":"VIEW_PROJECT","value":1,"objectId":19187},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":18039},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":6},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":7},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":17},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":18115},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":10},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":15764},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":22},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":15763},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":15763},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":17},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":17051},{"type":"VIEW_PROJECT","value":1,"objectId":14898},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":8},{"type":"MANAGE_GENOMES","value":1},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":19102},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":15763},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":17051},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":19},{"type":"VIEW_PROJECT","value":1,"objectId":10},{"type":"ADD_MAP","value":1},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":19102},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19103},{"type":"VIEW_PROJECT","value":1,"objectId":19184},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":16668},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":16668},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":18115},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":18},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":17051},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":14898},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":19103},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":15763},{"type":"USER_MANAGEMENT","value":1},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":19103},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":8},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":16668},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":9},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":15764},{"type":"VIEW_PROJECT","value":1,"objectId":9},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":18115},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":14898},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19184},{"type":"VIEW_PROJECT","value":1,"objectId":19102},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":21},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":11},{"type":"VIEW_PROJECT","value":1,"objectId":21},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":18039},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":16668},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":1,"objectId":1},{"type":"CUSTOM_LAYOUTS","value":100},{"type":"CUSTOM_LAYOUTS_AVAILABLE","value":95}],"removed":false,"surname":"","minColor":null,"name":"admin","maxColor":null,"id":1,"login":"admin","email":"piotr.gawron@uni.lu"},{"simpleColor":null,"privileges":[{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":14898},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":19102},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":19103},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":14898},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":18115},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":19187},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":17051},{"type":"MANAGE_GENOMES","value":1},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":0,"objectId":15764},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":15764},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":0,"objectId":19187},{"type":"VIEW_PROJECT","value":0,"objectId":15763},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19103},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":0,"objectId":19102},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":14898},{"type":"VIEW_PROJECT","value":0,"objectId":17051},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":0,"objectId":18039},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":16668},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":16668},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19103},{"type":"CONFIGURATION_MANAGE","value":1},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":15764},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":17051},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19102},{"type":"VIEW_PROJECT","value":0,"objectId":16668},{"type":"PROJECT_MANAGEMENT","value":1},{"type":"VIEW_PROJECT","value":0,"objectId":14898},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":15763},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":0,"objectId":19184},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":0,"objectId":17051},{"type":"VIEW_PROJECT","value":0,"objectId":18115},{"type":"VIEW_PROJECT","value":0,"objectId":19102},{"type":"USER_MANAGEMENT","value":1},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":18115},{"type":"VIEW_PROJECT","value":0,"objectId":19103},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":17051},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19186},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":0,"objectId":14898},{"type":"CUSTOM_LAYOUTS","value":0},{"type":"VIEW_PROJECT","value":0,"objectId":19186},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19184},{"type":"VIEW_PROJECT","value":0,"objectId":18039},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":0,"objectId":19103},{"type":"VIEW_PROJECT","value":0,"objectId":15764},{"type":"VIEW_PROJECT","value":0,"objectId":19184},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":19184},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":0,"objectId":18115},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":16668},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19184},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":18039},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":18039},{"type":"VIEW_PROJECT","value":0,"objectId":19187},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19187},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":15763},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":0,"objectId":16668},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":15764},{"type":"DRUG_TARGETING_ADVANCED_VIEW_PROJECT","value":0,"objectId":19186},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19187},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":0,"objectId":15763},{"type":"ADD_MAP","value":1},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":15763},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":18039},{"type":"EDIT_MISSING_CONNECTIONS_PROJECT","value":0,"objectId":19186},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19102},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":18115},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19186},{"type":"CUSTOM_LAYOUTS_AVAILABLE","value":0}],"removed":false,"surname":"","minColor":null,"name":"","maxColor":null,"id":16736,"login":"t.t","email":""}] \ No newline at end of file +[{"simpleColor":null,"privileges":[{"type":"VIEW_PROJECT","value":1,"objectId":20620},{"type":"VIEW_PROJECT","value":1,"objectId":20},{"type":"VIEW_PROJECT","value":1,"objectId":20604},{"type":"VIEW_PROJECT","value":1,"objectId":15764},{"type":"VIEW_PROJECT","value":1,"objectId":20603},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19102},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19187},{"type":"VIEW_PROJECT","value":1,"objectId":19},{"type":"VIEW_PROJECT","value":1,"objectId":8},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":18115},{"type":"CUSTOM_LAYOUTS","value":0},{"type":"VIEW_PROJECT","value":1,"objectId":21417},{"type":"VIEW_PROJECT","value":1,"objectId":18039},{"type":"VIEW_PROJECT","value":1,"objectId":15763},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19186},{"type":"VIEW_PROJECT","value":1,"objectId":19186},{"type":"VIEW_PROJECT","value":1,"objectId":21430},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19102},{"type":"VIEW_PROJECT","value":1,"objectId":21432},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":15764},{"type":"VIEW_PROJECT","value":1,"objectId":19102},{"type":"VIEW_PROJECT","value":1,"objectId":19187},{"type":"ADD_MAP","value":0},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":18039},{"type":"VIEW_PROJECT","value":1,"objectId":19103},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19103},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":17051},{"type":"VIEW_PROJECT","value":0,"objectId":19184},{"type":"CONFIGURATION_MANAGE","value":0},{"type":"VIEW_PROJECT","value":1,"objectId":6},{"type":"VIEW_PROJECT","value":1,"objectId":14898},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":16668},{"type":"VIEW_PROJECT","value":1,"objectId":11},{"type":"VIEW_PROJECT","value":1,"objectId":16668},{"type":"VIEW_PROJECT","value":1,"objectId":22},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":14898},{"type":"USER_MANAGEMENT","value":0},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19186},{"type":"VIEW_PROJECT","value":1,"objectId":1},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":18115},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":15763},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":15763},{"type":"VIEW_PROJECT","value":1,"objectId":9},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19184},{"type":"VIEW_PROJECT","value":1,"objectId":7},{"type":"VIEW_PROJECT","value":1,"objectId":18305},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":17051},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":14898},{"type":"VIEW_PROJECT","value":1,"objectId":10},{"type":"VIEW_PROJECT","value":1,"objectId":17051},{"type":"VIEW_PROJECT","value":1,"objectId":20812},{"type":"VIEW_PROJECT","value":1,"objectId":17},{"type":"MANAGE_GENOMES","value":1},{"type":"PROJECT_MANAGEMENT","value":0},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":15764},{"type":"VIEW_PROJECT","value":1,"objectId":20605},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19184},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19187},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":18039},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19103},{"type":"VIEW_PROJECT","value":1,"objectId":21113},{"type":"VIEW_PROJECT","value":1,"objectId":18115},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":16668},{"type":"VIEW_PROJECT","value":1,"objectId":21},{"type":"VIEW_PROJECT","value":1,"objectId":18},{"type":"VIEW_PROJECT","value":1,"objectId":21424},{"type":"VIEW_PROJECT","value":1,"objectId":null},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":null},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":null},{"type":"CUSTOM_LAYOUTS_AVAILABLE","value":0}],"preferences":{"element-required-annotations":{"lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.BottomSquareCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Chemical":{"require-at-least-one":true,"annotation-list":["PUBCHEM_SUBSTANCE","PUBCHEM","CHEBI"]},"lcsb.mapviewer.model.map.species.Degraded":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.compartment.PathwayCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.species.SimpleMolecule":{"require-at-least-one":true,"annotation-list":["PUBCHEM_SUBSTANCE","PUBCHEM","CHEBI"]},"lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.ReceptorProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Gene":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.compartment.OvalCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Protein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.BioEntity":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.species.GenericProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.TransportReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.IonChannelProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Phenotype":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Drug":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Element":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.DissociationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.SquareCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Ion":{"require-at-least-one":true,"annotation-list":["PUBCHEM_SUBSTANCE","PUBCHEM","CHEBI"]},"lcsb.mapviewer.model.map.reaction.Reaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.RightSquareCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.TranslationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.AntisenseRna":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Complex":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Unknown":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.TruncationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.LeftSquareCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.TruncatedProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.compartment.Compartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.compartment.TopSquareCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Species":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Rna":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]}},"element-valid-annotations":{"lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.compartment.BottomSquareCompartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.Chemical":["PUBCHEM_SUBSTANCE","PUBMED","PUBCHEM","HMDB","CHEBI","KEGG_COMPOUND"],"lcsb.mapviewer.model.map.species.Degraded":["PUBMED"],"lcsb.mapviewer.model.map.compartment.PathwayCompartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.species.SimpleMolecule":["PUBCHEM_SUBSTANCE","PUBMED","PUBCHEM","HMDB","CHEBI","KEGG_COMPOUND"],"lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.ReceptorProtein":["KEGG_GENES","INTERPRO","HGNC_SYMBOL","UNIPROT","CHEMBL_TARGET","ENSEMBL","PANTHER","EC","REFSEQ","PUBMED","HGNC","ENTREZ","MGD","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.Gene":["KEGG_GENES","REFSEQ","PUBMED","HGNC","HGNC_SYMBOL","UNIPROT","ENSEMBL","PANTHER","ENTREZ","MGD"],"lcsb.mapviewer.model.map.compartment.OvalCompartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.Protein":["KEGG_GENES","INTERPRO","HGNC_SYMBOL","UNIPROT","CHEMBL_TARGET","ENSEMBL","PANTHER","EC","REFSEQ","PUBMED","HGNC","ENTREZ","MGD","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.BioEntity":["PUBMED"],"lcsb.mapviewer.model.map.species.GenericProtein":["KEGG_GENES","INTERPRO","HGNC_SYMBOL","UNIPROT","CHEMBL_TARGET","ENSEMBL","PANTHER","EC","REFSEQ","PUBMED","HGNC","ENTREZ","MGD","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.reaction.type.TransportReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.IonChannelProtein":["KEGG_GENES","INTERPRO","HGNC_SYMBOL","UNIPROT","CHEMBL_TARGET","ENSEMBL","PANTHER","EC","REFSEQ","PUBMED","HGNC","ENTREZ","MGD","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.Phenotype":["PUBMED","OMIM","GO","MESH_2012"],"lcsb.mapviewer.model.map.species.Drug":["CHEMBL_COMPOUND","DRUGBANK","PUBMED","HMDB","CHEBI"],"lcsb.mapviewer.model.map.species.Element":["PUBMED"],"lcsb.mapviewer.model.map.reaction.type.DissociationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.compartment.SquareCompartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.species.Ion":["PUBCHEM_SUBSTANCE","PUBMED","PUBCHEM","HMDB","CHEBI","KEGG_COMPOUND"],"lcsb.mapviewer.model.map.reaction.Reaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.compartment.RightSquareCompartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.reaction.type.TranslationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.AntisenseRna":["PUBMED"],"lcsb.mapviewer.model.map.species.Complex":["EC","PUBMED","INTERPRO","CHEMBL_TARGET","GO","MESH_2012"],"lcsb.mapviewer.model.map.species.Unknown":["PUBMED"],"lcsb.mapviewer.model.map.reaction.type.TruncationReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.compartment.LeftSquareCompartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.species.TruncatedProtein":["KEGG_GENES","INTERPRO","HGNC_SYMBOL","UNIPROT","CHEMBL_TARGET","ENSEMBL","PANTHER","EC","REFSEQ","PUBMED","HGNC","ENTREZ","MGD","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.compartment.Compartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.compartment.TopSquareCompartment":["PUBMED","GO","MESH_2012"],"lcsb.mapviewer.model.map.species.Species":["PUBMED"],"lcsb.mapviewer.model.map.species.Rna":["KEGG_GENES","REFSEQ","PUBMED","HGNC","HGNC_SYMBOL","UNIPROT","ENSEMBL","PANTHER","ENTREZ","MGD"],"lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"],"lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction":["PUBMED","COG","KEGG_REACTION","REACTOME","KEGG_PATHWAY"]},"element-annotators":{"lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction":[],"lcsb.mapviewer.model.map.compartment.BottomSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction":[],"lcsb.mapviewer.model.map.species.Chemical":["Chebi"],"lcsb.mapviewer.model.map.species.Degraded":[],"lcsb.mapviewer.model.map.compartment.PathwayCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.species.SimpleMolecule":["Chebi"],"lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction":[],"lcsb.mapviewer.model.map.species.ReceptorProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction":[],"lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction":[],"lcsb.mapviewer.model.map.species.Gene":["HGNC"],"lcsb.mapviewer.model.map.compartment.OvalCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction":[],"lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction":[],"lcsb.mapviewer.model.map.species.Protein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction":[],"lcsb.mapviewer.model.map.BioEntity":[],"lcsb.mapviewer.model.map.species.GenericProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.TransportReaction":[],"lcsb.mapviewer.model.map.species.IonChannelProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction":[],"lcsb.mapviewer.model.map.species.Phenotype":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Drug":[],"lcsb.mapviewer.model.map.species.Element":[],"lcsb.mapviewer.model.map.reaction.type.DissociationReaction":[],"lcsb.mapviewer.model.map.compartment.SquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Ion":["Chebi"],"lcsb.mapviewer.model.map.reaction.Reaction":[],"lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction":[],"lcsb.mapviewer.model.map.compartment.RightSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.TranslationReaction":[],"lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction":[],"lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction":[],"lcsb.mapviewer.model.map.species.AntisenseRna":[],"lcsb.mapviewer.model.map.species.Complex":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Unknown":[],"lcsb.mapviewer.model.map.reaction.type.TruncationReaction":[],"lcsb.mapviewer.model.map.compartment.LeftSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction":[],"lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction":[],"lcsb.mapviewer.model.map.species.TruncatedProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.compartment.Compartment":["Gene Ontology"],"lcsb.mapviewer.model.map.compartment.TopSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Species":[],"lcsb.mapviewer.model.map.species.Rna":["HGNC"],"lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction":[],"lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction":[]},"project-upload":{"auto-resize":true,"sbgn":false,"cache-data":false,"semantic-zooming":false,"annotate-model":false,"validate-miriam":false}},"removed":false,"surname":"","minColor":null,"name":"","neutralColor":null,"maxColor":null,"id":3,"login":"anonymous","email":""},{"simpleColor":null,"privileges":[{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":19102},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":21113},{"type":"VIEW_PROJECT","value":1,"objectId":15764},{"type":"VIEW_PROJECT","value":1,"objectId":19102},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19184},{"type":"VIEW_PROJECT","value":1,"objectId":14898},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":8},{"type":"VIEW_PROJECT","value":1,"objectId":7},{"type":"VIEW_PROJECT","value":1,"objectId":10},{"type":"VIEW_PROJECT","value":1,"objectId":22},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":18},{"type":"VIEW_PROJECT","value":1,"objectId":19184},{"type":"VIEW_PROJECT","value":1,"objectId":9},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":20603},{"type":"VIEW_PROJECT","value":1,"objectId":17051},{"type":"VIEW_PROJECT","value":1,"objectId":21432},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":18115},{"type":"VIEW_PROJECT","value":1,"objectId":21430},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":17051},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":14898},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":19103},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":20812},{"type":"USER_MANAGEMENT","value":1},{"type":"VIEW_PROJECT","value":1,"objectId":21417},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":21},{"type":"VIEW_PROJECT","value":1,"objectId":11},{"type":"VIEW_PROJECT","value":1,"objectId":15763},{"type":"CONFIGURATION_MANAGE","value":1},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":21417},{"type":"VIEW_PROJECT","value":1,"objectId":21},{"type":"VIEW_PROJECT","value":1,"objectId":1},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":16668},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":1},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":20604},{"type":"VIEW_PROJECT","value":1,"objectId":21424},{"type":"VIEW_PROJECT","value":1,"objectId":18},{"type":"VIEW_PROJECT","value":1,"objectId":18115},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":20},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":6},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":18039},{"type":"VIEW_PROJECT","value":1,"objectId":20605},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":20812},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":19184},{"type":"VIEW_PROJECT","value":1,"objectId":8},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":9},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":21430},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":21432},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":14898},{"type":"VIEW_PROJECT","value":1,"objectId":19186},{"type":"VIEW_PROJECT","value":1,"objectId":21113},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":21113},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":21424},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":19187},{"type":"VIEW_PROJECT","value":1,"objectId":20620},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":15764},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":21432},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":20620},{"type":"ADD_MAP","value":1},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":20603},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":22},{"type":"VIEW_PROJECT","value":1,"objectId":19187},{"type":"VIEW_PROJECT","value":1,"objectId":20},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":10},{"type":"MANAGE_GENOMES","value":1},{"type":"VIEW_PROJECT","value":1,"objectId":20812},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":21424},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":15763},{"type":"VIEW_PROJECT","value":1,"objectId":20604},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":20605},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":19102},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":21417},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":19186},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":20620},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":19},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":20605},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":7},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":17},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":18115},{"type":"VIEW_PROJECT","value":1,"objectId":6},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":15763},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":20604},{"type":"VIEW_PROJECT","value":1,"objectId":18039},{"type":"VIEW_PROJECT","value":1,"objectId":19},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":18039},{"type":"VIEW_PROJECT","value":1,"objectId":16668},{"type":"VIEW_PROJECT","value":1,"objectId":17},{"type":"PROJECT_MANAGEMENT","value":1},{"type":"VIEW_PROJECT","value":1,"objectId":20603},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":19187},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19103},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19186},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":15764},{"type":"VIEW_PROJECT","value":1,"objectId":19103},{"type":"CUSTOM_LAYOUTS","value":100},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":11},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":17051},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":16668},{"type":"LAYOUT_MANAGEMENT","value":1,"objectId":21430},{"type":"VIEW_PROJECT","value":1,"objectId":null},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":null},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":null},{"type":"CUSTOM_LAYOUTS_AVAILABLE","value":86}],"preferences":{"element-required-annotations":{"lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.BottomSquareCompartment":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Chemical":{"require-at-least-one":true,"annotation-list":["CHEBI","PUBCHEM","PUBCHEM_SUBSTANCE"]},"lcsb.mapviewer.model.map.species.Degraded":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.compartment.PathwayCompartment":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.SimpleMolecule":{"require-at-least-one":true,"annotation-list":["CHEBI","PUBCHEM","PUBCHEM_SUBSTANCE"]},"lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.ReceptorProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Gene":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.compartment.OvalCompartment":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Protein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.BioEntity":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.GenericProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.TransportReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.IonChannelProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Phenotype":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Drug":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Element":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.DissociationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.SquareCompartment":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Ion":{"require-at-least-one":true,"annotation-list":["CHEBI","PUBCHEM","PUBCHEM_SUBSTANCE"]},"lcsb.mapviewer.model.map.reaction.Reaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.RightSquareCompartment":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.TranslationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.AntisenseRna":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Complex":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Unknown":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.TruncationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.LeftSquareCompartment":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.TruncatedProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL","CHEMBL_COMPOUND"]},"lcsb.mapviewer.model.map.compartment.Compartment":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.compartment.TopSquareCompartment":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Species":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Rna":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]}},"element-valid-annotations":{"lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.compartment.BottomSquareCompartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.species.Chemical":["CHEBI","HMDB","KEGG_COMPOUND","PUBCHEM","PUBCHEM_SUBSTANCE","PUBMED"],"lcsb.mapviewer.model.map.species.Degraded":["PUBMED"],"lcsb.mapviewer.model.map.compartment.PathwayCompartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.species.SimpleMolecule":["CHEBI","HMDB","KEGG_COMPOUND","PUBCHEM","PUBCHEM_SUBSTANCE","PUBMED"],"lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.species.ReceptorProtein":["CHEMBL_TARGET","EC","ENSEMBL","ENTREZ","HGNC","HGNC_SYMBOL","INTERPRO","KEGG_GENES","MGD","PANTHER","PUBMED","REFSEQ","UNIPROT","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.species.Gene":["ENSEMBL","ENTREZ","HGNC","HGNC_SYMBOL","KEGG_GENES","MGD","PANTHER","PUBMED","REFSEQ","UNIPROT"],"lcsb.mapviewer.model.map.compartment.OvalCompartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.species.Protein":["CHEMBL_TARGET","EC","ENSEMBL","ENTREZ","HGNC","HGNC_SYMBOL","INTERPRO","KEGG_GENES","MGD","PANTHER","PUBMED","REFSEQ","UNIPROT","UNIPROT_ISOFORM","CHEMBL_COMPOUND"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.BioEntity":["PUBMED"],"lcsb.mapviewer.model.map.species.GenericProtein":["CHEMBL_TARGET","EC","ENSEMBL","ENTREZ","HGNC","HGNC_SYMBOL","INTERPRO","KEGG_GENES","MGD","PANTHER","PUBMED","REFSEQ","UNIPROT","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.reaction.type.TransportReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.species.IonChannelProtein":["CHEMBL_TARGET","EC","ENSEMBL","ENTREZ","HGNC","HGNC_SYMBOL","INTERPRO","KEGG_GENES","MGD","PANTHER","PUBMED","REFSEQ","UNIPROT","UNIPROT_ISOFORM"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.species.Phenotype":["GO","MESH_2012","OMIM","PUBMED"],"lcsb.mapviewer.model.map.species.Drug":["CHEBI","CHEMBL_COMPOUND","DRUGBANK","HMDB","PUBMED"],"lcsb.mapviewer.model.map.species.Element":["PUBMED"],"lcsb.mapviewer.model.map.reaction.type.DissociationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.compartment.SquareCompartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.species.Ion":["CHEBI","HMDB","KEGG_COMPOUND","PUBCHEM","PUBCHEM_SUBSTANCE","PUBMED"],"lcsb.mapviewer.model.map.reaction.Reaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.compartment.RightSquareCompartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.reaction.type.TranslationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.species.AntisenseRna":["PUBMED"],"lcsb.mapviewer.model.map.species.Complex":["CHEMBL_TARGET","EC","GO","INTERPRO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.species.Unknown":["PUBMED"],"lcsb.mapviewer.model.map.reaction.type.TruncationReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.compartment.LeftSquareCompartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.species.TruncatedProtein":["CHEMBL_TARGET","EC","ENSEMBL","ENTREZ","HGNC","HGNC_SYMBOL","INTERPRO","KEGG_GENES","MGD","PANTHER","PUBMED","REFSEQ","UNIPROT","UNIPROT_ISOFORM","CHEMBL_COMPOUND"],"lcsb.mapviewer.model.map.compartment.Compartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.compartment.TopSquareCompartment":["GO","MESH_2012","PUBMED"],"lcsb.mapviewer.model.map.species.Species":["PUBMED"],"lcsb.mapviewer.model.map.species.Rna":["ENSEMBL","ENTREZ","HGNC","HGNC_SYMBOL","KEGG_GENES","MGD","PANTHER","PUBMED","REFSEQ","UNIPROT"],"lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction":["KEGG_PATHWAY","KEGG_REACTION","PUBMED","REACTOME"]},"element-annotators":{"lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction":[],"lcsb.mapviewer.model.map.compartment.BottomSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction":[],"lcsb.mapviewer.model.map.species.Chemical":["Chebi"],"lcsb.mapviewer.model.map.species.Degraded":[],"lcsb.mapviewer.model.map.compartment.PathwayCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.species.SimpleMolecule":["Chebi"],"lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction":[],"lcsb.mapviewer.model.map.species.ReceptorProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction":[],"lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction":[],"lcsb.mapviewer.model.map.species.Gene":["HGNC"],"lcsb.mapviewer.model.map.compartment.OvalCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction":[],"lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction":[],"lcsb.mapviewer.model.map.species.Protein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction":[],"lcsb.mapviewer.model.map.BioEntity":[],"lcsb.mapviewer.model.map.species.GenericProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.TransportReaction":[],"lcsb.mapviewer.model.map.species.IonChannelProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction":[],"lcsb.mapviewer.model.map.species.Phenotype":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Drug":[],"lcsb.mapviewer.model.map.species.Element":[],"lcsb.mapviewer.model.map.reaction.type.DissociationReaction":[],"lcsb.mapviewer.model.map.compartment.SquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Ion":["Chebi"],"lcsb.mapviewer.model.map.reaction.Reaction":[],"lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction":[],"lcsb.mapviewer.model.map.compartment.RightSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.TranslationReaction":[],"lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction":[],"lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction":[],"lcsb.mapviewer.model.map.species.AntisenseRna":[],"lcsb.mapviewer.model.map.species.Complex":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Unknown":[],"lcsb.mapviewer.model.map.reaction.type.TruncationReaction":[],"lcsb.mapviewer.model.map.compartment.LeftSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction":[],"lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction":[],"lcsb.mapviewer.model.map.species.TruncatedProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.compartment.Compartment":["Gene Ontology"],"lcsb.mapviewer.model.map.compartment.TopSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Species":[],"lcsb.mapviewer.model.map.species.Rna":["HGNC"],"lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction":[],"lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction":[]},"project-upload":{"auto-resize":true,"sbgn":false,"cache-data":false,"semantic-zooming":false,"annotate-model":false,"validate-miriam":true}},"removed":false,"surname":"","minColor":null,"name":"admin","neutralColor":null,"maxColor":null,"id":1,"login":"admin","email":"piotr.gawron@uni.lu"},{"simpleColor":null,"privileges":[{"type":"VIEW_PROJECT","value":0,"objectId":15763},{"type":"VIEW_PROJECT","value":0,"objectId":14898},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":14898},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":17051},{"type":"VIEW_PROJECT","value":0,"objectId":15764},{"type":"CUSTOM_LAYOUTS","value":1},{"type":"VIEW_PROJECT","value":0,"objectId":17051},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19103},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":15763},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":18039},{"type":"ADD_MAP","value":0},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":17051},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19186},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":14898},{"type":"VIEW_PROJECT","value":0,"objectId":18039},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19102},{"type":"MANAGE_GENOMES","value":0},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":16668},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":18115},{"type":"PROJECT_MANAGEMENT","value":0},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":15763},{"type":"VIEW_PROJECT","value":0,"objectId":18115},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":16668},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19184},{"type":"VIEW_PROJECT","value":0,"objectId":19187},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":18115},{"type":"VIEW_PROJECT","value":0,"objectId":19186},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19102},{"type":"VIEW_PROJECT","value":1,"objectId":19102},{"type":"VIEW_PROJECT","value":0,"objectId":16668},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":15764},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19184},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19103},{"type":"VIEW_PROJECT","value":1,"objectId":19103},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19187},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":18039},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":19187},{"type":"USER_MANAGEMENT","value":0},{"type":"VIEW_PROJECT","value":0,"objectId":19184},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":15764},{"type":"CONFIGURATION_MANAGE","value":0},{"type":"EDIT_COMMENTS_PROJECT","value":0,"objectId":19186},{"type":"VIEW_PROJECT","value":1,"objectId":null},{"type":"EDIT_COMMENTS_PROJECT","value":1,"objectId":null},{"type":"LAYOUT_MANAGEMENT","value":0,"objectId":null},{"type":"CUSTOM_LAYOUTS_AVAILABLE","value":1}],"preferences":{"element-required-annotations":{"lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.BottomSquareCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Chemical":{"require-at-least-one":true,"annotation-list":["CHEBI","PUBCHEM_SUBSTANCE","PUBCHEM"]},"lcsb.mapviewer.model.map.species.Degraded":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.compartment.PathwayCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.species.SimpleMolecule":{"require-at-least-one":true,"annotation-list":["CHEBI","PUBCHEM_SUBSTANCE","PUBCHEM"]},"lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.ReceptorProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Gene":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.compartment.OvalCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Protein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.BioEntity":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.species.GenericProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.TransportReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.IonChannelProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.Phenotype":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Drug":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Element":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.DissociationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.SquareCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Ion":{"require-at-least-one":true,"annotation-list":["CHEBI","PUBCHEM_SUBSTANCE","PUBCHEM"]},"lcsb.mapviewer.model.map.reaction.Reaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.RightSquareCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.TranslationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.AntisenseRna":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Complex":{"require-at-least-one":true,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Unknown":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.TruncationReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.compartment.LeftSquareCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.species.TruncatedProtein":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.compartment.Compartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.compartment.TopSquareCompartment":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Species":{"require-at-least-one":false,"annotation-list":[]},"lcsb.mapviewer.model.map.species.Rna":{"require-at-least-one":true,"annotation-list":["HGNC","HGNC_SYMBOL"]},"lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]},"lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction":{"require-at-least-one":true,"annotation-list":["PUBMED"]}},"element-valid-annotations":{"lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction":["KEGG_REACTION","PUBMED","COG","KEGG_PATHWAY","REACTOME"],"lcsb.mapviewer.model.map.compartment.BottomSquareCompartment":["MESH_2012","PUBMED","GO"],"lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction":["KEGG_REACTION","PUBMED","COG","KEGG_PATHWAY","REACTOME"],"lcsb.mapviewer.model.map.species.Chemical":["KEGG_COMPOUND","PUBMED","CHEBI","HMDB","PUBCHEM_SUBSTANCE","PUBCHEM"],"lcsb.mapviewer.model.map.species.Degraded":["PUBMED"],"lcsb.mapviewer.model.map.compartment.PathwayCompartment":["MESH_2012","PUBMED","GO"],"lcsb.mapviewer.model.map.species.SimpleMolecule":["KEGG_COMPOUND","PUBMED","CHEBI","HMDB","PUBCHEM_SUBSTANCE","PUBCHEM"],"lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction":["KEGG_REACTION","PUBMED","COG","KEGG_PATHWAY","REACTOME"],"lcsb.mapviewer.model.map.species.ReceptorProtein":["HGNC","KEGG_GENES","REFSEQ","INTERPRO","MGD","PUBMED","CHEMBL_TARGET","UNIPROT_ISOFORM","ENTREZ","HGNC_SYMBOL","ENSEMBL","PANTHER","EC","UNIPROT"],"lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction":["KEGG_REACTION","PUBMED","COG","KEGG_PATHWAY","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction":["KEGG_REACTION","PUBMED","COG","KEGG_PATHWAY","REACTOME"],"lcsb.mapviewer.model.map.species.Gene":["HGNC","KEGG_GENES","ENTREZ","REFSEQ","MGD","PUBMED","HGNC_SYMBOL","ENSEMBL","PANTHER","UNIPROT"],"lcsb.mapviewer.model.map.compartment.OvalCompartment":["MESH_2012","PUBMED","GO"],"lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction":["KEGG_REACTION","PUBMED","COG","KEGG_PATHWAY","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction":["KEGG_REACTION","PUBMED","COG","KEGG_PATHWAY","REACTOME"],"lcsb.mapviewer.model.map.species.Protein":["HGNC","KEGG_GENES","REFSEQ","INTERPRO","MGD","PUBMED","CHEMBL_TARGET","UNIPROT_ISOFORM","ENTREZ","HGNC_SYMBOL","ENSEMBL","PANTHER","EC","UNIPROT"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction":["KEGG_REACTION","PUBMED","COG","KEGG_PATHWAY","REACTOME"],"lcsb.mapviewer.model.map.BioEntity":["PUBMED"],"lcsb.mapviewer.model.map.species.GenericProtein":["HGNC","KEGG_GENES","REFSEQ","INTERPRO","MGD","PUBMED","CHEMBL_TARGET","UNIPROT_ISOFORM","ENTREZ","HGNC_SYMBOL","ENSEMBL","PANTHER","EC","UNIPROT"],"lcsb.mapviewer.model.map.reaction.type.TransportReaction":["KEGG_REACTION","PUBMED","COG","KEGG_PATHWAY","REACTOME"],"lcsb.mapviewer.model.map.species.IonChannelProtein":["HGNC","KEGG_GENES","REFSEQ","INTERPRO","MGD","PUBMED","CHEMBL_TARGET","UNIPROT_ISOFORM","ENTREZ","HGNC_SYMBOL","ENSEMBL","PANTHER","EC","UNIPROT"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction":["KEGG_REACTION","PUBMED","COG","KEGG_PATHWAY","REACTOME"],"lcsb.mapviewer.model.map.species.Phenotype":["MESH_2012","PUBMED","OMIM","GO"],"lcsb.mapviewer.model.map.species.Drug":["CHEMBL_COMPOUND","DRUGBANK","PUBMED","CHEBI","HMDB"],"lcsb.mapviewer.model.map.species.Element":["PUBMED"],"lcsb.mapviewer.model.map.reaction.type.DissociationReaction":["KEGG_REACTION","PUBMED","COG","KEGG_PATHWAY","REACTOME"],"lcsb.mapviewer.model.map.compartment.SquareCompartment":["MESH_2012","PUBMED","GO"],"lcsb.mapviewer.model.map.species.Ion":["KEGG_COMPOUND","PUBMED","CHEBI","HMDB","PUBCHEM_SUBSTANCE","PUBCHEM"],"lcsb.mapviewer.model.map.reaction.Reaction":["KEGG_REACTION","PUBMED","COG","KEGG_PATHWAY","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction":["KEGG_REACTION","PUBMED","COG","KEGG_PATHWAY","REACTOME"],"lcsb.mapviewer.model.map.compartment.RightSquareCompartment":["MESH_2012","PUBMED","GO"],"lcsb.mapviewer.model.map.reaction.type.TranslationReaction":["KEGG_REACTION","PUBMED","COG","KEGG_PATHWAY","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction":["KEGG_REACTION","PUBMED","COG","KEGG_PATHWAY","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction":["KEGG_REACTION","PUBMED","COG","KEGG_PATHWAY","REACTOME"],"lcsb.mapviewer.model.map.species.AntisenseRna":["PUBMED"],"lcsb.mapviewer.model.map.species.Complex":["INTERPRO","MESH_2012","PUBMED","EC","CHEMBL_TARGET","GO"],"lcsb.mapviewer.model.map.species.Unknown":["PUBMED"],"lcsb.mapviewer.model.map.reaction.type.TruncationReaction":["KEGG_REACTION","PUBMED","COG","KEGG_PATHWAY","REACTOME"],"lcsb.mapviewer.model.map.compartment.LeftSquareCompartment":["MESH_2012","PUBMED","GO"],"lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction":["KEGG_REACTION","PUBMED","COG","KEGG_PATHWAY","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction":["KEGG_REACTION","PUBMED","COG","KEGG_PATHWAY","REACTOME"],"lcsb.mapviewer.model.map.species.TruncatedProtein":["HGNC","KEGG_GENES","REFSEQ","INTERPRO","MGD","PUBMED","CHEMBL_TARGET","UNIPROT_ISOFORM","ENTREZ","HGNC_SYMBOL","ENSEMBL","PANTHER","EC","UNIPROT"],"lcsb.mapviewer.model.map.compartment.Compartment":["MESH_2012","PUBMED","GO"],"lcsb.mapviewer.model.map.compartment.TopSquareCompartment":["MESH_2012","PUBMED","GO"],"lcsb.mapviewer.model.map.species.Species":["PUBMED"],"lcsb.mapviewer.model.map.species.Rna":["HGNC","KEGG_GENES","ENTREZ","REFSEQ","MGD","PUBMED","HGNC_SYMBOL","ENSEMBL","PANTHER","UNIPROT"],"lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction":["KEGG_REACTION","PUBMED","COG","KEGG_PATHWAY","REACTOME"],"lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction":["KEGG_REACTION","PUBMED","COG","KEGG_PATHWAY","REACTOME"]},"element-annotators":{"lcsb.mapviewer.model.map.reaction.type.UnknownReducedTriggerReaction":[],"lcsb.mapviewer.model.map.compartment.BottomSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.ReducedPhysicalStimulationReaction":[],"lcsb.mapviewer.model.map.species.Chemical":["Chebi"],"lcsb.mapviewer.model.map.species.Degraded":[],"lcsb.mapviewer.model.map.compartment.PathwayCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.species.SimpleMolecule":["Chebi"],"lcsb.mapviewer.model.map.reaction.type.BooleanLogicGateReaction":[],"lcsb.mapviewer.model.map.species.ReceptorProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.UnknownTransitionReaction":[],"lcsb.mapviewer.model.map.reaction.type.TranscriptionReaction":[],"lcsb.mapviewer.model.map.species.Gene":["HGNC"],"lcsb.mapviewer.model.map.compartment.OvalCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.PositiveInfluenceReaction":[],"lcsb.mapviewer.model.map.reaction.type.ReducedTriggerReaction":[],"lcsb.mapviewer.model.map.species.Protein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedPhysicalStimulationReaction":[],"lcsb.mapviewer.model.map.BioEntity":[],"lcsb.mapviewer.model.map.species.GenericProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.TransportReaction":[],"lcsb.mapviewer.model.map.species.IonChannelProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.reaction.type.UnknownReducedModulationReaction":[],"lcsb.mapviewer.model.map.species.Phenotype":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Drug":[],"lcsb.mapviewer.model.map.species.Element":[],"lcsb.mapviewer.model.map.reaction.type.DissociationReaction":[],"lcsb.mapviewer.model.map.compartment.SquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Ion":["Chebi"],"lcsb.mapviewer.model.map.reaction.Reaction":[],"lcsb.mapviewer.model.map.reaction.type.HeterodimerAssociationReaction":[],"lcsb.mapviewer.model.map.compartment.RightSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.TranslationReaction":[],"lcsb.mapviewer.model.map.reaction.type.UnknownPositiveInfluenceReaction":[],"lcsb.mapviewer.model.map.reaction.type.ReducedModulationReaction":[],"lcsb.mapviewer.model.map.species.AntisenseRna":[],"lcsb.mapviewer.model.map.species.Complex":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Unknown":[],"lcsb.mapviewer.model.map.reaction.type.TruncationReaction":[],"lcsb.mapviewer.model.map.compartment.LeftSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.reaction.type.UnknownNegativeInfluenceReaction":[],"lcsb.mapviewer.model.map.reaction.type.NegativeInfluenceReaction":[],"lcsb.mapviewer.model.map.species.TruncatedProtein":["Biocompendium","HGNC"],"lcsb.mapviewer.model.map.compartment.Compartment":["Gene Ontology"],"lcsb.mapviewer.model.map.compartment.TopSquareCompartment":["Gene Ontology"],"lcsb.mapviewer.model.map.species.Species":[],"lcsb.mapviewer.model.map.species.Rna":["HGNC"],"lcsb.mapviewer.model.map.reaction.type.KnownTransitionOmittedReaction":[],"lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction":[]},"project-upload":{"auto-resize":true,"sbgn":false,"cache-data":false,"semantic-zooming":false,"annotate-model":false,"validate-miriam":false}},"removed":false,"surname":"","minColor":null,"name":"","neutralColor":null,"maxColor":null,"id":16736,"login":"t.t","email":""}] \ No newline at end of file diff --git a/model/src/main/java/lcsb/mapviewer/model/user/ConfigurationElementEditType.java b/model/src/main/java/lcsb/mapviewer/model/user/ConfigurationElementEditType.java index 18fa9c197550c3f91f55749feeb575961451cb1c..3199cf8921fda50f94f685a325ab5cc004832931 100644 --- a/model/src/main/java/lcsb/mapviewer/model/user/ConfigurationElementEditType.java +++ b/model/src/main/java/lcsb/mapviewer/model/user/ConfigurationElementEditType.java @@ -47,4 +47,9 @@ public enum ConfigurationElementEditType { * Password value. */ PASSWORD, + + /** + * True/false value. + */ + BOOLEAN, } diff --git a/model/src/main/java/lcsb/mapviewer/model/user/ConfigurationElementType.java b/model/src/main/java/lcsb/mapviewer/model/user/ConfigurationElementType.java index 5c8ca43e5c4be95202256a08f9a9d522c37ee606..fb5b54b6e514e95c796a157df5b2a37fa6f44bde 100644 --- a/model/src/main/java/lcsb/mapviewer/model/user/ConfigurationElementType.java +++ b/model/src/main/java/lcsb/mapviewer/model/user/ConfigurationElementType.java @@ -150,8 +150,17 @@ public enum ConfigurationElementType { * Default content of the email when requesting for an account in the system. */ REQUEST_ACCOUNT_DEFAULT_CONTENT("Email content used for requesting an account", - "Dear Disease map team,\nI would like to request an account in the system.\nKind regards", ConfigurationElementEditType.TEXT, - false), + "Dear Disease map team,\nI would like to request an account in the system.\nKind regards", + ConfigurationElementEditType.TEXT, false), + + DEFAULT_VIEW_PROJECT("Default user privilege for: " + PrivilegeType.VIEW_PROJECT.getCommonName(), "true", + ConfigurationElementEditType.BOOLEAN, false), + + DEFAULT_EDIT_COMMENTS_PROJECT("Default user privilege for: " + PrivilegeType.EDIT_COMMENTS_PROJECT.getCommonName(), + "false", ConfigurationElementEditType.BOOLEAN, false), + + DEFAULT_LAYOUT_MANAGEMENT("Default user privilege for: " + PrivilegeType.LAYOUT_MANAGEMENT.getCommonName(), "false", + ConfigurationElementEditType.BOOLEAN, false), ; diff --git a/model/src/main/java/lcsb/mapviewer/model/user/ObjectPrivilege.java b/model/src/main/java/lcsb/mapviewer/model/user/ObjectPrivilege.java index b16eac345f1fda94e586fa6b4d784b50fcf56199..d50a7fbf86fe1873b62c5cba5c2110f902377a11 100644 --- a/model/src/main/java/lcsb/mapviewer/model/user/ObjectPrivilege.java +++ b/model/src/main/java/lcsb/mapviewer/model/user/ObjectPrivilege.java @@ -6,6 +6,7 @@ import javax.persistence.DiscriminatorValue; import javax.persistence.Entity; import lcsb.mapviewer.common.ObjectUtils; +import lcsb.mapviewer.common.comparator.IntegerComparator; /** * This class extends {@link BasicPrivilege} class which define typical user @@ -19,79 +20,80 @@ import lcsb.mapviewer.common.ObjectUtils; @DiscriminatorValue("OBJECT_PRIVILEGE") public class ObjectPrivilege extends BasicPrivilege implements Serializable { - /** - * - */ - private static final long serialVersionUID = 1L; + /** + * + */ + private static final long serialVersionUID = 1L; - /** - * Identifier of the object connected to this privilege. - */ - private Integer idObject; + /** + * Identifier of the object connected to this privilege. + */ + private Integer idObject; - /** - * Constructor that initialize data with the information given in the - * parameters. - * - * @param object - * object connected to this privilege - * @param level - * access level - * @param type - * type of the privilege - * @param user - * user who has this privilege - */ - public ObjectPrivilege(Object object, int level, PrivilegeType type, User user) { - super(level, type, user); - idObject = ObjectUtils.getIdOfObject(object); - } + /** + * Constructor that initialize data with the information given in the + * parameters. + * + * @param object + * object connected to this privilege + * @param level + * access level + * @param type + * type of the privilege + * @param user + * user who has this privilege + */ + public ObjectPrivilege(Object object, int level, PrivilegeType type, User user) { + super(level, type, user); + if (object != null) { + idObject = ObjectUtils.getIdOfObject(object); + } + } - /** - * Default constructor. - */ - public ObjectPrivilege() { - } + /** + * Default constructor. + */ + public ObjectPrivilege() { + } - @Override - public boolean equalsPrivilege(BasicPrivilege privilege) { - if (privilege == null) { - return false; - } - if (privilege instanceof ObjectPrivilege) { - if (idObject == null && ((ObjectPrivilege) privilege).getIdObject() != null) { - return false; - } - return super.equalsPrivilege(privilege) && idObject.equals(((ObjectPrivilege) privilege).getIdObject()); - } else { - return false; - } - } + @Override + public boolean equalsPrivilege(BasicPrivilege privilege) { + if (privilege == null) { + return false; + } + if (privilege instanceof ObjectPrivilege) { + IntegerComparator integerComparator = new IntegerComparator(); + return super.equalsPrivilege(privilege) + && integerComparator.compare(idObject, ((ObjectPrivilege) privilege).getIdObject()) == 0; + } else { + return false; + } + } - /** - * @return the idObject - * @see #idObject - */ - public Integer getIdObject() { - return idObject; - } + /** + * @return the idObject + * @see #idObject + */ + public Integer getIdObject() { + return idObject; + } - /** - * @param idObject - * the idObject to set - * @see #idObject - */ - public void setIdObject(Integer idObject) { - this.idObject = idObject; - } + /** + * @param idObject + * the idObject to set + * @see #idObject + */ + public void setIdObject(Integer idObject) { + this.idObject = idObject; + } - /** - * @param idObject - * the idObject to set - * @see #idObject - */ - public void setIdObject(String idObject) { - this.idObject = Integer.valueOf(idObject); - } + /** + * @param idObject + * the idObject to set + * @see #idObject + */ + public void setIdObject(String idObject) { + this.idObject = Integer.valueOf(idObject); + } } diff --git a/model/src/main/java/lcsb/mapviewer/model/user/PrivilegeType.java b/model/src/main/java/lcsb/mapviewer/model/user/PrivilegeType.java index 2ae29adda5813df28b312c1290c906098976040a..be5c1fe1220fc167f988761be1372ee0f4a965f9 100644 --- a/model/src/main/java/lcsb/mapviewer/model/user/PrivilegeType.java +++ b/model/src/main/java/lcsb/mapviewer/model/user/PrivilegeType.java @@ -11,140 +11,141 @@ import lcsb.mapviewer.model.map.layout.Layout; */ public enum PrivilegeType { - /** - * User can browse project. - */ - VIEW_PROJECT(ObjectPrivilege.class, Project.class, "View project"), - - /** - * User can add project. - */ - ADD_MAP(BasicPrivilege.class, null, "Add project"), - - /** - * User can edit comments in the project. - */ - EDIT_COMMENTS_PROJECT(ObjectPrivilege.class, Project.class, "Manage comments"), - - /** - * User can manage projects. - */ - PROJECT_MANAGEMENT(BasicPrivilege.class, null, "Map management"), - - /** - * User can manage users. - */ - USER_MANAGEMENT(BasicPrivilege.class, null, "User management"), - - /** - * User can have custom layouts (access level defines how many). - */ - CUSTOM_LAYOUTS(BasicPrivilege.class, null, "Custom layouts", true), - - /** - * User can view non-public layout. - */ - LAYOUT_VIEW(ObjectPrivilege.class, Layout.class, "View layout"), - - /** - * User can manage configuration. - */ - CONFIGURATION_MANAGE(BasicPrivilege.class, null, "Manage configuration"), - - /** - * User can manage layouts of all users in the project. - */ - LAYOUT_MANAGEMENT(ObjectPrivilege.class, Project.class, "Manage layouts"), // - - /** - * User can manage reference genomes. - */ - MANAGE_GENOMES(BasicPrivilege.class, null, "Manage genomes"); - - /** - * Type of privilege (basic or privilege to the object). - */ - private Class<? extends BasicPrivilege> privilegeClassType; - - /** - * Type of the object to which privilege refers. - */ - private Class<?> privilegeObjectType; - - /** - * Name of the privilege. - */ - private String commonName; - - /** - * Is the privilege numeric. - */ - private boolean numeric = false; - - /** - * Constructor that initialize enum with data. - * - * @param privilegeClazz - * {@link #privilegeClassType} - * @param objectClazz - * {@link #privilegeObjectType} - * @param commonName - * {@link #commonName} - */ - PrivilegeType(Class<? extends BasicPrivilege> privilegeClazz, Class<?> objectClazz, String commonName) { - this.privilegeClassType = privilegeClazz; - this.privilegeObjectType = objectClazz; - this.commonName = commonName; - } - - /** - * Constructor that initialize enum with data. - * - * @param privilegeClazz - * {@link #privilegeClassType} - * @param objectClazz - * {@link #privilegeObjectType} - * @param commonName - * {@link #commonName} - * @param numeric - * {@link #numeric} - */ - PrivilegeType(Class<? extends BasicPrivilege> privilegeClazz, Class<?> objectClazz, String commonName, boolean numeric) { - this.privilegeClassType = privilegeClazz; - this.privilegeObjectType = objectClazz; - this.commonName = commonName; - this.numeric = true; - } - - /** - * - * @return {@link #privilegeClassType} - */ - public Class<? extends BasicPrivilege> getPrivilegeClassType() { - return privilegeClassType; - } - - /** - * - * @return {@link #privilegeObjectType} - */ - public Class<?> getPrivilegeObjectType() { - return privilegeObjectType; - } - - /** - * - * @return {@link #commonName} - */ - public String getCommonName() { - return commonName; - } - - /** - * - * @return {@link #numeric} - */ - public boolean isNumeric() { - return numeric; - } + /** + * User can browse project. + */ + VIEW_PROJECT(ObjectPrivilege.class, Project.class, "View project"), + + /** + * User can add project. + */ + ADD_MAP(BasicPrivilege.class, null, "Add project"), + + /** + * User can edit comments in the project. + */ + EDIT_COMMENTS_PROJECT(ObjectPrivilege.class, Project.class, "Manage comments"), + + /** + * User can manage projects. + */ + PROJECT_MANAGEMENT(BasicPrivilege.class, null, "Map management"), + + /** + * User can manage users. + */ + USER_MANAGEMENT(BasicPrivilege.class, null, "User management"), + + /** + * User can have custom layouts (access level defines how many). + */ + CUSTOM_LAYOUTS(BasicPrivilege.class, null, "Custom layouts", true), + + /** + * User can view non-public layout. + */ + LAYOUT_VIEW(ObjectPrivilege.class, Layout.class, "View layout"), + + /** + * User can manage configuration. + */ + CONFIGURATION_MANAGE(BasicPrivilege.class, null, "Manage configuration"), + + /** + * User can manage layouts of all users in the project. + */ + LAYOUT_MANAGEMENT(ObjectPrivilege.class, Project.class, "Manage layouts"), // + + /** + * User can manage reference genomes. + */ + MANAGE_GENOMES(BasicPrivilege.class, null, "Manage genomes"); + + /** + * Type of privilege (basic or privilege to the object). + */ + private Class<? extends BasicPrivilege> privilegeClassType; + + /** + * Type of the object to which privilege refers. + */ + private Class<?> privilegeObjectType; + + /** + * Name of the privilege. + */ + private String commonName; + + /** + * Is the privilege numeric. + */ + private boolean numeric = false; + + /** + * Constructor that initialize enum with data. + * + * @param privilegeClazz + * {@link #privilegeClassType} + * @param objectClazz + * {@link #privilegeObjectType} + * @param commonName + * {@link #commonName} + */ + PrivilegeType(Class<? extends BasicPrivilege> privilegeClazz, Class<?> objectClazz, String commonName) { + this.privilegeClassType = privilegeClazz; + this.privilegeObjectType = objectClazz; + this.commonName = commonName; + } + + /** + * Constructor that initialize enum with data. + * + * @param privilegeClazz + * {@link #privilegeClassType} + * @param objectClazz + * {@link #privilegeObjectType} + * @param commonName + * {@link #commonName} + * @param numeric + * {@link #numeric} + */ + PrivilegeType(Class<? extends BasicPrivilege> privilegeClazz, Class<?> objectClazz, String commonName, + boolean numeric) { + this.privilegeClassType = privilegeClazz; + this.privilegeObjectType = objectClazz; + this.commonName = commonName; + this.numeric = true; + } + + /** + * + * @return {@link #privilegeClassType} + */ + public Class<? extends BasicPrivilege> getPrivilegeClassType() { + return privilegeClassType; + } + + /** + * + * @return {@link #privilegeObjectType} + */ + public Class<?> getPrivilegeObjectType() { + return privilegeObjectType; + } + + /** + * + * @return {@link #commonName} + */ + public String getCommonName() { + return commonName; + } + + /** + * + * @return {@link #numeric} + */ + public boolean isNumeric() { + return numeric; + } } diff --git a/model/src/test/java/lcsb/mapviewer/model/user/ObjectPrivilegeTest.java b/model/src/test/java/lcsb/mapviewer/model/user/ObjectPrivilegeTest.java index 7433bb583f5c9d26192580c0955c50e7ecb7d813..90869f31f21b5300bfebae7bae83d8b300b6daaf 100644 --- a/model/src/test/java/lcsb/mapviewer/model/user/ObjectPrivilegeTest.java +++ b/model/src/test/java/lcsb/mapviewer/model/user/ObjectPrivilegeTest.java @@ -14,83 +14,100 @@ import lcsb.mapviewer.model.Project; public class ObjectPrivilegeTest { - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testSerialization() { - try { - SerializationUtils.serialize(new ObjectPrivilege()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testConstructror() { - try { - Integer id = 12; - Project project = new Project(); - project.setId(id); - ObjectPrivilege privilege = new ObjectPrivilege(project, 1, PrivilegeType.VIEW_PROJECT, new User()); - assertEquals(id, privilege.getIdObject()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testGetters() { - try { - String idStr = "12"; - Integer id = 12; - ObjectPrivilege privilege = new ObjectPrivilege(); - privilege.setIdObject(idStr); - assertEquals(id, privilege.getIdObject()); - privilege.setIdObject((Integer) null); - assertNull(privilege.getIdObject()); - privilege.setIdObject(id); - assertEquals(id, privilege.getIdObject()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testEqualsPrivilege() { - try { - ObjectPrivilege privilege = new ObjectPrivilege(); - privilege.setType(PrivilegeType.ADD_MAP); - assertFalse(privilege.equalsPrivilege(null)); - assertFalse(privilege.equalsPrivilege(new BasicPrivilege())); - - privilege.setIdObject(2); - ObjectPrivilege privilege2 = new ObjectPrivilege(); - privilege2.setIdObject(3); - privilege2.setType(PrivilegeType.ADD_MAP); - assertFalse(privilege.equalsPrivilege(privilege2)); - - privilege2.setIdObject(3); - privilege2.setType(PrivilegeType.CONFIGURATION_MANAGE); - assertFalse(privilege.equalsPrivilege(privilege2)); - - privilege2.setIdObject(2); - privilege2.setType(PrivilegeType.ADD_MAP); - assertTrue(privilege.equalsPrivilege(privilege2)); - - privilege.setIdObject((Integer) null); - assertFalse(privilege.equalsPrivilege(privilege2)); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testSerialization() { + try { + SerializationUtils.serialize(new ObjectPrivilege()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testConstructror() { + try { + Integer id = 12; + Project project = new Project(); + project.setId(id); + ObjectPrivilege privilege = new ObjectPrivilege(project, 1, PrivilegeType.VIEW_PROJECT, new User()); + assertEquals(id, privilege.getIdObject()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testGetters() { + try { + String idStr = "12"; + Integer id = 12; + ObjectPrivilege privilege = new ObjectPrivilege(); + privilege.setIdObject(idStr); + assertEquals(id, privilege.getIdObject()); + privilege.setIdObject((Integer) null); + assertNull(privilege.getIdObject()); + privilege.setIdObject(id); + assertEquals(id, privilege.getIdObject()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testEqualsPrivilege() { + try { + ObjectPrivilege privilege = new ObjectPrivilege(); + privilege.setType(PrivilegeType.ADD_MAP); + assertFalse(privilege.equalsPrivilege(null)); + assertFalse(privilege.equalsPrivilege(new BasicPrivilege())); + + privilege.setIdObject(2); + ObjectPrivilege privilege2 = new ObjectPrivilege(); + privilege2.setIdObject(3); + privilege2.setType(PrivilegeType.ADD_MAP); + assertFalse(privilege.equalsPrivilege(privilege2)); + + privilege2.setIdObject(3); + privilege2.setType(PrivilegeType.CONFIGURATION_MANAGE); + assertFalse(privilege.equalsPrivilege(privilege2)); + + privilege2.setIdObject(2); + privilege2.setType(PrivilegeType.ADD_MAP); + assertTrue(privilege.equalsPrivilege(privilege2)); + + privilege.setIdObject((Integer) null); + assertFalse(privilege.equalsPrivilege(privilege2)); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testEqualsWithEmptyObjectId() { + try { + ObjectPrivilege privilege = new ObjectPrivilege(); + privilege.setType(PrivilegeType.ADD_MAP); + privilege.setIdObject((Integer) null); + + ObjectPrivilege privilege2 = new ObjectPrivilege(); + privilege2.setType(PrivilegeType.ADD_MAP); + privilege2.setIdObject((Integer) null); + assertTrue(privilege.equalsPrivilege(privilege2)); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } } diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java index a845b33e098b3681159205abc44eeac57c2f13f9..1800c0ffcf0eaf581cf96d1044c310271a0f4647 100644 --- a/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java +++ b/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java @@ -16,6 +16,7 @@ import lcsb.mapviewer.api.BaseRestImpl; import lcsb.mapviewer.api.ObjectNotFoundException; import lcsb.mapviewer.api.QueryException; import lcsb.mapviewer.common.exception.InvalidArgumentException; +import lcsb.mapviewer.model.Project; import lcsb.mapviewer.model.map.MiriamType; import lcsb.mapviewer.model.user.BasicPrivilege; import lcsb.mapviewer.model.user.ObjectPrivilege; @@ -26,8 +27,10 @@ import lcsb.mapviewer.model.user.UserClassAnnotators; import lcsb.mapviewer.model.user.UserClassRequiredAnnotations; import lcsb.mapviewer.model.user.UserClassValidAnnotations; import lcsb.mapviewer.services.SecurityException; +import lcsb.mapviewer.services.interfaces.IConfigurationService; import lcsb.mapviewer.services.interfaces.ILayoutService; import lcsb.mapviewer.services.view.AuthenticationToken; +import lcsb.mapviewer.services.view.ConfigurationView; @Transactional(value = "txManager") public class UserRestImpl extends BaseRestImpl { @@ -41,6 +44,9 @@ public class UserRestImpl extends BaseRestImpl { @Autowired private ILayoutService layoutService; + @Autowired + private IConfigurationService configurationService; + public Map<String, Object> getUser(String token, String login, String columns) throws SecurityException, ObjectNotFoundException { User ownUserData = getUserService().getUserByToken(token); @@ -246,13 +252,24 @@ public class UserRestImpl extends BaseRestImpl { private List<Map<String, Object>> preparePrivileges(User user) { List<Map<String, Object>> result = new ArrayList<>(); + Set<PrivilegeType> definedDefaultProjectPrivilegeTypes = new HashSet<>(); for (BasicPrivilege privilege : user.getPrivileges()) { if (privilege instanceof ObjectPrivilege) { + if (Project.class.equals(privilege.getType().getPrivilegeObjectType()) + && ((ObjectPrivilege) privilege).getIdObject() == null) { + definedDefaultProjectPrivilegeTypes.add(privilege.getType()); + } result.add(prepareObjectPrivilege((ObjectPrivilege) privilege)); } else { result.add(prepareBasicPrivilege(privilege)); } } + for (PrivilegeType privilegeType : PrivilegeType.values()) { + if (Project.class.equals(privilegeType.getPrivilegeObjectType()) + && !definedDefaultProjectPrivilegeTypes.contains(privilegeType)) { + result.add(prepareDefaultObjectPrivilege(privilegeType)); + } + } Map<String, Object> customLayouts = new HashMap<>(); customLayouts.put("type", "CUSTOM_LAYOUTS_AVAILABLE"); customLayouts.put("value", layoutService.getAvailableCustomLayoutsNumber(user)); @@ -260,6 +277,23 @@ public class UserRestImpl extends BaseRestImpl { return result; } + private Map<String, Object> prepareDefaultObjectPrivilege(PrivilegeType privilegeType) { + Map<String, Object> result = new HashMap<>(); + result.put("type", privilegeType); + ConfigurationView value = configurationService.getValue(privilegeType); + if (value == null) { + result.put("value", 0); + } else if (value.getValue().equalsIgnoreCase("true")) { + result.put("value", 1); + } else if (value.getValue().equalsIgnoreCase("false")) { + result.put("value", 0); + } else { + result.put("value", value.getValue()); + } + result.put("objectId", null); + return result; + } + private Map<String, Object> prepareObjectPrivilege(ObjectPrivilege privilege) { Map<String, Object> result = new HashMap<>(); result.put("type", privilege.getType()); @@ -330,8 +364,12 @@ public class UserRestImpl extends BaseRestImpl { if (value instanceof Map) { Map<?, ?> objects = (Map<?, ?>) value; for (Object objectId : objects.keySet()) { - getUserService().setUserPrivilege(modifiedUser, type, objects.get(objectId), - Integer.valueOf((String) objectId), authenticationToken); + Integer objectIdAsInteger = null; + if (!objectId.equals("null")) { + objectIdAsInteger = Integer.valueOf((String) objectId); + } + getUserService().setUserPrivilege(modifiedUser, type, objects.get(objectId), objectIdAsInteger, + authenticationToken); } } else { throw new QueryException("Invalid value for privilege: " + key); diff --git a/service/src/main/java/lcsb/mapviewer/services/impl/ConfigurationService.java b/service/src/main/java/lcsb/mapviewer/services/impl/ConfigurationService.java index cb87e19a7aa17896ae79e52d9ed9b5a013e1a052..c1d9d5f42618b159012d3890cb90647abfd114fa 100644 --- a/service/src/main/java/lcsb/mapviewer/services/impl/ConfigurationService.java +++ b/service/src/main/java/lcsb/mapviewer/services/impl/ConfigurationService.java @@ -3,6 +3,7 @@ package lcsb.mapviewer.services.impl; import java.util.ArrayList; import java.util.List; +import org.apache.commons.lang3.EnumUtils; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; @@ -10,6 +11,7 @@ import org.springframework.transaction.annotation.Transactional; import lcsb.mapviewer.common.FrameworkVersion; import lcsb.mapviewer.model.user.Configuration; import lcsb.mapviewer.model.user.ConfigurationElementType; +import lcsb.mapviewer.model.user.PrivilegeType; import lcsb.mapviewer.persist.dao.ConfigurationDao; import lcsb.mapviewer.services.interfaces.IConfigurationService; import lcsb.mapviewer.services.view.ConfigurationView; @@ -158,4 +160,14 @@ public class ConfigurationService implements IConfigurationService { return runtime.maxMemory() / MEGABYTE_SIZE; } + @Override + public ConfigurationView getValue(PrivilegeType type) { + String name = "DEFAULT_" + type.name(); + if (EnumUtils.isValidEnum(ConfigurationElementType.class, name)) { + return getValue(ConfigurationElementType.valueOf(name)); + } else { + return null; + } + } + } diff --git a/service/src/main/java/lcsb/mapviewer/services/impl/LayoutService.java b/service/src/main/java/lcsb/mapviewer/services/impl/LayoutService.java index be6946bd40ca608b4e58c715dee66555863aeca0..753d7999db145c31b109185974aa7ce94fd95533 100644 --- a/service/src/main/java/lcsb/mapviewer/services/impl/LayoutService.java +++ b/service/src/main/java/lcsb/mapviewer/services/impl/LayoutService.java @@ -35,7 +35,6 @@ import lcsb.mapviewer.model.Project; import lcsb.mapviewer.model.cache.UploadedFileEntry; import lcsb.mapviewer.model.log.LogType; import lcsb.mapviewer.model.map.MiriamData; -import lcsb.mapviewer.model.map.MiriamType; import lcsb.mapviewer.model.map.layout.ColorSchema; import lcsb.mapviewer.model.map.layout.GeneVariation; import lcsb.mapviewer.model.map.layout.GeneVariationColorSchema; diff --git a/service/src/main/java/lcsb/mapviewer/services/impl/ProjectService.java b/service/src/main/java/lcsb/mapviewer/services/impl/ProjectService.java index b037f9c1254f29fc1b9bd1634a392dd444070167..5e6664973f95685afdf0909a1cba9cc709b48560 100644 --- a/service/src/main/java/lcsb/mapviewer/services/impl/ProjectService.java +++ b/service/src/main/java/lcsb/mapviewer/services/impl/ProjectService.java @@ -570,33 +570,41 @@ public class ProjectService implements IProjectService { newUsers[i][j] = users.get(i)[j]; } } - newUsers[users.size()][0] = "anonymous"; - newUsers[users.size()][1] = ""; + Set<User> processedUser = new HashSet<>(); for (int i = 0; i < newUsers.length; i++) { - boolean admin = (users.size() != i); String login = newUsers[i][0]; - String passwd = newUsers[i][1]; User user = userService.getUserByLogin(login); - if (userService.getUserByLogin(login) == null) { - logger.debug("User " + login + " does not exist. Creating"); - user = new User(); - user.setCryptedPassword(passwordEncoder.encode(passwd)); - user.setLogin(login); - userService.addUser(user); - } - if (project != null) { - logger.debug("Privileges for " + login + " for project " + project.getProjectId()); + if (user != null) { + processedUser.add(user); + logger.debug("Root privileges for " + login + " for project " + project.getProjectId()); ObjectPrivilege privilege = new ObjectPrivilege(project, 1, PrivilegeType.VIEW_PROJECT, user); userService.setUserPrivilege(user, privilege); - if (admin) { - privilege = new ObjectPrivilege(project, 1, PrivilegeType.LAYOUT_MANAGEMENT, user); - userService.setUserPrivilege(user, privilege); - privilege = new ObjectPrivilege(project, 1, PrivilegeType.EDIT_COMMENTS_PROJECT, user); - userService.setUserPrivilege(user, privilege); + privilege = new ObjectPrivilege(project, 1, PrivilegeType.LAYOUT_MANAGEMENT, user); + userService.setUserPrivilege(user, privilege); + privilege = new ObjectPrivilege(project, 1, PrivilegeType.EDIT_COMMENTS_PROJECT, user); + userService.setUserPrivilege(user, privilege); + } + } + for (User user : userDao.getAll()) { + if (!processedUser.contains(user)) { + processedUser.add(user); + for (PrivilegeType type : PrivilegeType.values()) { + if (Project.class.equals(type.getPrivilegeObjectType())) { + int level = userService.getUserPrivilegeLevel(user, type, (Integer) null); + if (level < 0) { + if (configurationService.getValue(type).getValue().equalsIgnoreCase("true")) { + level = 1; + } else { + level = 0; + } + } + ObjectPrivilege privilege = new ObjectPrivilege(project, level, type, user); + userService.setUserPrivilege(user, privilege); + } } - } } + } /** @@ -1023,7 +1031,7 @@ public class ProjectService implements IProjectService { if (taxonomyBackend.getNameForTaxonomy(organism) != null) { project.setOrganism(organism); } else { - logger.warn(project.getProjectId()+"\tNo valid organism is provided for project. " + organism); + logger.warn(project.getProjectId() + "\tNo valid organism is provided for project. " + organism); } modelDao.update(originalModel); diff --git a/service/src/main/java/lcsb/mapviewer/services/impl/UserService.java b/service/src/main/java/lcsb/mapviewer/services/impl/UserService.java index 8efec25b1fb0845c43a42105928e75481d94cce7..f2bbf63c14c9657f9d4e3fa1a65e22f1f47a9bc2 100644 --- a/service/src/main/java/lcsb/mapviewer/services/impl/UserService.java +++ b/service/src/main/java/lcsb/mapviewer/services/impl/UserService.java @@ -16,6 +16,7 @@ import org.springframework.transaction.annotation.Transactional; import lcsb.mapviewer.commands.ColorExtractor; import lcsb.mapviewer.common.Configuration; import lcsb.mapviewer.common.ObjectUtils; +import lcsb.mapviewer.common.comparator.IntegerComparator; import lcsb.mapviewer.common.exception.InvalidArgumentException; import lcsb.mapviewer.common.geometry.ColorParser; import lcsb.mapviewer.model.Project; @@ -25,7 +26,6 @@ import lcsb.mapviewer.model.user.ConfigurationElementType; import lcsb.mapviewer.model.user.ObjectPrivilege; import lcsb.mapviewer.model.user.PrivilegeType; import lcsb.mapviewer.model.user.User; -import lcsb.mapviewer.model.user.UserAnnotationSchema; import lcsb.mapviewer.persist.dao.ProjectDao; import lcsb.mapviewer.persist.dao.user.PrivilegeDao; import lcsb.mapviewer.persist.dao.user.UserDao; @@ -281,6 +281,7 @@ public class UserService implements IUserService { @Override public void dropPrivilegesForObjectType(PrivilegeType type, int id) { + IntegerComparator integerComparator = new IntegerComparator(); // this will be slow when number of user will increase (we fetch all // users and drop privileges one by one) List<User> users = userDao.getAll(); @@ -288,7 +289,7 @@ public class UserService implements IUserService { List<BasicPrivilege> toRemove = new ArrayList<BasicPrivilege>(); for (BasicPrivilege privilege : user.getPrivileges()) { if (privilege.getType().equals(type) && privilege instanceof ObjectPrivilege - && ((ObjectPrivilege) privilege).getIdObject() == id) { + && integerComparator.compare(((ObjectPrivilege) privilege).getIdObject(), id) == 0) { toRemove.add(privilege); } } @@ -314,19 +315,18 @@ public class UserService implements IUserService { @Override public int getUserPrivilegeLevel(User user, PrivilegeType type, Object object) { - if (object == null) { - throw new InvalidArgumentException("Object cannot be null"); - } Integer id = null; - try { - id = ObjectUtils.getIdOfObject(object); - } catch (Exception e) { - logger.error(e.getMessage(), e); - throw new InvalidArgumentException("Internal server error. Problem with accessing id of the parameter object"); - } - if (!type.getPrivilegeObjectType().isAssignableFrom(object.getClass())) { - throw new InvalidArgumentException("This privilege accept only " + type.getPrivilegeObjectType() - + " objects parameter, but " + object.getClass() + " class found."); + if (object != null) { + try { + id = ObjectUtils.getIdOfObject(object); + } catch (Exception e) { + logger.error(e.getMessage(), e); + throw new InvalidArgumentException("Internal server error. Problem with accessing id of the parameter object"); + } + if (!type.getPrivilegeObjectType().isAssignableFrom(object.getClass())) { + throw new InvalidArgumentException("This privilege accept only " + type.getPrivilegeObjectType() + + " objects parameter, but " + object.getClass() + " class found."); + } } return getUserPrivilegeLevel(user, type, id); } @@ -335,9 +335,6 @@ public class UserService implements IUserService { if (type.getPrivilegeClassType() != ObjectPrivilege.class) { throw new InvalidArgumentException("This privilege doesn't accept object parameter"); } - if (id == null) { - throw new InvalidArgumentException("Parameter object has null id value"); - } if (user == null) { throw new InvalidArgumentException("User cannot be null"); } @@ -346,10 +343,11 @@ public class UserService implements IUserService { if (user.getId() != null) { user = userDao.getById(user.getId()); } + IntegerComparator integerComparator = new IntegerComparator(); for (BasicPrivilege privilege : user.getPrivileges()) { if (privilege.getClass() == ObjectPrivilege.class) { ObjectPrivilege oPrivilege = (ObjectPrivilege) privilege; - if (oPrivilege.getType().equals(type) && oPrivilege.getIdObject().equals(id)) { + if (oPrivilege.getType().equals(type) && integerComparator.compare(oPrivilege.getIdObject(), id) == 0) { return privilege.getLevel(); } } @@ -631,7 +629,11 @@ public class UserService implements IUserService { throw new SecurityException("You cannot modify user privileges"); } Project projectIdWrapper = new Project(); - projectIdWrapper.setId(objectId); + if (objectId == null) { + projectIdWrapper = null; + } else { + projectIdWrapper.setId(objectId); + } if (value instanceof Integer) { setUserPrivilege(user, new ObjectPrivilege(projectIdWrapper, (Integer) value, type, user)); } else if (value instanceof Boolean) { diff --git a/service/src/main/java/lcsb/mapviewer/services/interfaces/IConfigurationService.java b/service/src/main/java/lcsb/mapviewer/services/interfaces/IConfigurationService.java index bed88037e360c18bcfd4dfeed9ab9496da99ee78..2b7b894cbaf8c8906ec7a266d529950f14ef0a0f 100644 --- a/service/src/main/java/lcsb/mapviewer/services/interfaces/IConfigurationService.java +++ b/service/src/main/java/lcsb/mapviewer/services/interfaces/IConfigurationService.java @@ -4,6 +4,7 @@ import java.util.List; import lcsb.mapviewer.common.FrameworkVersion; import lcsb.mapviewer.model.user.ConfigurationElementType; +import lcsb.mapviewer.model.user.PrivilegeType; import lcsb.mapviewer.services.view.ConfigurationView; /** @@ -111,5 +112,7 @@ public interface IConfigurationService { */ String getSystemGitVersion(String baseDir); - ConfigurationView getValue(ConfigurationElementType type); + ConfigurationView getValue(ConfigurationElementType type); + + ConfigurationView getValue(PrivilegeType type); } diff --git a/service/src/main/java/lcsb/mapviewer/services/utils/CreateProjectParams.java b/service/src/main/java/lcsb/mapviewer/services/utils/CreateProjectParams.java index a1f3ab33bcb611c39b4a409d0dbcec2429ec1a0e..c6b976f18150522502da4022a74b22ba4fb7bfe1 100644 --- a/service/src/main/java/lcsb/mapviewer/services/utils/CreateProjectParams.java +++ b/service/src/main/java/lcsb/mapviewer/services/utils/CreateProjectParams.java @@ -136,14 +136,15 @@ public class CreateProjectParams { /** * Directory with the static images that will be stored on server. This - * directory is relative and it's a simple uniqe name within folder with images. + * directory is relative and it's a simple unique name within folder with + * images. */ private String projectDir; private AuthenticationToken authenticationToken; /** - * Map that contains informnation what kind of annotators should be used for + * Map that contains information what kind of annotators should be used for * specific class. */ private Map<Class<?>, List<String>> annotatorsMap = null; @@ -156,7 +157,7 @@ public class CreateProjectParams { /** * Map that contains information which {@link MiriamType miriam types} are - * obigatory for which class. + * obligatory for which class. */ private Map<Class<? extends BioEntity>, Set<MiriamType>> requiredAnnotations = null; diff --git a/service/src/main/java/lcsb/mapviewer/services/view/UserView.java b/service/src/main/java/lcsb/mapviewer/services/view/UserView.java index 65f4cc15ff67a0d4a9214e2a02aa5596d1a94857..7569de2fc50c3e4538f5e60c828862ddf378e6d2 100644 --- a/service/src/main/java/lcsb/mapviewer/services/view/UserView.java +++ b/service/src/main/java/lcsb/mapviewer/services/view/UserView.java @@ -24,572 +24,576 @@ import org.primefaces.model.SelectableDataModel; */ public class UserView extends AbstractView<User> implements Comparable<UserView>, Serializable { - /** - * - */ - private static final long serialVersionUID = 1L; - - /** - * Default class logger. - */ - private static Logger logger = Logger.getLogger(UserView.class); - - /** - * This data model is extension of faces {@link ListDataModel} and - * implements {@link SelectableDataModel} from primefaces library. It allows - * client to create a table (in xhtml) that allows to select element on it - * and call select event associated with the row. The model operates on - * {@link UserProjectPrivilegeView} that describe set of privileges to - * single project. - * - * @author Piotr Gawron - * - */ - public class ProjectDataModel extends ListDataModel<UserProjectPrivilegeView> - implements SelectableDataModel<UserProjectPrivilegeView>, Serializable { - - /** - * - */ - private static final long serialVersionUID = 1L; - - /** - * Default constructor. - */ - public ProjectDataModel() { - } - - /** - * Constructor that initialize the data. - * - * @param data - * data used in the model - */ - public ProjectDataModel(List<UserProjectPrivilegeView> data) { - super(data); - } - - @Override - public Object getRowKey(UserProjectPrivilegeView object) { - return object.toString(); - } - - @SuppressWarnings("unchecked") - @Override - public UserProjectPrivilegeView getRowData(String rowKey) { - List<UserProjectPrivilegeView> privileges = (List<UserProjectPrivilegeView>) getWrappedData(); - - for (UserProjectPrivilegeView privilege : privileges) { - if ((privilege.toString()).equals(rowKey)) { - return privilege; - } - } - return null; - } - - } - - /** - * Class representing prvileges to the specific project. - * - * @author Piotr Gawron - * - */ - public class UserProjectPrivilegeView extends AbstractView<Project> implements Serializable { - /** - * - */ - private static final long serialVersionUID = 1L; - - /** - * {@link Project#projectId Project identifier}. - */ - private String projectId; - - /** - * List of privileges to the project. - */ - private List<PrivilegeView> projectPrivileges = new ArrayList<PrivilegeView>(); - - /** - * List of layouts with privileges. - */ - private List<UserLayoutPrivilege> layoutPrivileges = new ArrayList<UserLayoutPrivilege>(); - - /** - * Constructor that creates view for the project. - * - * @param project - * originasl project - */ - public UserProjectPrivilegeView(Project project) { - super(project); - this.projectId = project.getProjectId(); - } - - /** - * Default constructor. - */ - public UserProjectPrivilegeView() { - super(null); - } - - /** - * @return the projectId - * @see #projectId - */ - public String getProjectId() { - return projectId; - } - - /** - * @param projectId - * the projectId to set - * @see #projectId - */ - public void setProjectId(String projectId) { - this.projectId = projectId; - } - - /** - * @return the projectPrivileges - * @see #projectPrivileges - */ - public List<PrivilegeView> getProjectPrivileges() { - return projectPrivileges; - } - - /** - * @param projectPrivileges - * the projectPrivileges to set - * @see #projectPrivileges - */ - public void setProjectPrivileges(List<PrivilegeView> projectPrivileges) { - this.projectPrivileges = projectPrivileges; - } - - /** - * @return the layoutPrivileges - * @see #layoutPrivileges - */ - public List<UserLayoutPrivilege> getLayoutPrivileges() { - return layoutPrivileges; - } - - /** - * @param layoutPrivileges - * the layoutPrivileges to set - * @see #layoutPrivileges - */ - public void setLayoutPrivileges(List<UserLayoutPrivilege> layoutPrivileges) { - this.layoutPrivileges = layoutPrivileges; - } - - /** - * Returns view of the {@link Privilege} for a given - * {@link PrivilegeType}. - * - * @param pt - * ttype of privilege - * @return view of the {@link Privilege} for a given - * {@link PrivilegeType} - */ - public PrivilegeView getProjectPrivilegeByPrivilegeType(PrivilegeType pt) { - for (PrivilegeView pv : projectPrivileges) { - if (pv.getType() == pt) { - return pv; - } - } - logger.warn("Cannot find " + pt + " for projectID: " + this.getIdObject() + " (" + this.getProjectId() - + "). UserId: " + UserView.this.getIdObject() + " (" + UserView.this.getLogin() + ")"); - return null; - } - - } - - /** - * Class representing prvileges to the specific - * {@link lcsb.mapviewer.db.model.map.layout.Layout Layout}. - * - * @author Piotr Gawron - * - */ - public class UserLayoutPrivilege extends AbstractView<Layout> { - /** - * - */ - private static final long serialVersionUID = 1L; - - /** - * Name of the layout. - */ - private String layoutName; - - /** - * List of privileges for the layout. - */ - private List<PrivilegeView> layoutPrivileges = new ArrayList<PrivilegeView>(); - - /** - * Default constructor. - * - * @param layout - * object for which the privilege set is created - */ - protected UserLayoutPrivilege(Layout layout) { - super(layout); - } - - /** - * Default constructor. Should be used only for deserialization. - */ - protected UserLayoutPrivilege() { - } - - /** - * @return the layoutName - * @see #layoutName - */ - public String getLayoutName() { - return layoutName; - } - - /** - * @param layoutName - * the layoutName to set - * @see #layoutName - */ - public void setLayoutName(String layoutName) { - this.layoutName = layoutName; - } - - /** - * @return the layoutPrivileges - * @see #layoutPrivileges - */ - public List<PrivilegeView> getLayoutPrivileges() { - return layoutPrivileges; - } - - /** - * @param layoutPrivileges - * the layoutPrivileges to set - * @see #layoutPrivileges - */ - public void setLayoutPrivileges(List<PrivilegeView> layoutPrivileges) { - this.layoutPrivileges = layoutPrivileges; - } - - } - - /** - * Use login. - */ - private String login; - - /** - * User password (can be set only by the client side, when view is created - * password should be set to empty, simple precaution not to reveal - * passwords). - */ - private String password; - - /** - * User password 2. - */ - private String password2; - - /** - * Old password. - */ - private String oldPassword; - - /** - * Old Encrypted password. - */ - private String cryptedPassword; - - /** - * Name of the user. - */ - private String name; - - /** - * Family name of the user. - */ - private String surname; - - /** - * User email address. - */ - private String email; - - /** - * List of general privielges. - */ - private List<PrivilegeView> basicPrivileges = new ArrayList<PrivilegeView>(); - /** - * List of privileges divided by the projects. - */ - - private List<UserProjectPrivilegeView> projectPrivileges = new ArrayList<UserProjectPrivilegeView>(); - /** - * Data model used for managing project privileges. - */ - private ProjectDataModel pdm = null; - - /** - * Constructor that create user view from the user data. - * - * @param user - * orignal user - */ - protected UserView(User user) { - super(user); - this.login = user.getLogin(); - this.password = ""; - this.password2 = ""; - this.oldPassword = ""; - this.cryptedPassword = user.getCryptedPassword(); - this.name = user.getName(); - this.surname = user.getSurname(); - this.email = user.getEmail(); - } - - /** - * Default constructor. - */ - protected UserView() { - super(null); - } - - /** - * Returns object with privileges for the given project. - * - * @param projectId - * identrifier of the project - * @return object with privileges for the given project - */ - public UserProjectPrivilegeView getProjectPrivilegeByProjectId(int projectId) { - for (UserProjectPrivilegeView projectPrivilege : getProjectPrivileges()) { - if (projectPrivilege.getIdObject() == projectId) { - return projectPrivilege; - } - } - if (projectId != 0) { - logger.warn("Cannot find project privileges for projectID: " + projectId + ". User: " + getIdObject() + " (" - + getLogin() + ")."); - } - return null; - } - - /** - * - * @return {@link #pdm} - */ - public ProjectDataModel getPdm() { - if (pdm == null) { - pdm = new ProjectDataModel(projectPrivileges); - } - return pdm; - } - - /** - * - * @param pdm - * new {@link #pdm} object - */ - public void setPdm(ProjectDataModel pdm) { - this.pdm = pdm; - } - - /** - * Return object with privileges for layout given in the parameter. - * - * @param layoutId - * identifier of the layout - * @return object with privileges for layout - */ - public UserLayoutPrivilege getLayoutPrivilegeByLayoutId(int layoutId) { - for (UserProjectPrivilegeView projectPrivilege : getProjectPrivileges()) { - for (UserLayoutPrivilege layoutPrivilege : projectPrivilege.getLayoutPrivileges()) { - if (layoutPrivilege.getIdObject() == layoutId) { - return layoutPrivilege; - } - } - } - logger.warn("Cannot find project privileges for layoutID: " + layoutId); - return null; - } - - @Override - public int compareTo(UserView o) { - IntegerComparator comparator = new IntegerComparator(); - if (o == null) { - comparator.compare(getIdObject(), null); - } - return comparator.compare(getIdObject(), o.getIdObject()); - - } - - /** - * @return the login - * @see #login - */ - public String getLogin() { - return login; - } - - /** - * @param login - * the login to set - * @see #login - */ - public void setLogin(String login) { - this.login = login; - } - - /** - * @return the password - * @see #password - */ - public String getPassword() { - return password; - } - - /** - * @param password - * the password to set - * @see #password - */ - public void setPassword(String password) { - this.password = password; - } - - /** - * @return the name - * @see #name - */ - public String getName() { - return name; - } - - /** - * @param name - * the name to set - * @see #name - */ - public void setName(String name) { - this.name = name; - } - - /** - * @return the surname - * @see #surname - */ - public String getSurname() { - return surname; - } - - /** - * @param surname - * the surname to set - * @see #surname - */ - public void setSurname(String surname) { - this.surname = surname; - } - - /** - * @return the email - * @see #email - */ - public String getEmail() { - return email; - } - - /** - * @param email - * the email to set - * @see #email - */ - public void setEmail(String email) { - this.email = email; - } - - /** - * @return the basicPrivileges - * @see #basicPrivileges - */ - public List<PrivilegeView> getBasicPrivileges() { - return basicPrivileges; - } - - /** - * @param basicPrivileges - * the basicPrivileges to set - * @see #basicPrivileges - */ - public void setBasicPrivileges(List<PrivilegeView> basicPrivileges) { - this.basicPrivileges = basicPrivileges; - } - - /** - * @return the projectPrivileges - * @see #projectPrivileges - */ - public List<UserProjectPrivilegeView> getProjectPrivileges() { - return projectPrivileges; - } - - /** - * @param projectPrivileges - * the projectPrivileges to set - * @see #projectPrivileges - */ - public void setProjectPrivileges(List<UserProjectPrivilegeView> projectPrivileges) { - this.projectPrivileges = projectPrivileges; - } - - /** - * @return old password as typed by the user. - */ - public String getOldPassword() { - return oldPassword; - } - - /** - * @param oldPassword the field for the user to put in the old password, - */ - public void setOldPassword(String oldPassword) { - this.oldPassword = oldPassword; - } - - /** - * @return password crypted and stored in DB. - */ - public String getCryptedPassword() { - return cryptedPassword; - } - - /** - * @param cryptedPassword crypted password stored in DB - */ - public void setCryptedPassword(String cryptedPassword) { - this.cryptedPassword = cryptedPassword; - } - - /** - * @return password2. - */ - public String getPassword2() { - return password2; - } - - /** - * @param password2 to verify that the password match. - */ - public void setPassword2(String password2) { - this.password2 = password2; - } + /** + * + */ + private static final long serialVersionUID = 1L; + + /** + * Default class logger. + */ + private static Logger logger = Logger.getLogger(UserView.class); + + /** + * This data model is extension of faces {@link ListDataModel} and implements + * {@link SelectableDataModel} from primefaces library. It allows client to + * create a table (in xhtml) that allows to select element on it and call select + * event associated with the row. The model operates on + * {@link UserProjectPrivilegeView} that describe set of privileges to single + * project. + * + * @author Piotr Gawron + * + */ + public class ProjectDataModel extends ListDataModel<UserProjectPrivilegeView> + implements SelectableDataModel<UserProjectPrivilegeView>, Serializable { + + /** + * + */ + private static final long serialVersionUID = 1L; + + /** + * Default constructor. + */ + public ProjectDataModel() { + } + + /** + * Constructor that initialize the data. + * + * @param data + * data used in the model + */ + public ProjectDataModel(List<UserProjectPrivilegeView> data) { + super(data); + } + + @Override + public Object getRowKey(UserProjectPrivilegeView object) { + return object.toString(); + } + + @SuppressWarnings("unchecked") + @Override + public UserProjectPrivilegeView getRowData(String rowKey) { + List<UserProjectPrivilegeView> privileges = (List<UserProjectPrivilegeView>) getWrappedData(); + + for (UserProjectPrivilegeView privilege : privileges) { + if ((privilege.toString()).equals(rowKey)) { + return privilege; + } + } + return null; + } + + } + + /** + * Class representing prvileges to the specific project. + * + * @author Piotr Gawron + * + */ + public class UserProjectPrivilegeView extends AbstractView<Project> implements Serializable { + /** + * + */ + private static final long serialVersionUID = 1L; + + /** + * {@link Project#projectId Project identifier}. + */ + private String projectId; + + /** + * List of privileges to the project. + */ + private List<PrivilegeView> projectPrivileges = new ArrayList<PrivilegeView>(); + + /** + * List of layouts with privileges. + */ + private List<UserLayoutPrivilege> layoutPrivileges = new ArrayList<UserLayoutPrivilege>(); + + /** + * Constructor that creates view for the project. + * + * @param project + * originasl project + */ + public UserProjectPrivilegeView(Project project) { + super(project); + this.projectId = project.getProjectId(); + } + + /** + * Default constructor. + */ + public UserProjectPrivilegeView() { + super(null); + } + + /** + * @return the projectId + * @see #projectId + */ + public String getProjectId() { + return projectId; + } + + /** + * @param projectId + * the projectId to set + * @see #projectId + */ + public void setProjectId(String projectId) { + this.projectId = projectId; + } + + /** + * @return the projectPrivileges + * @see #projectPrivileges + */ + public List<PrivilegeView> getProjectPrivileges() { + return projectPrivileges; + } + + /** + * @param projectPrivileges + * the projectPrivileges to set + * @see #projectPrivileges + */ + public void setProjectPrivileges(List<PrivilegeView> projectPrivileges) { + this.projectPrivileges = projectPrivileges; + } + + /** + * @return the layoutPrivileges + * @see #layoutPrivileges + */ + public List<UserLayoutPrivilege> getLayoutPrivileges() { + return layoutPrivileges; + } + + /** + * @param layoutPrivileges + * the layoutPrivileges to set + * @see #layoutPrivileges + */ + public void setLayoutPrivileges(List<UserLayoutPrivilege> layoutPrivileges) { + this.layoutPrivileges = layoutPrivileges; + } + + /** + * Returns view of the {@link Privilege} for a given {@link PrivilegeType}. + * + * @param pt + * ttype of privilege + * @return view of the {@link Privilege} for a given {@link PrivilegeType} + */ + public PrivilegeView getProjectPrivilegeByPrivilegeType(PrivilegeType pt) { + for (PrivilegeView pv : projectPrivileges) { + if (pv.getType() == pt) { + return pv; + } + } + logger.warn("Cannot find " + pt + " for projectID: " + this.getIdObject() + " (" + this.getProjectId() + + "). UserId: " + UserView.this.getIdObject() + " (" + UserView.this.getLogin() + ")"); + return null; + } + + } + + /** + * Class representing prvileges to the specific + * {@link lcsb.mapviewer.db.model.map.layout.Layout Layout}. + * + * @author Piotr Gawron + * + */ + public class UserLayoutPrivilege extends AbstractView<Layout> { + /** + * + */ + private static final long serialVersionUID = 1L; + + /** + * Name of the layout. + */ + private String layoutName; + + /** + * List of privileges for the layout. + */ + private List<PrivilegeView> layoutPrivileges = new ArrayList<PrivilegeView>(); + + /** + * Default constructor. + * + * @param layout + * object for which the privilege set is created + */ + protected UserLayoutPrivilege(Layout layout) { + super(layout); + } + + /** + * Default constructor. Should be used only for deserialization. + */ + protected UserLayoutPrivilege() { + } + + /** + * @return the layoutName + * @see #layoutName + */ + public String getLayoutName() { + return layoutName; + } + + /** + * @param layoutName + * the layoutName to set + * @see #layoutName + */ + public void setLayoutName(String layoutName) { + this.layoutName = layoutName; + } + + /** + * @return the layoutPrivileges + * @see #layoutPrivileges + */ + public List<PrivilegeView> getLayoutPrivileges() { + return layoutPrivileges; + } + + /** + * @param layoutPrivileges + * the layoutPrivileges to set + * @see #layoutPrivileges + */ + public void setLayoutPrivileges(List<PrivilegeView> layoutPrivileges) { + this.layoutPrivileges = layoutPrivileges; + } + + } + + /** + * Use login. + */ + private String login; + + /** + * User password (can be set only by the client side, when view is created + * password should be set to empty, simple precaution not to reveal passwords). + */ + private String password; + + /** + * User password 2. + */ + private String password2; + + /** + * Old password. + */ + private String oldPassword; + + /** + * Old Encrypted password. + */ + private String cryptedPassword; + + /** + * Name of the user. + */ + private String name; + + /** + * Family name of the user. + */ + private String surname; + + /** + * User email address. + */ + private String email; + + /** + * List of general privielges. + */ + private List<PrivilegeView> basicPrivileges = new ArrayList<PrivilegeView>(); + /** + * List of privileges divided by the projects. + */ + + private List<UserProjectPrivilegeView> projectPrivileges = new ArrayList<UserProjectPrivilegeView>(); + /** + * Data model used for managing project privileges. + */ + private ProjectDataModel pdm = null; + + /** + * Constructor that create user view from the user data. + * + * @param user + * orignal user + */ + protected UserView(User user) { + super(user); + this.login = user.getLogin(); + this.password = ""; + this.password2 = ""; + this.oldPassword = ""; + this.cryptedPassword = user.getCryptedPassword(); + this.name = user.getName(); + this.surname = user.getSurname(); + this.email = user.getEmail(); + } + + /** + * Default constructor. + */ + protected UserView() { + super(null); + } + + /** + * Returns object with privileges for the given project. + * + * @param projectId + * identifier of the project + * @return object with privileges for the given project + */ + public UserProjectPrivilegeView getProjectPrivilegeByProjectId(Integer projectId) { + IntegerComparator comparator = new IntegerComparator(); + for (UserProjectPrivilegeView projectPrivilege : getProjectPrivileges()) { + if (comparator.compare(projectPrivilege.getIdObject(), projectId) == 0) { + return projectPrivilege; + } + } + if (projectId == null) { + logger.warn("Cannot find default project privileges. User: " + getIdObject() + " (" + getLogin() + ")."); + + } else if (projectId != 0) { + logger.warn("Cannot find project privileges for projectID: " + projectId + ". User: " + getIdObject() + " (" + + getLogin() + ")."); + } + return null; + } + + /** + * + * @return {@link #pdm} + */ + public ProjectDataModel getPdm() { + if (pdm == null) { + pdm = new ProjectDataModel(projectPrivileges); + } + return pdm; + } + + /** + * + * @param pdm + * new {@link #pdm} object + */ + public void setPdm(ProjectDataModel pdm) { + this.pdm = pdm; + } + + /** + * Return object with privileges for layout given in the parameter. + * + * @param layoutId + * identifier of the layout + * @return object with privileges for layout + */ + public UserLayoutPrivilege getLayoutPrivilegeByLayoutId(int layoutId) { + for (UserProjectPrivilegeView projectPrivilege : getProjectPrivileges()) { + for (UserLayoutPrivilege layoutPrivilege : projectPrivilege.getLayoutPrivileges()) { + if (layoutPrivilege.getIdObject() == layoutId) { + return layoutPrivilege; + } + } + } + logger.warn("Cannot find project privileges for layoutID: " + layoutId); + return null; + } + + @Override + public int compareTo(UserView o) { + IntegerComparator comparator = new IntegerComparator(); + if (o == null) { + comparator.compare(getIdObject(), null); + } + return comparator.compare(getIdObject(), o.getIdObject()); + + } + + /** + * @return the login + * @see #login + */ + public String getLogin() { + return login; + } + + /** + * @param login + * the login to set + * @see #login + */ + public void setLogin(String login) { + this.login = login; + } + + /** + * @return the password + * @see #password + */ + public String getPassword() { + return password; + } + + /** + * @param password + * the password to set + * @see #password + */ + public void setPassword(String password) { + this.password = password; + } + + /** + * @return the name + * @see #name + */ + public String getName() { + return name; + } + + /** + * @param name + * the name to set + * @see #name + */ + public void setName(String name) { + this.name = name; + } + + /** + * @return the surname + * @see #surname + */ + public String getSurname() { + return surname; + } + + /** + * @param surname + * the surname to set + * @see #surname + */ + public void setSurname(String surname) { + this.surname = surname; + } + + /** + * @return the email + * @see #email + */ + public String getEmail() { + return email; + } + + /** + * @param email + * the email to set + * @see #email + */ + public void setEmail(String email) { + this.email = email; + } + + /** + * @return the basicPrivileges + * @see #basicPrivileges + */ + public List<PrivilegeView> getBasicPrivileges() { + return basicPrivileges; + } + + /** + * @param basicPrivileges + * the basicPrivileges to set + * @see #basicPrivileges + */ + public void setBasicPrivileges(List<PrivilegeView> basicPrivileges) { + this.basicPrivileges = basicPrivileges; + } + + /** + * @return the projectPrivileges + * @see #projectPrivileges + */ + public List<UserProjectPrivilegeView> getProjectPrivileges() { + return projectPrivileges; + } + + /** + * @param projectPrivileges + * the projectPrivileges to set + * @see #projectPrivileges + */ + public void setProjectPrivileges(List<UserProjectPrivilegeView> projectPrivileges) { + this.projectPrivileges = projectPrivileges; + } + + /** + * @return old password as typed by the user. + */ + public String getOldPassword() { + return oldPassword; + } + + /** + * @param oldPassword + * the field for the user to put in the old password, + */ + public void setOldPassword(String oldPassword) { + this.oldPassword = oldPassword; + } + + /** + * @return password crypted and stored in DB. + */ + public String getCryptedPassword() { + return cryptedPassword; + } + + /** + * @param cryptedPassword + * crypted password stored in DB + */ + public void setCryptedPassword(String cryptedPassword) { + this.cryptedPassword = cryptedPassword; + } + + /** + * @return password2. + */ + public String getPassword2() { + return password2; + } + + /** + * @param password2 + * to verify that the password match. + */ + public void setPassword2(String password2) { + this.password2 = password2; + } } diff --git a/service/src/main/java/lcsb/mapviewer/services/view/UserViewFactory.java b/service/src/main/java/lcsb/mapviewer/services/view/UserViewFactory.java index 7270a6114a79e8548d15d52dfd67356c5227e043..c5c9561a93d986f28dc5dd167b01df6f9c67b18a 100644 --- a/service/src/main/java/lcsb/mapviewer/services/view/UserViewFactory.java +++ b/service/src/main/java/lcsb/mapviewer/services/view/UserViewFactory.java @@ -31,208 +31,209 @@ import com.google.gson.Gson; * */ public class UserViewFactory extends AbstractViewFactory<User, UserView> { - - /** - * Default class logger. - */ - @SuppressWarnings("unused") - private static Logger logger = Logger.getLogger(UserViewFactory.class); - - /** - * Data access object for projects. - */ - @Autowired - private ProjectDao projectDao; - - /** - * Factory object for {@link PrivilegeView} elements. - */ - @Autowired - private PrivilegeViewFactory privilegeViewFactory; - - @Override - public UserView create(User user) { - return create(user, projectDao.getAll()); - } - - /** - * Creates {@link UserView} obejct for given user and given list of projects. - * - * @param user - * object for which {@link UserView} element will be created - * @param projects - * list of project for which privileges will be created as - * {@link PrivilegeView} elements in the result - * @return {@link UserView} obejct for given user - */ - public UserView create(User user, List<Project> projects) { - UserView result = null; - if (user == null) { - result = new UserView(); - for (Project project : projects) { - result.getProjectPrivileges().add(result.new UserProjectPrivilegeView(project)); - } - for (PrivilegeType type : getBasicTypes()) { - result.getBasicPrivileges().add(privilegeViewFactory.create(type)); - } - for (UserProjectPrivilegeView projectPrivilege : result.getProjectPrivileges()) { - for (PrivilegeType type : getObjectTypes()) { - if (type.getPrivilegeObjectType().equals(Project.class)) { - projectPrivilege.getProjectPrivileges().add(privilegeViewFactory.create(type)); - } - } - } - } else { - result = new UserView(user); - - for (Project project : projects) { - result.getProjectPrivileges().add(result.new UserProjectPrivilegeView(project)); - } - - setPrivilegeStatusFromDb(user, result); - - createUnknownPrivileges(result); - } - - Collections.sort(result.getBasicPrivileges()); - for (UserProjectPrivilegeView row1 : result.getProjectPrivileges()) { - Collections.sort(row1.getProjectPrivileges()); - } - - return result; - } - - /** - * Creates privileges for user that doesn't exists in database. - * - * @param row - * user for which we want to add missing privileges - */ - private void createUnknownPrivileges(UserView row) { - Set<PrivilegeType> knownPrivileges = new HashSet<PrivilegeType>(); - for (PrivilegeView privilege : row.getBasicPrivileges()) { - knownPrivileges.add(privilege.getType()); - } - - for (PrivilegeType type : getBasicTypes()) { - if (!knownPrivileges.contains(type)) { - row.getBasicPrivileges().add(privilegeViewFactory.create(type)); - } - } - for (UserProjectPrivilegeView projectPrivilege : row.getProjectPrivileges()) { - knownPrivileges.clear(); - for (PrivilegeView privilege : projectPrivilege.getProjectPrivileges()) { - knownPrivileges.add(privilege.getType()); - } - for (PrivilegeType type : getObjectTypes()) { - if (type.getPrivilegeObjectType().equals(Project.class)) { - if (!knownPrivileges.contains(type)) { - projectPrivilege.getProjectPrivileges().add(privilegeViewFactory.create(type)); - } - } - } - } - } - - /** - * Method that assignes privileges from original user object into view - * representation userView. - * - * @param user - * original object retrieved from database - * @param userView - * representation of the user passed later on to higher layer - */ - private void setPrivilegeStatusFromDb(User user, UserView userView) { - for (BasicPrivilege privilege : user.getPrivileges()) { - if (privilege.getClass().equals(BasicPrivilege.class)) { - userView.getBasicPrivileges().add(privilegeViewFactory.create(privilege)); - } else if (privilege.getClass().equals(ObjectPrivilege.class)) { - if (privilege.getType().getPrivilegeObjectType().equals(Project.class)) { - int projectId = ((ObjectPrivilege) privilege).getIdObject(); - UserProjectPrivilegeView projectPrivilege = userView.getProjectPrivilegeByProjectId(projectId); - if (projectPrivilege != null) { - projectPrivilege.getProjectPrivileges().add(privilegeViewFactory.create(privilege)); - } - } else if (privilege.getType().getPrivilegeObjectType().equals(Layout.class)) { - int layoutId = ((ObjectPrivilege) privilege).getIdObject(); - UserLayoutPrivilege layoutPrivilege = userView.getLayoutPrivilegeByLayoutId(layoutId); - if (layoutPrivilege != null) { - layoutPrivilege.getLayoutPrivileges().add(privilegeViewFactory.create(privilege)); - } - } else { - throw new InvalidPrivilegeException("Unknown class for object privilege: " + privilege.getType().getPrivilegeObjectType()); - } - } else { - throw new InvalidPrivilegeException("Unknown privilege type: " + privilege.getType()); - } - } - } - - /** - * Returns list of basic privilege types (privileges that doesn't refer to - * another object). - * - * @return list of basic privilege types - */ - public List<PrivilegeType> getBasicTypes() { - if (basicTypes == null) { - fillTypeList(); - } - return basicTypes; - } - - /** - * List of type privileges that refers to {@link BasicPrivilege} class. - */ - private List<PrivilegeType> basicTypes = null; - /** - * List of type privileges that refers to {@link ObjectPrivilege} class. - */ - private List<PrivilegeType> objectTypes = null; - - /** - * Returns list of object privilege types (privileges that refer to another - * object). - * - * @return list of object privilege types - */ - public List<PrivilegeType> getObjectTypes() { - if (objectTypes == null) { - fillTypeList(); - } - return objectTypes; - } - - /** - * This method initializes {@link #basicTypes} and {@link #objectTypes} lists. - */ - private void fillTypeList() { - basicTypes = new ArrayList<PrivilegeType>(); - objectTypes = new ArrayList<PrivilegeType>(); - - PrivilegeType[] types = PrivilegeType.values(); - - for (PrivilegeType privilegeType : types) { - if (privilegeType.getPrivilegeClassType().equals(BasicPrivilege.class)) { - basicTypes.add(privilegeType); - } else if (privilegeType.getPrivilegeClassType().equals(ObjectPrivilege.class)) { - objectTypes.add(privilegeType); - } else { - throw new InvalidPrivilegeException("Unknown privilege type: " + privilegeType.getPrivilegeClassType()); - } - } - - } - - @Override - public String createGson(UserView object) { - return new Gson().toJson(object); - } - - @Override - public User viewToObject(UserView view) { - throw new NotImplementedException(); - } + + /** + * Default class logger. + */ + @SuppressWarnings("unused") + private static Logger logger = Logger.getLogger(UserViewFactory.class); + + /** + * Data access object for projects. + */ + @Autowired + private ProjectDao projectDao; + + /** + * Factory object for {@link PrivilegeView} elements. + */ + @Autowired + private PrivilegeViewFactory privilegeViewFactory; + + @Override + public UserView create(User user) { + return create(user, projectDao.getAll()); + } + + /** + * Creates {@link UserView} obejct for given user and given list of projects. + * + * @param user + * object for which {@link UserView} element will be created + * @param projects + * list of project for which privileges will be created as + * {@link PrivilegeView} elements in the result + * @return {@link UserView} obejct for given user + */ + public UserView create(User user, List<Project> projects) { + UserView result = null; + if (user == null) { + result = new UserView(); + for (Project project : projects) { + result.getProjectPrivileges().add(result.new UserProjectPrivilegeView(project)); + } + for (PrivilegeType type : getBasicTypes()) { + result.getBasicPrivileges().add(privilegeViewFactory.create(type)); + } + for (UserProjectPrivilegeView projectPrivilege : result.getProjectPrivileges()) { + for (PrivilegeType type : getObjectTypes()) { + if (type.getPrivilegeObjectType().equals(Project.class)) { + projectPrivilege.getProjectPrivileges().add(privilegeViewFactory.create(type)); + } + } + } + } else { + result = new UserView(user); + + for (Project project : projects) { + result.getProjectPrivileges().add(result.new UserProjectPrivilegeView(project)); + } + + setPrivilegeStatusFromDb(user, result); + + createUnknownPrivileges(result); + } + + Collections.sort(result.getBasicPrivileges()); + for (UserProjectPrivilegeView row1 : result.getProjectPrivileges()) { + Collections.sort(row1.getProjectPrivileges()); + } + + return result; + } + + /** + * Creates privileges for user that doesn't exists in database. + * + * @param row + * user for which we want to add missing privileges + */ + private void createUnknownPrivileges(UserView row) { + Set<PrivilegeType> knownPrivileges = new HashSet<PrivilegeType>(); + for (PrivilegeView privilege : row.getBasicPrivileges()) { + knownPrivileges.add(privilege.getType()); + } + + for (PrivilegeType type : getBasicTypes()) { + if (!knownPrivileges.contains(type)) { + row.getBasicPrivileges().add(privilegeViewFactory.create(type)); + } + } + for (UserProjectPrivilegeView projectPrivilege : row.getProjectPrivileges()) { + knownPrivileges.clear(); + for (PrivilegeView privilege : projectPrivilege.getProjectPrivileges()) { + knownPrivileges.add(privilege.getType()); + } + for (PrivilegeType type : getObjectTypes()) { + if (type.getPrivilegeObjectType().equals(Project.class)) { + if (!knownPrivileges.contains(type)) { + projectPrivilege.getProjectPrivileges().add(privilegeViewFactory.create(type)); + } + } + } + } + } + + /** + * Method that assigns privileges from original user object into view + * representation userView. + * + * @param user + * original object retrieved from database + * @param userView + * representation of the user passed later on to higher layer + */ + private void setPrivilegeStatusFromDb(User user, UserView userView) { + for (BasicPrivilege privilege : user.getPrivileges()) { + if (privilege.getClass().equals(BasicPrivilege.class)) { + userView.getBasicPrivileges().add(privilegeViewFactory.create(privilege)); + } else if (privilege.getClass().equals(ObjectPrivilege.class)) { + if (privilege.getType().getPrivilegeObjectType().equals(Project.class)) { + Integer projectId = ((ObjectPrivilege) privilege).getIdObject(); + UserProjectPrivilegeView projectPrivilege = userView.getProjectPrivilegeByProjectId(projectId); + if (projectPrivilege != null) { + projectPrivilege.getProjectPrivileges().add(privilegeViewFactory.create(privilege)); + } + } else if (privilege.getType().getPrivilegeObjectType().equals(Layout.class)) { + int layoutId = ((ObjectPrivilege) privilege).getIdObject(); + UserLayoutPrivilege layoutPrivilege = userView.getLayoutPrivilegeByLayoutId(layoutId); + if (layoutPrivilege != null) { + layoutPrivilege.getLayoutPrivileges().add(privilegeViewFactory.create(privilege)); + } + } else { + throw new InvalidPrivilegeException( + "Unknown class for object privilege: " + privilege.getType().getPrivilegeObjectType()); + } + } else { + throw new InvalidPrivilegeException("Unknown privilege type: " + privilege.getType()); + } + } + } + + /** + * Returns list of basic privilege types (privileges that doesn't refer to + * another object). + * + * @return list of basic privilege types + */ + public List<PrivilegeType> getBasicTypes() { + if (basicTypes == null) { + fillTypeList(); + } + return basicTypes; + } + + /** + * List of type privileges that refers to {@link BasicPrivilege} class. + */ + private List<PrivilegeType> basicTypes = null; + /** + * List of type privileges that refers to {@link ObjectPrivilege} class. + */ + private List<PrivilegeType> objectTypes = null; + + /** + * Returns list of object privilege types (privileges that refer to another + * object). + * + * @return list of object privilege types + */ + public List<PrivilegeType> getObjectTypes() { + if (objectTypes == null) { + fillTypeList(); + } + return objectTypes; + } + + /** + * This method initializes {@link #basicTypes} and {@link #objectTypes} lists. + */ + private void fillTypeList() { + basicTypes = new ArrayList<PrivilegeType>(); + objectTypes = new ArrayList<PrivilegeType>(); + + PrivilegeType[] types = PrivilegeType.values(); + + for (PrivilegeType privilegeType : types) { + if (privilegeType.getPrivilegeClassType().equals(BasicPrivilege.class)) { + basicTypes.add(privilegeType); + } else if (privilegeType.getPrivilegeClassType().equals(ObjectPrivilege.class)) { + objectTypes.add(privilegeType); + } else { + throw new InvalidPrivilegeException("Unknown privilege type: " + privilegeType.getPrivilegeClassType()); + } + } + + } + + @Override + public String createGson(UserView object) { + return new Gson().toJson(object); + } + + @Override + public User viewToObject(UserView view) { + throw new NotImplementedException(); + } } diff --git a/service/src/test/java/lcsb/mapviewer/services/ServiceTestFunctions.java b/service/src/test/java/lcsb/mapviewer/services/ServiceTestFunctions.java index be7a28143ec317cd966efc6bbf931ad7c175a5d5..b7eaa4225800da8e01abf213f9944b4b7d6705b5 100644 --- a/service/src/test/java/lcsb/mapviewer/services/ServiceTestFunctions.java +++ b/service/src/test/java/lcsb/mapviewer/services/ServiceTestFunctions.java @@ -84,347 +84,347 @@ import lcsb.mapviewer.services.search.db.drug.IDrugService; @Transactional(value = "txManager") @Rollback(false) @ContextConfiguration(locations = { "/applicationContext-annotation.xml", // - "/applicationContext-persist.xml", // - "/applicationContext-service.xml", // - "/dataSource.xml", // + "/applicationContext-persist.xml", // + "/applicationContext-service.xml", // + "/dataSource.xml", // }) @RunWith(SpringJUnit4ClassRunner.class) public abstract class ServiceTestFunctions { - private Logger logger = Logger.getLogger(ServiceTestFunctions.class); + private Logger logger = Logger.getLogger(ServiceTestFunctions.class); - @Autowired - protected ChEMBLParser chemblParser; + @Autowired + protected ChEMBLParser chemblParser; - @Autowired - protected DrugbankHTMLParser drugBankHTMLParser; + @Autowired + protected DrugbankHTMLParser drugBankHTMLParser; - @Autowired - protected ModelAnnotator modelAnnotator; + @Autowired + protected ModelAnnotator modelAnnotator; - @Autowired - protected BiocompendiumAnnotator restService; + @Autowired + protected BiocompendiumAnnotator restService; - public double EPSILON = 1e-6; + public double EPSILON = 1e-6; - @Autowired - protected IConfigurationService configurationService; + @Autowired + protected IConfigurationService configurationService; - @Autowired - protected IModelService modelService; + @Autowired + protected IModelService modelService; - @Autowired - protected IExternalServicesService externalServicesService; + @Autowired + protected IExternalServicesService externalServicesService; - @Autowired - protected ILayoutService layoutService; + @Autowired + protected ILayoutService layoutService; - @Autowired - protected ILogService logService; + @Autowired + protected ILogService logService; - @Autowired - protected LogDao logDao; + @Autowired + protected LogDao logDao; - @Autowired - protected SearchHistoryDao searchHistoryDao; + @Autowired + protected SearchHistoryDao searchHistoryDao; - @Autowired - protected PasswordEncoder passwordEncoder; + @Autowired + protected PasswordEncoder passwordEncoder; - @Autowired - protected IUserService userService; + @Autowired + protected IUserService userService; - @Autowired - protected ConfigurationDao configurationDao; + @Autowired + protected ConfigurationDao configurationDao; - @Autowired - protected IDataMiningService dataMiningService; + @Autowired + protected IDataMiningService dataMiningService; - @Autowired - protected ISearchService searchService; + @Autowired + protected ISearchService searchService; - @Autowired - protected IDrugService drugService; + @Autowired + protected IDrugService drugService; - @Autowired - protected IChemicalService chemicalService; + @Autowired + protected IChemicalService chemicalService; - @Autowired - protected IProjectService projectService; + @Autowired + protected IProjectService projectService; - @Autowired - protected ProjectDao projectDao; + @Autowired + protected ProjectDao projectDao; - @Autowired - protected CacheQueryDao cacheQueryDao; + @Autowired + protected CacheQueryDao cacheQueryDao; - @Autowired - protected PolylineDao polylineDao; + @Autowired + protected PolylineDao polylineDao; - @Autowired - protected ModelDao modelDao; + @Autowired + protected ModelDao modelDao; - @Autowired - protected ICommentService commentService; + @Autowired + protected ICommentService commentService; - @Autowired - protected UserDao userDao; + @Autowired + protected UserDao userDao; - @Autowired - protected PrivilegeDao privilegeDao; - - @Autowired - protected CommentDao commentDao; - - @Autowired - protected DbUtils dbUtils; - - @Autowired - protected ReactionDao reactionDao; - - @Autowired - protected ElementDao aliasDao; - - protected User user; - protected User user2 = null; - - private EventStorageLoggerAppender appender; - - @Before - public final void _setUp() throws Exception { - Logger.getRootLogger().removeAppender(appender); - appender = new EventStorageLoggerAppender(); - Logger.getRootLogger().addAppender(appender); - dbUtils.setAutoFlush(false); - } - - @After - public final void _tearDown() throws Exception { - Logger.getRootLogger().removeAppender(appender); - } - - protected List<LoggingEvent> getWarnings() { - return appender.getWarnings(); - } - - protected String readFile(String file) throws IOException { - StringBuilder stringBuilder = new StringBuilder(); - BufferedReader reader = new BufferedReader(new FileReader(file)); - try { - String line = null; - String ls = System.getProperty("line.separator"); - - while ((line = reader.readLine()) != null) { - stringBuilder.append(line); - stringBuilder.append(ls); - } - } finally { - reader.close(); - } - - return stringBuilder.toString(); - } - - protected Node getNodeFromXmlString(String text) throws InvalidXmlSchemaException { - InputSource is = new InputSource(); - is.setCharacterStream(new StringReader(text)); - return getXmlDocumentFromInputSource(is).getChildNodes().item(0); - } - - protected Document getXmlDocumentFromFile(String fileName) throws InvalidXmlSchemaException, IOException { - File file = new File(fileName); - InputStream inputStream = new FileInputStream(file); - Reader reader = null; - try { - reader = new InputStreamReader(inputStream, "UTF-8"); - InputSource is = new InputSource(reader); - - Document result = getXmlDocumentFromInputSource(is); - inputStream.close(); - return result; - } catch (UnsupportedEncodingException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return null; - } - - protected Document getXmlDocumentFromInputSource(InputSource stream) throws InvalidXmlSchemaException { - DocumentBuilder db; - try { - db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); - } catch (ParserConfigurationException e) { - throw new InvalidXmlSchemaException("Problem with xml parser"); - } - Document doc = null; - try { - doc = db.parse(stream); - } catch (SAXException e) { - logger.error(e); - } catch (IOException e) { - logger.error(e); - } - return doc; - } - - /** - * This method remove model with all connections from db (used only when the - * db must be handled manually) - * - * @param id - */ - protected void removeModelById(int id) { - modelDao.delete(modelDao.getById(id)); - } - - protected void createUser() { - user = userDao.getUserByLogin("john.doe"); - if (user != null) { - logger.debug("remove user"); - userDao.delete(user); - userDao.flush(); - } - user = new User(); - user.setName("John"); - user.setSurname("Doe"); - user.setEmail("john.doe@uni.lu"); - user.setLogin("john.doe"); - user.setCryptedPassword(passwordEncoder.encode("passwd")); - userDao.add(user); - } - - protected void createUser2() { - user2 = userDao.getUserByLogin("john.doe.bis"); - if (user2 != null) { - userDao.delete(user2); - } - user2 = new User(); - user2.setName("John"); - user2.setSurname("Doe BIS"); - user2.setEmail("john.doe@uni.lux"); - user2.setLogin("john.doe.bis"); - user2.setCryptedPassword(passwordEncoder.encode("passwd")); - userDao.add(user2); - } - - private static Map<String, Model> models = new HashMap<String, Model>(); - - protected Model getModelForFile(String fileName, boolean fromCache) throws Exception { - if (!fromCache) { - logger.debug("File without cache: " + fileName); - return new CellDesignerXmlParser().createModel(new ConverterParams().filename(fileName)); - } - Model result = ServiceTestFunctions.models.get(fileName); - if (result == null) { - logger.debug("File to cache: " + fileName); - - CellDesignerXmlParser parser = new CellDesignerXmlParser(); - result = parser.createModel(new ConverterParams().filename(fileName).sizeAutoAdjust(false)); - ServiceTestFunctions.models.put(fileName, result); - } - return result; - } - - protected String createTmpFileName() { - try { - File f = File.createTempFile("prefix", ".txt"); - String filename = f.getName(); - f.delete(); - return filename; - } catch (IOException e) { - e.printStackTrace(); - return null; - } - } - - protected String nodeToString(Node node) { - return nodeToString(node, false); - } - - protected String nodeToString(Node node, boolean includeHeadNode) { - if (node == null) - return null; - StringWriter sw = new StringWriter(); - try { - Transformer t = TransformerFactory.newInstance().newTransformer(); - t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); - t.setOutputProperty(OutputKeys.INDENT, "yes"); - t.setOutputProperty(OutputKeys.METHOD, "xml"); - - NodeList list = node.getChildNodes(); - for (int i = 0; i < list.getLength(); i++) { - Node element = list.item(i); - t.transform(new DOMSource(element), new StreamResult(sw)); - } - } catch (TransformerException te) { - logger.debug("nodeToString Transformer Exception"); - } - if (includeHeadNode) { - return "<" + node.getNodeName() + ">" + sw.toString() + "</" + node.getNodeName() + ">"; - } - return sw.toString(); - } - - protected boolean equalFiles(String fileA, String fileB) throws IOException { - int BLOCK_SIZE = 65536; - FileInputStream inputStreamA = new FileInputStream(fileA); - FileInputStream inputStreamB = new FileInputStream(fileB); - // vary BLOCK_SIZE to suit yourself. - // it should probably a factor or multiple of the size of a disk - // sector/cluster. - // Note that your max heap size may need to be adjused - // if you have a very big block size or lots of these comparators. - - // assume inputStreamA and inputStreamB are streams from your two files. - byte[] streamABlock = new byte[BLOCK_SIZE]; - byte[] streamBBlock = new byte[BLOCK_SIZE]; - boolean match = true; - int bytesReadA = 0; - int bytesReadB = 0; - do { - bytesReadA = inputStreamA.read(streamABlock); - bytesReadB = inputStreamB.read(streamBBlock); - match = ((bytesReadA == bytesReadB) && Arrays.equals(streamABlock, streamBBlock)); - } while (match && (bytesReadA > -1)); - inputStreamA.close(); - inputStreamB.close(); - return match; - } - - public PrivilegeDao getPrivilegeDao() { - return privilegeDao; - } - - public void setPrivilegeDao(PrivilegeDao privilegeDao) { - this.privilegeDao = privilegeDao; - } - - public File createTempDirectory() throws IOException { - final File temp; - - temp = File.createTempFile("temp", Long.toString(System.nanoTime())); - - if (!(temp.delete())) { - throw new IOException("Could not delete temp file: " + temp.getAbsolutePath()); - } - - if (!(temp.mkdir())) { - throw new IOException("Could not create temp directory: " + temp.getAbsolutePath()); - } - - return (temp); - } - - protected String getWebpage(String accessUrl) throws IOException { - String inputLine; - StringBuilder tmp = new StringBuilder(); - URL url = new URL(accessUrl); - URLConnection urlConn = url.openConnection(); - BufferedReader in = new BufferedReader(new InputStreamReader(urlConn.getInputStream())); - - while ((inputLine = in.readLine()) != null) { - tmp.append(inputLine); - } - in.close(); - return tmp.toString(); - } + @Autowired + protected PrivilegeDao privilegeDao; + + @Autowired + protected CommentDao commentDao; + + @Autowired + protected DbUtils dbUtils; + + @Autowired + protected ReactionDao reactionDao; + + @Autowired + protected ElementDao aliasDao; + + protected User user; + protected User user2 = null; + + private EventStorageLoggerAppender appender; + + @Before + public final void _setUp() throws Exception { + Logger.getRootLogger().removeAppender(appender); + appender = new EventStorageLoggerAppender(); + Logger.getRootLogger().addAppender(appender); + dbUtils.setAutoFlush(false); + } + + @After + public final void _tearDown() throws Exception { + Logger.getRootLogger().removeAppender(appender); + } + + protected List<LoggingEvent> getWarnings() { + return appender.getWarnings(); + } + + protected String readFile(String file) throws IOException { + StringBuilder stringBuilder = new StringBuilder(); + BufferedReader reader = new BufferedReader(new FileReader(file)); + try { + String line = null; + String ls = System.getProperty("line.separator"); + + while ((line = reader.readLine()) != null) { + stringBuilder.append(line); + stringBuilder.append(ls); + } + } finally { + reader.close(); + } + + return stringBuilder.toString(); + } + + protected Node getNodeFromXmlString(String text) throws InvalidXmlSchemaException { + InputSource is = new InputSource(); + is.setCharacterStream(new StringReader(text)); + return getXmlDocumentFromInputSource(is).getChildNodes().item(0); + } + + protected Document getXmlDocumentFromFile(String fileName) throws InvalidXmlSchemaException, IOException { + File file = new File(fileName); + InputStream inputStream = new FileInputStream(file); + Reader reader = null; + try { + reader = new InputStreamReader(inputStream, "UTF-8"); + InputSource is = new InputSource(reader); + + Document result = getXmlDocumentFromInputSource(is); + inputStream.close(); + return result; + } catch (UnsupportedEncodingException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + protected Document getXmlDocumentFromInputSource(InputSource stream) throws InvalidXmlSchemaException { + DocumentBuilder db; + try { + db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + } catch (ParserConfigurationException e) { + throw new InvalidXmlSchemaException("Problem with xml parser"); + } + Document doc = null; + try { + doc = db.parse(stream); + } catch (SAXException e) { + logger.error(e); + } catch (IOException e) { + logger.error(e); + } + return doc; + } + + /** + * This method remove model with all connections from db (used only when the db + * must be handled manually) + * + * @param id + */ + protected void removeModelById(int id) { + modelDao.delete(modelDao.getById(id)); + } + + protected void createUser() { + user = userDao.getUserByLogin("john.doe"); + if (user != null) { + logger.debug("remove user"); + userDao.delete(user); + userDao.flush(); + } + user = new User(); + user.setName("John"); + user.setSurname("Doe"); + user.setEmail("john.doe@uni.lu"); + user.setLogin("john.doe"); + user.setCryptedPassword(passwordEncoder.encode("passwd")); + userDao.add(user); + } + + protected void createUser2() { + user2 = userDao.getUserByLogin("john.doe.bis"); + if (user2 != null) { + userDao.delete(user2); + } + user2 = new User(); + user2.setName("John"); + user2.setSurname("Doe BIS"); + user2.setEmail("john.doe@uni.lux"); + user2.setLogin("john.doe.bis"); + user2.setCryptedPassword(passwordEncoder.encode("passwd")); + userDao.add(user2); + } + + private static Map<String, Model> models = new HashMap<String, Model>(); + + protected Model getModelForFile(String fileName, boolean fromCache) throws Exception { + if (!fromCache) { + logger.debug("File without cache: " + fileName); + return new CellDesignerXmlParser().createModel(new ConverterParams().filename(fileName)); + } + Model result = ServiceTestFunctions.models.get(fileName); + if (result == null) { + logger.debug("File to cache: " + fileName); + + CellDesignerXmlParser parser = new CellDesignerXmlParser(); + result = parser.createModel(new ConverterParams().filename(fileName).sizeAutoAdjust(false)); + ServiceTestFunctions.models.put(fileName, result); + } + return result; + } + + protected String createTmpFileName() { + try { + File f = File.createTempFile("prefix", ".txt"); + String filename = f.getName(); + f.delete(); + return filename; + } catch (IOException e) { + e.printStackTrace(); + return null; + } + } + + protected String nodeToString(Node node) { + return nodeToString(node, false); + } + + protected String nodeToString(Node node, boolean includeHeadNode) { + if (node == null) + return null; + StringWriter sw = new StringWriter(); + try { + Transformer t = TransformerFactory.newInstance().newTransformer(); + t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); + t.setOutputProperty(OutputKeys.INDENT, "yes"); + t.setOutputProperty(OutputKeys.METHOD, "xml"); + + NodeList list = node.getChildNodes(); + for (int i = 0; i < list.getLength(); i++) { + Node element = list.item(i); + t.transform(new DOMSource(element), new StreamResult(sw)); + } + } catch (TransformerException te) { + logger.debug("nodeToString Transformer Exception"); + } + if (includeHeadNode) { + return "<" + node.getNodeName() + ">" + sw.toString() + "</" + node.getNodeName() + ">"; + } + return sw.toString(); + } + + protected boolean equalFiles(String fileA, String fileB) throws IOException { + int BLOCK_SIZE = 65536; + FileInputStream inputStreamA = new FileInputStream(fileA); + FileInputStream inputStreamB = new FileInputStream(fileB); + // vary BLOCK_SIZE to suit yourself. + // it should probably a factor or multiple of the size of a disk + // sector/cluster. + // Note that your max heap size may need to be adjused + // if you have a very big block size or lots of these comparators. + + // assume inputStreamA and inputStreamB are streams from your two files. + byte[] streamABlock = new byte[BLOCK_SIZE]; + byte[] streamBBlock = new byte[BLOCK_SIZE]; + boolean match = true; + int bytesReadA = 0; + int bytesReadB = 0; + do { + bytesReadA = inputStreamA.read(streamABlock); + bytesReadB = inputStreamB.read(streamBBlock); + match = ((bytesReadA == bytesReadB) && Arrays.equals(streamABlock, streamBBlock)); + } while (match && (bytesReadA > -1)); + inputStreamA.close(); + inputStreamB.close(); + return match; + } + + public PrivilegeDao getPrivilegeDao() { + return privilegeDao; + } + + public void setPrivilegeDao(PrivilegeDao privilegeDao) { + this.privilegeDao = privilegeDao; + } + + public File createTempDirectory() throws IOException { + final File temp; + + temp = File.createTempFile("temp", Long.toString(System.nanoTime())); + + if (!(temp.delete())) { + throw new IOException("Could not delete temp file: " + temp.getAbsolutePath()); + } + + if (!(temp.mkdir())) { + throw new IOException("Could not create temp directory: " + temp.getAbsolutePath()); + } + + return (temp); + } + + protected String getWebpage(String accessUrl) throws IOException { + String inputLine; + StringBuilder tmp = new StringBuilder(); + URL url = new URL(accessUrl); + URLConnection urlConn = url.openConnection(); + BufferedReader in = new BufferedReader(new InputStreamReader(urlConn.getInputStream())); + + while ((inputLine = in.readLine()) != null) { + tmp.append(inputLine); + } + in.close(); + return tmp.toString(); + } } diff --git a/service/src/test/java/lcsb/mapviewer/services/impl/ConfigurationServiceTest.java b/service/src/test/java/lcsb/mapviewer/services/impl/ConfigurationServiceTest.java index ff1a5e29d35ab08dbf99a4ca3e48de0e5ba7a706..85492908da3a30bae460b1855a9a5ea71b0505e8 100644 --- a/service/src/test/java/lcsb/mapviewer/services/impl/ConfigurationServiceTest.java +++ b/service/src/test/java/lcsb/mapviewer/services/impl/ConfigurationServiceTest.java @@ -2,6 +2,7 @@ package lcsb.mapviewer.services.impl; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; import java.util.List; @@ -13,93 +14,114 @@ import org.springframework.test.annotation.Rollback; import lcsb.mapviewer.common.Configuration; import lcsb.mapviewer.common.FrameworkVersion; +import lcsb.mapviewer.model.Project; import lcsb.mapviewer.model.user.ConfigurationElementType; +import lcsb.mapviewer.model.user.PrivilegeType; import lcsb.mapviewer.services.ServiceTestFunctions; import lcsb.mapviewer.services.view.ConfigurationView; @Rollback(true) public class ConfigurationServiceTest extends ServiceTestFunctions { - Logger logger = Logger.getLogger(ConfigurationServiceTest.class); - - @Before - public void setUp() throws Exception { - // clear information about git version - Configuration.getSystemBuildVersion(null, true); - } - - @After - public void tearDown() throws Exception { - // clear information about git version - Configuration.getSystemBuildVersion(null, true); - } - - @Test - public void testGetUpdate() throws Exception { - try { - String address = configurationService.getConfigurationValue(ConfigurationElementType.EMAIL_ADDRESS); - configurationService.deleteConfigurationValue(ConfigurationElementType.EMAIL_ADDRESS); - String newAddress = configurationService.getConfigurationValue(ConfigurationElementType.EMAIL_ADDRESS); - assertEquals(ConfigurationElementType.EMAIL_ADDRESS.getDefaultValue(), newAddress); - configurationService.setConfigurationValue(ConfigurationElementType.EMAIL_ADDRESS, "hello@world"); - newAddress = configurationService.getConfigurationValue(ConfigurationElementType.EMAIL_ADDRESS); - assertEquals("hello@world", newAddress); - - configurationService.setConfigurationValue(ConfigurationElementType.EMAIL_ADDRESS, address); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testList() throws Exception { - try { - List<ConfigurationView> list = configurationService.getAllValues(); - assertEquals(ConfigurationElementType.values().length, list.size()); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testGetSystemVersion() throws Exception { - try { - FrameworkVersion view = configurationService.getSystemVersion("testFiles/gitVersionTest/testNormal/"); - assertNotNull(view); - assertEquals("100", view.getGitVersion()); - assertEquals("202", view.getVersion()); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testGetSystemVersion2() throws Exception { - try { - FrameworkVersion view = configurationService.getSystemVersion("testFiles/gitVersionTest/testModified/"); - assertNotNull(view); - assertEquals("100:105", view.getGitVersion()); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testGetSystemVersion3() throws Exception { - try { - FrameworkVersion view = configurationService.getSystemVersion("testFiles/gitVersionTest/testCorrectSvn/"); - assertNotNull(view); - assertEquals("117", view.getGitVersion()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } + Logger logger = Logger.getLogger(ConfigurationServiceTest.class); + + @Before + public void setUp() throws Exception { + // clear information about git version + Configuration.getSystemBuildVersion(null, true); + } + + @After + public void tearDown() throws Exception { + // clear information about git version + Configuration.getSystemBuildVersion(null, true); + } + + @Test + public void testGetUpdate() throws Exception { + try { + String address = configurationService.getConfigurationValue(ConfigurationElementType.EMAIL_ADDRESS); + configurationService.deleteConfigurationValue(ConfigurationElementType.EMAIL_ADDRESS); + String newAddress = configurationService.getConfigurationValue(ConfigurationElementType.EMAIL_ADDRESS); + assertEquals(ConfigurationElementType.EMAIL_ADDRESS.getDefaultValue(), newAddress); + configurationService.setConfigurationValue(ConfigurationElementType.EMAIL_ADDRESS, "hello@world"); + newAddress = configurationService.getConfigurationValue(ConfigurationElementType.EMAIL_ADDRESS); + assertEquals("hello@world", newAddress); + + configurationService.setConfigurationValue(ConfigurationElementType.EMAIL_ADDRESS, address); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testList() throws Exception { + try { + List<ConfigurationView> list = configurationService.getAllValues(); + assertEquals(ConfigurationElementType.values().length, list.size()); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testGetSystemVersion() throws Exception { + try { + FrameworkVersion view = configurationService.getSystemVersion("testFiles/gitVersionTest/testNormal/"); + assertNotNull(view); + assertEquals("100", view.getGitVersion()); + assertEquals("202", view.getVersion()); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testGetSystemVersion2() throws Exception { + try { + FrameworkVersion view = configurationService.getSystemVersion("testFiles/gitVersionTest/testModified/"); + assertNotNull(view); + assertEquals("100:105", view.getGitVersion()); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testGetSystemVersion3() throws Exception { + try { + FrameworkVersion view = configurationService.getSystemVersion("testFiles/gitVersionTest/testCorrectSvn/"); + assertNotNull(view); + assertEquals("117", view.getGitVersion()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testGetConfiguratioElemntForPrivilege() throws Exception { + try { + for (PrivilegeType type : PrivilegeType.values()) { + ConfigurationView value = configurationService.getValue(type); + if (Project.class.equals(type.getPrivilegeObjectType())) { + assertNotNull("No default value for privilege " + type.getCommonName(), value); + assertNotNull(value.getValue()); + assertNotNull(value.getValueType()); + } else { + assertNull(value); + } + } + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } } diff --git a/service/src/test/java/lcsb/mapviewer/services/impl/ProjectServiceTest.java b/service/src/test/java/lcsb/mapviewer/services/impl/ProjectServiceTest.java index 40d94a3fc6a3ef5a24ce2282fb0d9dd4020db7a2..67a3fcdfd6b2136bcbcbb6f580c2402ae194855d 100644 --- a/service/src/test/java/lcsb/mapviewer/services/impl/ProjectServiceTest.java +++ b/service/src/test/java/lcsb/mapviewer/services/impl/ProjectServiceTest.java @@ -56,6 +56,7 @@ import lcsb.mapviewer.services.overlay.AnnotatedObjectTreeRow; import lcsb.mapviewer.services.utils.CreateProjectParams; import lcsb.mapviewer.services.utils.data.BuildInLayout; import lcsb.mapviewer.services.view.AuthenticationToken; +import lcsb.mapviewer.services.view.ConfigurationView; import lcsb.mapviewer.services.view.ProjectView; @Rollback(true) @@ -235,10 +236,9 @@ public class ProjectServiceTest extends ServiceTestFunctions { images(true).// async(false).// projectDir(tmpResultDir).// - addUser("gawi", "gawi").// + addUser("admin", "admin").// analyzeAnnotations(true)); - AuthenticationToken token = userService.login("gawi", "gawi"); - Project project = projectService.getProjectByProjectId(project_id, token); + Project project = projectService.getProjectByProjectId(project_id, adminToken); assertEquals(ProjectStatus.DONE, project.getStatus()); projectService.removeProject(project, null, false, adminToken); } catch (Exception e) { @@ -251,6 +251,9 @@ public class ProjectServiceTest extends ServiceTestFunctions { public void testCreateComplex() throws Exception { String projectId = "test_id"; try { + createUser(); + AuthenticationToken token = userService.login(user.getLogin(), "passwd"); + ZipEntryFile entry1 = new ModelZipEntryFile("main.xml", "main", true, false, SubmodelType.UNKNOWN); ZipEntryFile entry2 = new ModelZipEntryFile("s1.xml", "s1", false, false, SubmodelType.UNKNOWN); ZipEntryFile entry3 = new ModelZipEntryFile("s2.xml", "s2", false, false, SubmodelType.UNKNOWN); @@ -272,9 +275,8 @@ public class ProjectServiceTest extends ServiceTestFunctions { images(true).// async(false).// projectDir(tmpResultDir).// - addUser("gawi", "gawi").// + addUser(user.getLogin(), "admin").// analyzeAnnotations(true)); - AuthenticationToken token = userService.login("gawi", "gawi"); Project project = projectService.getProjectByProjectId(projectId, token); Model model = modelService.getLastModelByProjectId(projectId, token); @@ -893,4 +895,28 @@ public class ProjectServiceTest extends ServiceTestFunctions { } } + @Test + public void testCheckPrivilegesAfterCreateProject() throws Exception { + try { + createUser(); + + String name = "Some_id"; + String filename = "testFiles/complexModel/empty_complex_model.zip"; + Project project = createComplexProject(name, filename); + + for (PrivilegeType type : PrivilegeType.values()) { + if (Project.class.equals(type.getPrivilegeObjectType())) { + ConfigurationView confParam = configurationService.getValue(type); + assertEquals("User has invalid " + type + " privilege for new project", + confParam.getValue().equalsIgnoreCase("true"), userService.userHasPrivilege(user, type, project)); + } + } + + projectService.removeProject(project, null, false, adminToken); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + } diff --git a/service/src/test/java/lcsb/mapviewer/services/impl/UserServiceTest.java b/service/src/test/java/lcsb/mapviewer/services/impl/UserServiceTest.java index 251681625148ae5dfde939f8838961be897b604f..128344b26f3d320ce7167c538c7c880ed7635edf 100644 --- a/service/src/test/java/lcsb/mapviewer/services/impl/UserServiceTest.java +++ b/service/src/test/java/lcsb/mapviewer/services/impl/UserServiceTest.java @@ -31,422 +31,418 @@ import org.springframework.test.annotation.Rollback; @Rollback(true) public class UserServiceTest extends ServiceTestFunctions { - static Logger logger = Logger.getLogger(UserServiceTest.class); - - @Autowired - UserViewFactory userViewFactory; - - @Before - public void setUp() throws Exception { - createUser(); - logService.setLoggedUser(user); - } - - @After - public void tearDown() throws Exception { - userDao.delete(user); - } - - @Test - public void testLogin() { - try { - assertNull(userService.login("john.doe", "incorrect password")); - assertNotNull(userService.login("john.doe", "passwd")); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testLoginWithNull() { - try { - assertNull(userService.login("john.doe", null)); - assertNull(userService.login(null, "passwd")); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testUserHasPrivilegeUserPrivilegeType1() { - try { - assertFalse(userService.userHasPrivilege(user, PrivilegeType.ADD_MAP)); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testUserHasPrivilegeUserPrivilegeType3() { - try { - userService.userHasPrivilege(user, PrivilegeType.VIEW_PROJECT); - fail("An exception should occure. VIEW_MAP must be connected with object"); - } catch (Exception e) { - - } - } - - @Test - public void testUserHasPrivilegeUserPrivilegeType2() { - try { - BasicPrivilege privilege = new BasicPrivilege(); - privilege.setLevel(1); - privilege.setType(PrivilegeType.ADD_MAP); - userService.setUserPrivilege(user, privilege); - assertTrue(userService.userHasPrivilege(user, PrivilegeType.ADD_MAP)); - - } catch (Exception e) { - e.printStackTrace(); - fail("Unknown exception"); - } - } - - @Test - public void testUserHasPrivilegeUserPrivilegeTypeObject() { - try { - Project project = new Project(); - projectDao.add(project); - - assertFalse(userService.userHasPrivilege(user, PrivilegeType.VIEW_PROJECT, project)); - try { - userService.userHasPrivilege(user, PrivilegeType.ADD_MAP, project); - fail("An exception should occure. ADD_MAP must not be connected with object"); - } catch (Exception e) { - - } - - try { - userService.userHasPrivilege(user, PrivilegeType.VIEW_PROJECT, user); - fail("An exception should occure. VIEW_MAP must be connected with Model type"); - } catch (Exception e) { - - } - - ObjectPrivilege privilege = new ObjectPrivilege(); - privilege.setLevel(1); - privilege.setType(PrivilegeType.VIEW_PROJECT); - privilege.setIdObject(project.getId()); - userService.setUserPrivilege(user, privilege); - - assertTrue(userService.userHasPrivilege(user, PrivilegeType.VIEW_PROJECT, project)); - - privilege = new ObjectPrivilege(project, 0, PrivilegeType.VIEW_PROJECT, user); - userService.setUserPrivilege(user, privilege); - - assertFalse(userService.userHasPrivilege(user, PrivilegeType.VIEW_PROJECT, project)); - - projectDao.delete(project); - } catch (Exception e) { - e.printStackTrace(); - fail("Unknown exception"); - } - } - - @Test - public void testUserHasPrivilegeUserPrivilegeTypeObject2() { - try { - userService.userHasPrivilege(user, PrivilegeType.VIEW_PROJECT, null); - fail("Exception should occur"); - } catch (InvalidArgumentException e) { - } - } - - @Test - public void testAddUser() throws Exception { - try { - long logCount = logDao.getCount(); - User user2 = new User(); - user2.setLogin("login"); - userService.addUser(user2); - assertNotNull(user2.getId()); - long logCount2 = logDao.getCount(); - assertEquals("Log entry is missing for add user event", logCount + 1, logCount2); - userDao.evict(user2); - User user3 = userService.getUserById(user2.getId()); - assertNotNull(user3); - userService.deleteUser(user3); - user3 = userService.getUserById(user2.getId()); - assertNull(user3); - - long logCount3 = logDao.getCount(); - assertEquals("Log entry is missing for remove user event", logCount2 + 1, logCount3); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testGetAllUserList() throws Exception { - try { - User user2 = new User(); - user2.setLogin("login"); - userService.addUser(user2); - - Project project = new Project(); - projectDao.add(project); - - ObjectPrivilege privilege = new ObjectPrivilege(); - privilege.setLevel(1); - privilege.setType(PrivilegeType.VIEW_PROJECT); - privilege.setIdObject(project.getId()); - userService.setUserPrivilege(user2, privilege); - - List<UserView> list = userService.getAllUserRows(); - UserView currentUser = null; - for (UserView userRow : list) { - if (userRow.getIdObject() == user2.getId()) { - currentUser = userRow; - } - } - assertNotNull(currentUser); - assertEquals(user2.getLogin(), currentUser.getLogin()); - - PrivilegeType types[] = PrivilegeType.values(); - - List<BasicPrivilege> basicTypes = new ArrayList<BasicPrivilege>(); - List<ObjectPrivilege> projectObjectTypes = new ArrayList<ObjectPrivilege>(); - for (PrivilegeType privilegeType : types) { - if (privilegeType.getPrivilegeClassType().equals(BasicPrivilege.class)) { - basicTypes.add(privilegeType.getPrivilegeClassType().newInstance()); - } else if (privilegeType.getPrivilegeClassType().equals(ObjectPrivilege.class)) { - if (privilegeType.getPrivilegeObjectType().equals(Project.class)) { - projectObjectTypes.add((ObjectPrivilege) privilegeType.getPrivilegeClassType().newInstance()); - } - } - } - - assertEquals(basicTypes.size(), currentUser.getBasicPrivileges().size()); - - long projectCount = projectDao.getCount(); - - assertEquals(projectCount, currentUser.getProjectPrivileges().size()); - - UserProjectPrivilegeView currentProject = null; - for (UserProjectPrivilegeView projectPrivilege : currentUser.getProjectPrivileges()) { - assertEquals(projectObjectTypes.size(), projectPrivilege.getProjectPrivileges().size()); - if (projectPrivilege.getIdObject() == project.getId()) { - currentProject = projectPrivilege; - } - } - assertNotNull(currentProject); - PrivilegeView currentPrivilege = null; - for (PrivilegeView row : currentProject.getProjectPrivileges()) { - if (row.getType() == PrivilegeType.VIEW_PROJECT) { - currentPrivilege = row; - } - } - assertNotNull(currentPrivilege); - assertTrue(currentPrivilege.getSelected()); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - /** - * Test update of a user that doesn't exist in db - */ - @Test - public void testUpdateUserRow() { - try { - Project project = new Project(); - projectDao.add(project); - - UserView userRow = userService.createEmptyUserRow(); - - for (PrivilegeView pRow : userRow.getBasicPrivileges()) { - if (pRow.getType().equals(PrivilegeType.ADD_MAP)) { - pRow.setSelected(true); - } - } - - for (PrivilegeView pRow : userRow.getProjectPrivilegeByProjectId(project.getId()).getProjectPrivileges()) { - if (pRow.getType().equals(PrivilegeType.VIEW_PROJECT)) { - pRow.setSelected(true); - } - } - - userService.updateUser(userRow); - - assertNotNull(userRow.getIdObject()); - assertTrue(userRow.getIdObject() != 0); - - User user2 = userDao.getById(userRow.getIdObject()); - - assertTrue(userService.userHasPrivilege(user2, PrivilegeType.ADD_MAP)); - assertFalse(userService.userHasPrivilege(user2, PrivilegeType.PROJECT_MANAGEMENT)); - assertTrue(userService.userHasPrivilege(user2, PrivilegeType.VIEW_PROJECT, project)); - - for (PrivilegeView pRow : userRow.getBasicPrivileges()) { - if (pRow.getType().equals(PrivilegeType.ADD_MAP)) { - pRow.setSelected(false); - } - } - - for (PrivilegeView pRow : userRow.getProjectPrivilegeByProjectId(project.getId()).getProjectPrivileges()) { - if (pRow.getType().equals(PrivilegeType.VIEW_PROJECT)) { - pRow.setSelected(false); - } - } - - userService.updateUser(userRow); - - assertFalse(userService.userHasPrivilege(user2, PrivilegeType.ADD_MAP)); - assertFalse(userService.userHasPrivilege(user2, PrivilegeType.VIEW_PROJECT, project)); - } catch (Exception e) { - e.printStackTrace(); - fail("Unknown exception"); - } - } - - /** - * Test update of a user that exist in the db - * - * @throws Exception - */ - @Test - public void testUpdateUserRow2() throws Exception { - String cryptedPassword = "passwd"; - - try { - Project project = new Project(); - projectDao.add(project); - - User user2 = new User(); - user2.setLogin("login"); - user2.setCryptedPassword(cryptedPassword); - userService.addUser(user2); - - List<UserView> rows = userService.getAllUserRows(); - UserView userRow = null; - for (UserView userRow2 : rows) { - if (userRow2.getIdObject() == user2.getId()) - userRow = userRow2; - } - - assertNotNull(userRow); - - assertFalse(userService.userHasPrivilege(user2, PrivilegeType.ADD_MAP)); - assertFalse(userService.userHasPrivilege(user2, PrivilegeType.VIEW_PROJECT, project)); - - for (PrivilegeView pRow : userRow.getBasicPrivileges()) { - if (pRow.getType().equals(PrivilegeType.ADD_MAP)) { - pRow.setSelected(true); - } - } - - for (PrivilegeView pRow : userRow.getProjectPrivilegeByProjectId(project.getId()).getProjectPrivileges()) { - if (pRow.getType().equals(PrivilegeType.VIEW_PROJECT)) { - pRow.setSelected(true); - } - } - - userRow.setPassword(""); - - userService.updateUser(userRow); - - User user3 = userDao.getById(user2.getId()); - - // check if password didn't change - assertEquals(cryptedPassword, user3.getCryptedPassword()); - - assertTrue(userService.userHasPrivilege(user2, PrivilegeType.ADD_MAP)); - assertTrue(userService.userHasPrivilege(user2, PrivilegeType.VIEW_PROJECT, project)); - - for (PrivilegeView pRow : userRow.getBasicPrivileges()) { - if (pRow.getType().equals(PrivilegeType.ADD_MAP)) { - pRow.setSelected(false); - } - } - - for (PrivilegeView pRow : userRow.getProjectPrivilegeByProjectId(project.getId()).getProjectPrivileges()) { - if (pRow.getType().equals(PrivilegeType.VIEW_PROJECT)) { - pRow.setSelected(false); - } - } - - userRow.setPassword("new passwd"); - userService.updateUser(userRow); - - user3 = userDao.getById(user2.getId()); - - // check if password changed - assertFalse(cryptedPassword.equals(user3.getCryptedPassword())); - - assertFalse(userService.userHasPrivilege(user2, PrivilegeType.ADD_MAP)); - assertFalse(userService.userHasPrivilege(user2, PrivilegeType.VIEW_PROJECT, project)); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testRemoveUserRow() throws Exception { - try { - UserView userRow = userService.createEmptyUserRow(); - userService.deleteUser(userRow); - - User user2 = new User(); - user2.setLogin("login"); - userService.addUser(user2); - - List<UserView> rows = userService.getAllUserRows(); - userRow = null; - for (UserView userRow2 : rows) { - if (userRow2.getIdObject() == user2.getId()) - userRow = userRow2; - } - - assertNotNull(userRow); - - userService.deleteUser(userRow); - - rows = userService.getAllUserRows(); - - userRow = null; - for (UserView userRow2 : rows) { - if (userRow2.getIdObject() == user2.getId()) - userRow = userRow2; - } - - assertNull(userRow); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } + static Logger logger = Logger.getLogger(UserServiceTest.class); + + @Autowired + UserViewFactory userViewFactory; + + @Before + public void setUp() throws Exception { + createUser(); + logService.setLoggedUser(user); + } + + @After + public void tearDown() throws Exception { + userDao.delete(user); + } + + @Test + public void testLogin() { + try { + assertNull(userService.login("john.doe", "incorrect password")); + assertNotNull(userService.login("john.doe", "passwd")); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testLoginWithNull() { + try { + assertNull(userService.login("john.doe", null)); + assertNull(userService.login(null, "passwd")); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testUserHasPrivilegeUserPrivilegeType1() { + try { + assertFalse(userService.userHasPrivilege(user, PrivilegeType.ADD_MAP)); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testUserHasPrivilegeUserPrivilegeType3() { + try { + userService.userHasPrivilege(user, PrivilegeType.VIEW_PROJECT); + fail("An exception should occure. VIEW_MAP must be connected with object"); + } catch (Exception e) { + + } + } + + @Test + public void testUserHasPrivilegeUserPrivilegeType2() { + try { + BasicPrivilege privilege = new BasicPrivilege(); + privilege.setLevel(1); + privilege.setType(PrivilegeType.ADD_MAP); + userService.setUserPrivilege(user, privilege); + assertTrue(userService.userHasPrivilege(user, PrivilegeType.ADD_MAP)); + + } catch (Exception e) { + e.printStackTrace(); + fail("Unknown exception"); + } + } + + @Test + public void testUserHasPrivilegeUserPrivilegeTypeObject() { + try { + Project project = new Project(); + projectDao.add(project); + + assertFalse(userService.userHasPrivilege(user, PrivilegeType.VIEW_PROJECT, project)); + try { + userService.userHasPrivilege(user, PrivilegeType.ADD_MAP, project); + fail("An exception should occure. ADD_MAP must not be connected with object"); + } catch (Exception e) { + + } + + try { + userService.userHasPrivilege(user, PrivilegeType.VIEW_PROJECT, user); + fail("An exception should occure. VIEW_MAP must be connected with Model type"); + } catch (Exception e) { + + } + + ObjectPrivilege privilege = new ObjectPrivilege(); + privilege.setLevel(1); + privilege.setType(PrivilegeType.VIEW_PROJECT); + privilege.setIdObject(project.getId()); + userService.setUserPrivilege(user, privilege); + + assertTrue(userService.userHasPrivilege(user, PrivilegeType.VIEW_PROJECT, project)); + + privilege = new ObjectPrivilege(project, 0, PrivilegeType.VIEW_PROJECT, user); + userService.setUserPrivilege(user, privilege); + + assertFalse(userService.userHasPrivilege(user, PrivilegeType.VIEW_PROJECT, project)); + + projectDao.delete(project); + } catch (Exception e) { + e.printStackTrace(); + fail("Unknown exception"); + } + } + + @Test + public void testUserHasPrivilegeForDefaultProjectWithoutSetting() { + assertFalse(userService.userHasPrivilege(user, PrivilegeType.VIEW_PROJECT, null)); + } + + @Test + public void testAddUser() throws Exception { + try { + long logCount = logDao.getCount(); + User user2 = new User(); + user2.setLogin("login"); + userService.addUser(user2); + assertNotNull(user2.getId()); + long logCount2 = logDao.getCount(); + assertEquals("Log entry is missing for add user event", logCount + 1, logCount2); + userDao.evict(user2); + User user3 = userService.getUserById(user2.getId()); + assertNotNull(user3); + userService.deleteUser(user3); + user3 = userService.getUserById(user2.getId()); + assertNull(user3); + + long logCount3 = logDao.getCount(); + assertEquals("Log entry is missing for remove user event", logCount2 + 1, logCount3); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testGetAllUserList() throws Exception { + try { + User user2 = new User(); + user2.setLogin("login"); + userService.addUser(user2); + + Project project = new Project(); + projectDao.add(project); + + ObjectPrivilege privilege = new ObjectPrivilege(); + privilege.setLevel(1); + privilege.setType(PrivilegeType.VIEW_PROJECT); + privilege.setIdObject(project.getId()); + userService.setUserPrivilege(user2, privilege); + + List<UserView> list = userService.getAllUserRows(); + UserView currentUser = null; + for (UserView userRow : list) { + if (userRow.getIdObject() == user2.getId()) { + currentUser = userRow; + } + } + assertNotNull(currentUser); + assertEquals(user2.getLogin(), currentUser.getLogin()); + + PrivilegeType types[] = PrivilegeType.values(); + + List<BasicPrivilege> basicTypes = new ArrayList<BasicPrivilege>(); + List<ObjectPrivilege> projectObjectTypes = new ArrayList<ObjectPrivilege>(); + for (PrivilegeType privilegeType : types) { + if (privilegeType.getPrivilegeClassType().equals(BasicPrivilege.class)) { + basicTypes.add(privilegeType.getPrivilegeClassType().newInstance()); + } else if (privilegeType.getPrivilegeClassType().equals(ObjectPrivilege.class)) { + if (privilegeType.getPrivilegeObjectType().equals(Project.class)) { + projectObjectTypes.add((ObjectPrivilege) privilegeType.getPrivilegeClassType().newInstance()); + } + } + } + + assertEquals(basicTypes.size(), currentUser.getBasicPrivileges().size()); + + long projectCount = projectDao.getCount(); + + assertEquals(projectCount, currentUser.getProjectPrivileges().size()); + + UserProjectPrivilegeView currentProject = null; + for (UserProjectPrivilegeView projectPrivilege : currentUser.getProjectPrivileges()) { + assertEquals(projectObjectTypes.size(), projectPrivilege.getProjectPrivileges().size()); + if (projectPrivilege.getIdObject() == project.getId()) { + currentProject = projectPrivilege; + } + } + assertNotNull(currentProject); + PrivilegeView currentPrivilege = null; + for (PrivilegeView row : currentProject.getProjectPrivileges()) { + if (row.getType() == PrivilegeType.VIEW_PROJECT) { + currentPrivilege = row; + } + } + assertNotNull(currentPrivilege); + assertTrue(currentPrivilege.getSelected()); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + /** + * Test update of a user that doesn't exist in db + */ + @Test + public void testUpdateUserRow() { + try { + Project project = new Project(); + projectDao.add(project); + + UserView userRow = userService.createEmptyUserRow(); + + for (PrivilegeView pRow : userRow.getBasicPrivileges()) { + if (pRow.getType().equals(PrivilegeType.ADD_MAP)) { + pRow.setSelected(true); + } + } + + for (PrivilegeView pRow : userRow.getProjectPrivilegeByProjectId(project.getId()).getProjectPrivileges()) { + if (pRow.getType().equals(PrivilegeType.VIEW_PROJECT)) { + pRow.setSelected(true); + } + } + + userService.updateUser(userRow); + + assertNotNull(userRow.getIdObject()); + assertTrue(userRow.getIdObject() != 0); + + User user2 = userDao.getById(userRow.getIdObject()); + + assertTrue(userService.userHasPrivilege(user2, PrivilegeType.ADD_MAP)); + assertFalse(userService.userHasPrivilege(user2, PrivilegeType.PROJECT_MANAGEMENT)); + assertTrue(userService.userHasPrivilege(user2, PrivilegeType.VIEW_PROJECT, project)); + + for (PrivilegeView pRow : userRow.getBasicPrivileges()) { + if (pRow.getType().equals(PrivilegeType.ADD_MAP)) { + pRow.setSelected(false); + } + } + + for (PrivilegeView pRow : userRow.getProjectPrivilegeByProjectId(project.getId()).getProjectPrivileges()) { + if (pRow.getType().equals(PrivilegeType.VIEW_PROJECT)) { + pRow.setSelected(false); + } + } + + userService.updateUser(userRow); + + assertFalse(userService.userHasPrivilege(user2, PrivilegeType.ADD_MAP)); + assertFalse(userService.userHasPrivilege(user2, PrivilegeType.VIEW_PROJECT, project)); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + /** + * Test update of a user that exist in the db + * + * @throws Exception + */ + @Test + public void testUpdateUserRow2() throws Exception { + String cryptedPassword = "passwd"; + + try { + Project project = new Project(); + projectDao.add(project); + + User user2 = new User(); + user2.setLogin("login"); + user2.setCryptedPassword(cryptedPassword); + userService.addUser(user2); + + List<UserView> rows = userService.getAllUserRows(); + UserView userRow = null; + for (UserView userRow2 : rows) { + if (userRow2.getIdObject() == user2.getId()) + userRow = userRow2; + } + + assertNotNull(userRow); + + assertFalse(userService.userHasPrivilege(user2, PrivilegeType.ADD_MAP)); + assertFalse(userService.userHasPrivilege(user2, PrivilegeType.VIEW_PROJECT, project)); + + for (PrivilegeView pRow : userRow.getBasicPrivileges()) { + if (pRow.getType().equals(PrivilegeType.ADD_MAP)) { + pRow.setSelected(true); + } + } + + for (PrivilegeView pRow : userRow.getProjectPrivilegeByProjectId(project.getId()).getProjectPrivileges()) { + if (pRow.getType().equals(PrivilegeType.VIEW_PROJECT)) { + pRow.setSelected(true); + } + } + + userRow.setPassword(""); + + userService.updateUser(userRow); + + User user3 = userDao.getById(user2.getId()); + + // check if password didn't change + assertEquals(cryptedPassword, user3.getCryptedPassword()); + + assertTrue(userService.userHasPrivilege(user2, PrivilegeType.ADD_MAP)); + assertTrue(userService.userHasPrivilege(user2, PrivilegeType.VIEW_PROJECT, project)); + + for (PrivilegeView pRow : userRow.getBasicPrivileges()) { + if (pRow.getType().equals(PrivilegeType.ADD_MAP)) { + pRow.setSelected(false); + } + } + + for (PrivilegeView pRow : userRow.getProjectPrivilegeByProjectId(project.getId()).getProjectPrivileges()) { + if (pRow.getType().equals(PrivilegeType.VIEW_PROJECT)) { + pRow.setSelected(false); + } + } + + userRow.setPassword("new passwd"); + userService.updateUser(userRow); + + user3 = userDao.getById(user2.getId()); + + // check if password changed + assertFalse(cryptedPassword.equals(user3.getCryptedPassword())); + + assertFalse(userService.userHasPrivilege(user2, PrivilegeType.ADD_MAP)); + assertFalse(userService.userHasPrivilege(user2, PrivilegeType.VIEW_PROJECT, project)); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testRemoveUserRow() throws Exception { + try { + UserView userRow = userService.createEmptyUserRow(); + userService.deleteUser(userRow); + + User user2 = new User(); + user2.setLogin("login"); + userService.addUser(user2); + + List<UserView> rows = userService.getAllUserRows(); + userRow = null; + for (UserView userRow2 : rows) { + if (userRow2.getIdObject() == user2.getId()) + userRow = userRow2; + } + + assertNotNull(userRow); + + userService.deleteUser(userRow); + + rows = userService.getAllUserRows(); + + userRow = null; + for (UserView userRow2 : rows) { + if (userRow2.getIdObject() == user2.getId()) + userRow = userRow2; + } + + assertNull(userRow); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } - @Test - public void testCreateEmptyUserRow() { - try { - Project project = new Project(); - projectDao.add(project); + @Test + public void testCreateEmptyUserRow() { + try { + Project project = new Project(); + projectDao.add(project); - UserView row = userService.createEmptyUserRow(); + UserView row = userService.createEmptyUserRow(); - assertNotNull(row); - - long projectCount = projectDao.getCount(); + assertNotNull(row); + + long projectCount = projectDao.getCount(); - assertEquals(projectCount, row.getProjectPrivileges().size()); - assertNotNull(row.getProjectPrivilegeByProjectId(project.getId())); + assertEquals(projectCount, row.getProjectPrivileges().size()); + assertNotNull(row.getProjectPrivilegeByProjectId(project.getId())); - for (UserProjectPrivilegeView upRow : row.getProjectPrivileges()) { - assertTrue(userViewFactory.getObjectTypes().size() >= upRow.getProjectPrivileges().size()); - } - assertEquals(userViewFactory.getBasicTypes().size(), row.getBasicPrivileges().size()); + for (UserProjectPrivilegeView upRow : row.getProjectPrivileges()) { + assertTrue(userViewFactory.getObjectTypes().size() >= upRow.getProjectPrivileges().size()); + } + assertEquals(userViewFactory.getBasicTypes().size(), row.getBasicPrivileges().size()); - } catch (Exception e) { - e.printStackTrace(); - fail("Unknown exception"); - } - } + } catch (Exception e) { + e.printStackTrace(); + fail("Unknown exception"); + } + } }