Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/Organisation.hbm.xml =================================================================== diff -u -r8cac732bffc10bdc8ae29629fda9008d0c1d68a0 -rd65ab06923c55ee76432bad9507f933ec442a671 --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/Organisation.hbm.xml (.../Organisation.hbm.xml) (revision 8cac732bffc10bdc8ae29629fda9008d0c1d68a0) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/Organisation.hbm.xml (.../Organisation.hbm.xml) (revision d65ab06923c55ee76432bad9507f933ec442a671) @@ -114,6 +114,67 @@ + + + + @hibernate.property + column="admin_add_new_users" + length="1" + not-null="true" + + + + + + @hibernate.property + column="admin_browse_all_users" + length="1" + not-null="true" + + + + + + @hibernate.property + column="admin_change_status" + length="1" + not-null="true" + + + + + + @hibernate.property + column="admin_create_guest" + length="1" + not-null="true" + + + Index: lams_common/db/model/lams_11.clay =================================================================== diff -u -r0ff427cbcf60a11b06f033886c617ade68044542 -rd65ab06923c55ee76432bad9507f933ec442a671 --- lams_common/db/model/lams_11.clay (.../lams_11.clay) (revision 0ff427cbcf60a11b06f033886c617ade68044542) +++ lams_common/db/model/lams_11.clay (.../lams_11.clay) (revision d65ab06923c55ee76432bad9507f933ec442a671) @@ -1013,13 +1013,26 @@ + + + + + + + + + + + + + @@ -1039,19 +1052,6 @@ - - - - - - - - - - - - - @@ -1531,7 +1531,7 @@ - + @@ -1641,6 +1641,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4111,6 +4163,19 @@ + + + + + + + + + + + + + Index: lams_common/db/sql/create_lams_11_tables.sql =================================================================== diff -u -r0ff427cbcf60a11b06f033886c617ade68044542 -rd65ab06923c55ee76432bad9507f933ec442a671 --- lams_common/db/sql/create_lams_11_tables.sql (.../create_lams_11_tables.sql) (revision 0ff427cbcf60a11b06f033886c617ade68044542) +++ lams_common/db/sql/create_lams_11_tables.sql (.../create_lams_11_tables.sql) (revision d65ab06923c55ee76432bad9507f933ec442a671) @@ -222,6 +222,10 @@ , locale_language CHAR(2) , locale_country CHAR(2) , organisation_state_id INT(3) NOT NULL + , admin_add_new_users TINYINT(1) NOT NULL DEFAULT 0 + , admin_browse_all_users TINYINT(1) NOT NULL DEFAULT 0 + , admin_change_status TINYINT(1) NOT NULL DEFAULT 0 + , admin_create_guest TINYINT(1) NOT NULL DEFAULT 0 , PRIMARY KEY (organisation_id) , INDEX (organisation_type_id) , CONSTRAINT FK_lams_organisation_1 FOREIGN KEY (organisation_type_id) @@ -619,6 +623,7 @@ , created_date_time DATETIME NOT NULL , next_version_id BIGINT(20) UNSIGNED NOT NULL DEFAULT 1 , parent_nv_id BIGINT(20) UNSIGNED + , user_id BIGINT(20) , PRIMARY KEY (node_id) , INDEX (workspace_id) , CONSTRAINT FK_lams_cr_node_1 FOREIGN KEY (workspace_id) Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/Organisation.java =================================================================== diff -u -r8cac732bffc10bdc8ae29629fda9008d0c1d68a0 -rd65ab06923c55ee76432bad9507f933ec442a671 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/Organisation.java (.../Organisation.java) (revision 8cac732bffc10bdc8ae29629fda9008d0c1d68a0) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/Organisation.java (.../Organisation.java) (revision d65ab06923c55ee76432bad9507f933ec442a671) @@ -26,6 +26,7 @@ import java.io.Serializable; import java.util.Date; import java.util.Set; + import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; @@ -38,8 +39,9 @@ */ public class Organisation implements Serializable { - - /** identifier field */ + private static final long serialVersionUID = -6742443056151585129L; + + /** identifier field */ private Integer organisationId; /** nullable persistent field */ @@ -77,9 +79,24 @@ private String localeLanguage; private String localeCountry; + + /** persistent field */ + private Boolean courseAdminCanAddNewUsers; + + /** persistent field */ + private Boolean courseAdminCanBrowseAllUsers; + /** persistent field */ + private Boolean courseAdminCanChangeStatusOfCourse; + + /** persistent field */ + private Boolean courseAdminCanCreateGuestAccounts; + /** full constructor */ - public Organisation(String name, String description, Organisation parentOrganisation, Date createDate, Workspace workspace, OrganisationType organisationType, Set userOrganisations, Set childOrganisations, Set lessons) { + public Organisation(String name, String description, Organisation parentOrganisation, Date createDate, Workspace workspace, + OrganisationType organisationType, Set userOrganisations, Set childOrganisations, Set lessons, + Boolean courseAdminCanAddNewUsers, Boolean courseAdminCanBrowseAllUsers, Boolean courseAdminCanChangeStatusOfCourse, + Boolean courseAdminCanCreateGuestAccounts) { this.name = name; this.description = description; this.parentOrganisation = parentOrganisation; @@ -89,10 +106,19 @@ this.userOrganisations = userOrganisations; this.childOrganisations = childOrganisations; this.lessons = lessons; + this.courseAdminCanAddNewUsers = courseAdminCanAddNewUsers; + this.courseAdminCanBrowseAllUsers = courseAdminCanBrowseAllUsers; + this.courseAdminCanChangeStatusOfCourse = courseAdminCanChangeStatusOfCourse; + this.courseAdminCanCreateGuestAccounts = courseAdminCanCreateGuestAccounts; } /** default constructor */ public Organisation() { + this.courseAdminCanAddNewUsers = Boolean.FALSE; + this.courseAdminCanBrowseAllUsers = Boolean.FALSE; + this.courseAdminCanChangeStatusOfCourse = Boolean.FALSE; + this.courseAdminCanCreateGuestAccounts = Boolean.FALSE; + } /** minimal constructor */ @@ -102,6 +128,12 @@ this.organisationType = organisationType; this.userOrganisations = userOrganisations; this.lessons = lessons; + + // mandatory fields in the db + this.courseAdminCanAddNewUsers = Boolean.FALSE; + this.courseAdminCanBrowseAllUsers = Boolean.FALSE; + this.courseAdminCanChangeStatusOfCourse = Boolean.FALSE; + this.courseAdminCanCreateGuestAccounts = Boolean.FALSE; } public Organisation(String name, String description, @@ -326,6 +358,68 @@ this.organisationState = organisationState; } + /** + * @hibernate.property + * column="admin_add_new_users" + * length="1" + * not-null="true" + * + */ + public Boolean getCourseAdminCanAddNewUsers() { + return this.courseAdminCanAddNewUsers; + } + + public void setCourseAdminCanAddNewUsers(Boolean courseAdminCanAddNewUsers) { + this.courseAdminCanAddNewUsers = courseAdminCanAddNewUsers; + } + + /** + * @hibernate.property + * column="admin_browse_all_users" + * length="1" + * not-null="true" + * + */ + public Boolean getCourseAdminCanBrowseAllUsers() { + return this.courseAdminCanBrowseAllUsers; + } + + public void setCourseAdminCanBrowseAllUsers(Boolean courseAdminCanBrowseAllUsers) { + this.courseAdminCanBrowseAllUsers = courseAdminCanBrowseAllUsers; + } + + /** + * @hibernate.property + * column="admin_change_status" + * length="1" + * not-null="true" + * + */ + public Boolean getCourseAdminCanChangeStatusOfCourse() { + return this.courseAdminCanChangeStatusOfCourse; + } + + public void setCourseAdminCanChangeStatusOfCourse(Boolean courseAdminCanChangeStatusOfCourse) { + this.courseAdminCanChangeStatusOfCourse = courseAdminCanChangeStatusOfCourse; + } + + /** + * @hibernate.property + * column="admin_create_guest" + * length="1" + * not-null="true" + * + */ + public Boolean getCourseAdminCanCreateGuestAccounts() { + return this.courseAdminCanCreateGuestAccounts; + } + + public void setCourseAdminCanCreateGuestAccounts(Boolean courseAdminCanCreateGuestAccounts) { + this.courseAdminCanCreateGuestAccounts = courseAdminCanCreateGuestAccounts; + } + + + public String toString() { return new ToStringBuilder(this) .append("organisationId", getOrganisationId())