package org.molgenis.bioshare;
import org.molgenis.Molgenis;
import org.molgenis.auth.MolgenisGroup;
import org.molgenis.auth.MolgenisPermission;
import org.molgenis.auth.MolgenisRoleGroupLink;
import org.molgenis.auth.MolgenisUser;
import org.molgenis.framework.db.Database;
import org.molgenis.framework.db.QueryRule;
import org.molgenis.framework.db.QueryRule.Operator;
import app.DatabaseFactory;
public class bioshareUpdateDatabase
{
public static void main(String[] args) throws Exception
{
// PropertyConfigurator.configure("apps/catalogue/org/molgenis/catalogue/catalogue_log4j.properties");
new Molgenis("apps/bioshare/org/molgenis/bioshare/bioshare.molgenis.properties").updateDb(true);
// final Map<String, Object> config = new HashMap<String, Object>();
// config.put("hibernate.hbm2ddl.auto", "create-drop");
// Database db = DatabaseFactory.create(config);
//
// FillMetadata.fillMetadata(db, false);
//
Database db = DatabaseFactory.create("apps/biosahre/org/molgenis/bioshare/bioshare.molgenis.properties");
// Only add user if type of Login allows for this
// if (!(db.getLogin() instanceof SimpleLogin)) {
// MolgenisUser u = new MolgenisUser();
// u.setName("biobank");
// u.setPassword("biobank");
// u.setSuperuser(true);
// db.add(u);
// Person p = new Person();
// p.setFirstName("Despoina");
// p.setLastName("Antonakaki");
// p.setEmail("despoina.antonakaki@gmail.com");
// db.add(p);
// }
MolgenisUser demo = new MolgenisUser();
demo.setName("demo");
demo.setPassword("d3m0c@t@logue");
demo.setActive(true);
db.add(demo);
// Create a group :SimpleUsers
MolgenisGroup mg = new MolgenisGroup();
mg.setName("SimpleUsers");
db.add(mg);
// add demo to group Simple Users
MolgenisRoleGroupLink mrgl = new MolgenisRoleGroupLink();
mrgl.setRole_Name("demo");
mrgl.setGroup_Name("SimpleUsers");
db.add(mrgl);
// TODO: add anonymous user in Simple users
MolgenisRoleGroupLink mrgl2 = db.query(MolgenisRoleGroupLink.class)
.eq(MolgenisRoleGroupLink.ROLE__NAME, "anonymous").find().get(0);
mrgl2.setGroup_Name("SimpleUsers");
System.out.println(mrgl2);
db.update(mrgl2);
// //Now set permission for the demo account
// for (int i=2; i<95; i++) {
// MolgenisPermission mp = new MolgenisPermission();
// mp.setRole_Name("SimpleUsers");
// mp.setEntity_Id(i);
// mp.setPermission("own");
// db.add(mp);
// System.out.println("Inserting molgenis permisssion for :" + i);
// }
for (int i = 2; i < 95; i++)
{
MolgenisPermission mp = new MolgenisPermission();
mp.setRole_Name("AllUsers");
mp.setEntity_Id(i);
mp.setPermission("own");
db.add(mp);
System.out.println("Inserting molgenis permisssion for :" + i);
}
// except from : admin
MolgenisPermission mp = new MolgenisPermission();
System.out.println(db.find(MolgenisPermission.class, new QueryRule(MolgenisPermission.ENTITY_CLASSNAME,
Operator.EQUALS, "app.ui.AdminMenu")));
mp = db.find(MolgenisPermission.class,
new QueryRule(MolgenisPermission.ENTITY_CLASSNAME, Operator.EQUALS, "app.ui.AdminMenu")).get(0);
db.remove(mp);
// requests form controller
mp = new MolgenisPermission();
System.out.println(mp);
mp = db.find(MolgenisPermission.class,
new QueryRule(MolgenisPermission.ENTITY_CLASSNAME, Operator.EQUALS, "app.ui.RequestsFormController"))
.get(0);
System.out.println(mp);
db.remove(mp);
// import data menu
mp = new MolgenisPermission();
mp = db.find(MolgenisPermission.class,
new QueryRule(MolgenisPermission.ENTITY_CLASSNAME, Operator.EQUALS, "app.ui.ImportDataMenu")).get(0);
db.remove(mp);
// BiobankImporterPlugin
mp = new MolgenisPermission();
mp = db.find(MolgenisPermission.class,
new QueryRule(MolgenisPermission.ENTITY_CLASSNAME, Operator.EQUALS, "app.ui.BiobankImporterPlugin"))
.get(0);
db.remove(mp);
// generic wizard
mp = new MolgenisPermission();
mp = db.find(MolgenisPermission.class,
new QueryRule(MolgenisPermission.ENTITY_CLASSNAME, Operator.EQUALS, "app.ui.GenericWizardPlugin")).get(
0);
db.remove(mp);
// settings
mp = new MolgenisPermission();
mp = db.find(MolgenisPermission.class,
new QueryRule(MolgenisPermission.ENTITY_CLASSNAME, Operator.EQUALS, "app.ui.SettingsPlugin")).get(0);
db.remove(mp);
// usermanagement
mp = new MolgenisPermission();
mp = db.find(MolgenisPermission.class,
new QueryRule(MolgenisPermission.ENTITY_CLASSNAME, Operator.EQUALS, "app.ui.usermanagementMenu"))
.get(0);
db.remove(mp);
// app.ui.MolgenisUserFormController
mp = new MolgenisPermission();
mp = db.find(
MolgenisPermission.class,
new QueryRule(MolgenisPermission.ENTITY_CLASSNAME, Operator.EQUALS, "app.ui.MolgenisUserFormController"))
.get(0);
db.remove(mp);
// MolgenisGroup
mp = new MolgenisPermission();
mp = db.find(
MolgenisPermission.class,
new QueryRule(MolgenisPermission.ENTITY_CLASSNAME, Operator.EQUALS,
"app.ui.MolgenisGroupFormController")).get(0);
db.remove(mp);
// app.ui.MappingsMenu
mp = new MolgenisPermission();
mp = db.find(MolgenisPermission.class,
new QueryRule(MolgenisPermission.ENTITY_CLASSNAME, Operator.EQUALS, "app.ui.MappingsMenu")).get(0);
db.remove(mp);
// app.ui.selectionModelMenu
mp = new MolgenisPermission();
mp = db.find(MolgenisPermission.class,
new QueryRule(MolgenisPermission.ENTITY_CLASSNAME, Operator.EQUALS, "app.ui.selectionModelMenu"))
.get(0);
db.remove(mp);
// PredictionModelSelection
mp = new MolgenisPermission();
mp = db.find(
MolgenisPermission.class,
new QueryRule(MolgenisPermission.ENTITY_CLASSNAME, Operator.EQUALS,
"app.ui.PredictionModelSelectionPlugin")).get(0);
db.remove(mp);
}
}