Index: api/src/main/java/org/sakaiproject/site/api/SiteService.java =================================================================== --- api/src/main/java/org/sakaiproject/site/api/SiteService.java (revision 307098) +++ api/src/main/java/org/sakaiproject/site/api/SiteService.java (working copy) @@ -83,6 +83,9 @@ /** Name for the event of adding a project site */ static final String SECURE_ADD_PROJECT_SITE = "site.add.project"; + + /** Name for the event of creating a site from a sakai archive */ + static final String SECURE_IMPORT_ARCHIVE = "site.import.archive"; /** Name for the event of adding a user's My Workspace site. */ static final String SECURE_ADD_USER_SITE = "site.add.usersite"; @@ -527,6 +530,12 @@ */ boolean allowAddProjectSite(); + /** + * Can the user create sites with a sakai archive + * @return + */ + boolean allowImportArchiveSite(); + /** * Add a new site. The site will exist with just an id once done, so remove() it if you don't want to keep it. * Index: api/src/main/java/org/sakaiproject/site/cover/SiteService.java =================================================================== --- api/src/main/java/org/sakaiproject/site/cover/SiteService.java (revision 307108) +++ api/src/main/java/org/sakaiproject/site/cover/SiteService.java (working copy) @@ -232,6 +232,13 @@ return service.allowAddPortfolioSite(); } + + public static boolean allowImportArchiveSite() { + org.sakaiproject.site.api.SiteService service = getInstance(); + if (service == null) return false; + + return service.allowImportArchiveSite(); + } public static boolean allowAddProjectSite() { org.sakaiproject.site.api.SiteService service = getInstance(); Index: kernel-impl/src/main/java/org/sakaiproject/site/impl/BaseSiteService.java =================================================================== --- kernel-impl/src/main/java/org/sakaiproject/site/impl/BaseSiteService.java (revision 307098) +++ kernel-impl/src/main/java/org/sakaiproject/site/impl/BaseSiteService.java (working copy) @@ -541,6 +541,7 @@ functionManager().registerFunction(SITE_VISIT_SOFTLY_DELETED); functionManager().registerFunction(SECURE_REMOVE_SOFTLY_DELETED_SITE); functionManager().registerFunction(SECURE_ADD_PROJECT_SITE); + functionManager().registerFunction(SECURE_IMPORT_ARCHIVE); portalSkinPrefix = serverConfigurationService().getString(PORTAL_SKIN_NEOPREFIX_PROPERTY, PORTAL_SKIN_NEOPREFIX_DEFAULT); @@ -1238,6 +1239,10 @@ public boolean allowAddProjectSite() { return unlockCheck(SECURE_ADD_PROJECT_SITE, siteReference(null)); } + + public boolean allowImportArchiveSite() { + return unlockCheck(SECURE_IMPORT_ARCHIVE, siteReference(null)); + } /** * @inheritDoc Index: kernel-impl/src/main/sql/hsqldb/sakai_realm.sql =================================================================== --- kernel-impl/src/main/sql/hsqldb/sakai_realm.sql (revision 307098) +++ kernel-impl/src/main/sql/hsqldb/sakai_realm.sql (working copy) @@ -439,6 +439,7 @@ INSERT INTO SAKAI_REALM_FUNCTION VALUES (NEXT VALUE FOR SAKAI_REALM_FUNCTION_SEQ, 'osp.wizard.view'); INSERT INTO SAKAI_REALM_FUNCTION VALUES (NEXT VALUE FOR SAKAI_REALM_FUNCTION_SEQ, 'osp.wizard.evaluate'); INSERT INTO SAKAI_REALM_FUNCTION VALUES (NEXT VALUE FOR SAKAI_REALM_FUNCTION_SEQ, 'site.add.project'); +INSERT INTO SAKAI_REALM_FUNCTION VALUES (NEXT VALUE FOR SAKAI_REALM_FUNCTION_SEQ, 'site.import.archive'); INSERT INTO SAKAI_REALM_FUNCTION VALUES (NEXT VALUE FOR SAKAI_REALM_FUNCTION_SEQ, 'lessonbuilder.read'); INSERT INTO SAKAI_REALM_FUNCTION VALUES (NEXT VALUE FOR SAKAI_REALM_FUNCTION_SEQ, 'lessonbuilder.upd'); INSERT INTO SAKAI_REALM_FUNCTION VALUES (NEXT VALUE FOR SAKAI_REALM_FUNCTION_SEQ, 'sitestats.view'); Index: kernel-impl/src/main/sql/mysql/sakai_realm.sql =================================================================== --- kernel-impl/src/main/sql/mysql/sakai_realm.sql (revision 307098) +++ kernel-impl/src/main/sql/mysql/sakai_realm.sql (working copy) @@ -455,6 +455,7 @@ INSERT INTO SAKAI_REALM_FUNCTION VALUES (DEFAULT, 'osp.wizard.view'); INSERT INTO SAKAI_REALM_FUNCTION VALUES (DEFAULT, 'osp.wizard.evaluate'); INSERT INTO SAKAI_REALM_FUNCTION VALUES (DEFAULT, 'site.add.project'); +INSERT INTO SAKAI_REALM_FUNCTION VALUES (DEFAULT, 'site.import.archive'); INSERT INTO SAKAI_REALM_FUNCTION VALUES (DEFAULT, 'lessonbuilder.read'); INSERT INTO SAKAI_REALM_FUNCTION VALUES (DEFAULT, 'lessonbuilder.upd'); INSERT INTO SAKAI_REALM_FUNCTION VALUES (DEFAULT, 'sitestats.view'); Index: kernel-impl/src/main/sql/oracle/sakai_realm.sql =================================================================== --- kernel-impl/src/main/sql/oracle/sakai_realm.sql (revision 307098) +++ kernel-impl/src/main/sql/oracle/sakai_realm.sql (working copy) @@ -473,6 +473,7 @@ INSERT INTO SAKAI_REALM_FUNCTION VALUES (SAKAI_REALM_FUNCTION_SEQ.NEXTVAL, 'osp.wizard.view'); INSERT INTO SAKAI_REALM_FUNCTION VALUES (SAKAI_REALM_FUNCTION_SEQ.NEXTVAL, 'osp.wizard.evaluate'); INSERT INTO SAKAI_REALM_FUNCTION VALUES (SAKAI_REALM_FUNCTION_SEQ.NEXTVAL, 'site.add.project'); +INSERT INTO SAKAI_REALM_FUNCTION VALUES (SAKAI_REALM_FUNCTION_SEQ.NEXTVAL, 'site.import.archive'); INSERT INTO SAKAI_REALM_FUNCTION VALUES (SAKAI_REALM_FUNCTION_SEQ.NEXTVAL, 'lessonbuilder.read'); INSERT INTO SAKAI_REALM_FUNCTION VALUES (SAKAI_REALM_FUNCTION_SEQ.NEXTVAL, 'lessonbuilder.upd'); INSERT INTO SAKAI_REALM_FUNCTION VALUES (SAKAI_REALM_FUNCTION_SEQ.NEXTVAL, 'sitestats.view');