Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/Organisation.hbm.xml =================================================================== RCS file: /usr/local/cvsroot/lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/Organisation.hbm.xml,v diff -u -r1.9 -r1.10 --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/Organisation.hbm.xml 19 Jun 2006 23:42:31 -0000 1.9 +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/Organisation.hbm.xml 29 Jun 2006 06:05:41 -0000 1.10 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/db/model/lams_11.clay,v diff -u -r1.56 -r1.57 --- lams_common/db/model/lams_11.clay 28 Jun 2006 05:42:29 -0000 1.56 +++ lams_common/db/model/lams_11.clay 29 Jun 2006 06:05:41 -0000 1.57 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/db/sql/create_lams_11_tables.sql,v diff -u -r1.69 -r1.70 --- lams_common/db/sql/create_lams_11_tables.sql 28 Jun 2006 05:42:28 -0000 1.69 +++ lams_common/db/sql/create_lams_11_tables.sql 29 Jun 2006 06:05:41 -0000 1.70 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/usermanagement/Organisation.java,v diff -u -r1.10 -r1.11 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/Organisation.java 19 Jun 2006 23:42:31 -0000 1.10 +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/Organisation.java 29 Jun 2006 06:05:41 -0000 1.11 @@ -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())