Skip to content

Commit

Permalink
Tests now pass, initial update
Browse files Browse the repository at this point in the history
  • Loading branch information
morungos committed Nov 28, 2015
1 parent 80fad36 commit 5aa1a68
Show file tree
Hide file tree
Showing 16 changed files with 133 additions and 115 deletions.
10 changes: 5 additions & 5 deletions application.properties
@@ -1,9 +1,9 @@
#Grails Metadata file
#Sun Sep 15 12:31:30 EDT 2013
app.grails.version=2.2.4
app.name=openmentor
app.servlet.version=2.4
#Mon Nov 23 22:35:43 EST 2015
app.version=1.0.M6
plugins.database-migration=1.2.2
plugins.spring-security-core=1.2.7.3
plugins.spring-security-ldap=1.0.6
app.servlet.version=2.4
app.grails.version=2.4.4
plugins.spring-security-core=1.2.7.3
app.name=openmentor
34 changes: 17 additions & 17 deletions grails-app/conf/Config.groovy
Expand Up @@ -108,31 +108,31 @@ log4j = {
'org.grails.datastore.mapping'
}

//grails.plugins.springsecurity.rejectIfNoRule = true
//grails.plugin.springsecurity.rejectIfNoRule = true

grails.plugins.springsecurity.roleHierarchy = '''
grails.plugin.springsecurity.roleHierarchy = '''
ROLE_OPENMENTOR-ADMIN > ROLE_OPENMENTOR-USER
'''

// Added by the Spring Security Core plugin:
grails.plugins.springsecurity.userLookup.userDomainClassName = 'uk.org.openmentor.auth.User'
grails.plugins.springsecurity.userLookup.authorityJoinClassName = 'uk.org.openmentor.auth.UserRole'
grails.plugins.springsecurity.authority.className = 'uk.org.openmentor.auth.Role'
grails.plugin.springsecurity.userLookup.userDomainClassName = 'uk.org.openmentor.auth.User'
grails.plugin.springsecurity.userLookup.authorityJoinClassName = 'uk.org.openmentor.auth.UserRole'
grails.plugin.springsecurity.authority.className = 'uk.org.openmentor.auth.Role'

// Added for the Spring Security LDAP plugin:
// Tested against slapd - 19/12/2012
//grails.plugins.springsecurity.ldap.context.managerDn = 'cn=Manager,dc=morungos,dc=com'
//grails.plugins.springsecurity.ldap.context.managerPassword = 'd1n0$aur'
//grails.plugins.springsecurity.ldap.context.anonymousReadOnly=true
//grails.plugins.springsecurity.ldap.context.server = 'ldap://localhost:389/'
//grails.plugins.springsecurity.ldap.search.base = 'dc=morungos,dc=com'
//grails.plugins.springsecurity.ldap.search.filter = '(uid={0})'
//grails.plugins.springsecurity.ldap.authorities.groupSearchBase = 'ou=groups,dc=morungos,dc=com'
//grails.plugins.springsecurity.ldap.authorities.groupSearchFilter = 'member={0}'
//grails.plugins.springsecurity.password.algorithm = 'MD5'
//grails.plugins.springsecurity.ldap.authorities.retrieveDatabaseRoles = true
//grails.plugins.springsecurity.ldap.authenticator.useBind = false
//grails.plugins.springsecurity.providerNames = ['ldapAuthProvider', 'daoAuthenticationProvider']
//grails.plugin.springsecurity.ldap.context.managerDn = 'cn=Manager,dc=morungos,dc=com'
//grails.plugin.springsecurity.ldap.context.managerPassword = 'd1n0$aur'
//grails.plugin.springsecurity.ldap.context.anonymousReadOnly=true
//grails.plugin.springsecurity.ldap.context.server = 'ldap://localhost:389/'
//grails.plugin.springsecurity.ldap.search.base = 'dc=morungos,dc=com'
//grails.plugin.springsecurity.ldap.search.filter = '(uid={0})'
//grails.plugin.springsecurity.ldap.authorities.groupSearchBase = 'ou=groups,dc=morungos,dc=com'
//grails.plugin.springsecurity.ldap.authorities.groupSearchFilter = 'member={0}'
//grails.plugin.springsecurity.password.algorithm = 'MD5'
//grails.plugin.springsecurity.ldap.authorities.retrieveDatabaseRoles = true
//grails.plugin.springsecurity.ldap.authenticator.useBind = false
//grails.plugin.springsecurity.providerNames = ['ldapAuthProvider', 'daoAuthenticationProvider']

// This exploits the significantly more flexible handling of types in Grails to
// allow configuration down to the grading scheme.
Expand Down
@@ -1,6 +1,6 @@
package uk.org.openmentor.controller

import grails.plugins.springsecurity.Secured;
import grails.plugin.springsecurity.annotation.Secured;
import uk.org.openmentor.courseinfo.Assignment;
import uk.org.openmentor.courseinfo.Course;

Expand All @@ -21,11 +21,11 @@ class AssignmentController {
return courseInstance
}

def index = {
def index() {
redirect(action: "list", params: params)
}

def list = {
def list() {
def courseInstance = getSelectedCourse()
if (! courseInstance) {
return
Expand All @@ -37,13 +37,13 @@ class AssignmentController {
}

@Secured(["hasRole('MANAGE_COURSEINFO_ROLE')"])
def create = {
def create() {
def courseInstance = getSelectedCourse()
[courseInstance: courseInstance]
}

@Secured(["hasRole('MANAGE_COURSEINFO_ROLE')"])
def save = {
def save() {
def courseInstance = getSelectedCourse()
def assignmentInstance = new Assignment(params)
courseInfoService.initializeAssignment(assignmentInstance)
Expand All @@ -62,7 +62,7 @@ class AssignmentController {
}
}

def show = {
def show() {
def courseInstance = getSelectedCourse()
def assignmentInstance = courseInfoService.findAssignment(courseInstance, params.id)

Expand All @@ -76,7 +76,7 @@ class AssignmentController {
}

@Secured(["hasRole('MANAGE_COURSEINFO_ROLE')"])
def edit = {
def edit() {
def courseInstance = getSelectedCourse()
def assignmentInstance = courseInfoService.findAssignment(courseInstance, params.id)

Expand All @@ -90,7 +90,7 @@ class AssignmentController {
}

@Secured(["hasRole('MANAGE_COURSEINFO_ROLE')"])
def update = {
def update() {
def courseInstance = getSelectedCourse()
def assignmentInstance = courseInfoService.findAssignment(courseInstance, params.code)

Expand Down Expand Up @@ -123,7 +123,7 @@ class AssignmentController {
}

@Secured(["hasRole('MANAGE_COURSEINFO_ROLE')"])
def delete = {
def delete() {
def courseInstance = getSelectedCourse()
def assignmentInstance = courseInfoService.findAssignment(courseInstance, params.id)
if (!assignmentInstance) {
Expand All @@ -138,7 +138,7 @@ class AssignmentController {
}
}

def query = {
def query() {
def courseInstance = getSelectedCourse()
def assignmentList = courseInfoService.findAssignmentsLike(courseInstance, "%" + params.term + "%")

Expand All @@ -147,7 +147,7 @@ class AssignmentController {
}
}

def courseAssignments = {
def courseAssignments() {
log.info("Requested course id: " + params.courseId);
log.error("Requested course id (error): " + params.courseId);

Expand Down
@@ -1,6 +1,6 @@
package uk.org.openmentor.controller

import grails.plugins.springsecurity.Secured;
import grails.plugin.springsecurity.annotation.Secured;
import uk.org.openmentor.courseinfo.Assignment;
import uk.org.openmentor.courseinfo.Course

Expand All @@ -9,19 +9,19 @@ class CourseController {

def courseInfoService

def index = {
def index() {
redirect(action: "list", params: params)
}

def list = {
def list() {
def courseList = courseInfoService.getCourses(params)
def courseCount = courseInfoService.getCourseCount()
def allowDeletion = courseInfoService.getAllowDeletion()
[courseInstanceList: courseList, courseInstanceTotal: courseCount, allowDeletion: allowDeletion]
}

@Secured(["hasRole('MANAGE_COURSEINFO_ROLE')"])
def save = {
def save() {
def courseInstance = new Course(params)
courseInfoService.initializeCourse(courseInstance)

Expand All @@ -35,7 +35,7 @@ class CourseController {
}
}

def show = {
def show() {
def courseInstance = courseInfoService.findCourse(params.courseId)
if (!courseInstance) {
flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'course.label', default: 'Course'), params.courseId])}"
Expand All @@ -47,7 +47,7 @@ class CourseController {
}

@Secured(["hasRole('MANAGE_COURSEINFO_ROLE')"])
def edit = {
def edit() {
def courseInstance = courseInfoService.findCourse(params.courseId)
if (!courseInstance) {
flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'course.label', default: 'Course'), params.courseId])}"
Expand All @@ -59,7 +59,7 @@ class CourseController {
}

@Secured(["hasRole('MANAGE_COURSEINFO_ROLE')"])
def delete = {
def delete() {
def courseInstance = courseInfoService.findCourse(params.id)
if (!courseInstance) {
flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'course.label', default: 'Course'), params.id])}"
Expand All @@ -74,10 +74,10 @@ class CourseController {
}

@Secured(["hasRole('MANAGE_COURSEINFO_ROLE')"])
def create = { }
def create() { }

@Secured(["hasRole('MANAGE_COURSEINFO_ROLE')"])
def update = {
def update() {
def courseInstance = courseInfoService.findCourse(params.courseId)

if (courseInstance) {
Expand Down Expand Up @@ -109,7 +109,7 @@ class CourseController {
}
}

def select = {
def select() {
if (request.method == 'POST') {
def course = courseInfoService.findCourse(params.courseId)
if (course) {
Expand All @@ -121,7 +121,7 @@ class CourseController {
[courseList: courseList]
}

def query = {
def query() {
def courseList = courseInfoService.findCoursesLike("%" + params.term + "%")
courseList.sort { it.courseId }

Expand Down
@@ -1,8 +1,8 @@
package uk.org.openmentor.controller

import org.codehaus.groovy.grails.plugins.springsecurity.SpringSecurityUtils;
import grails.plugin.springsecurity.SpringSecurityUtils
import grails.plugin.springsecurity.annotation.Secured

import grails.plugins.springsecurity.Secured;
import uk.org.openmentor.data.Submission;

/**
Expand All @@ -24,7 +24,7 @@ class HistoryController {
redirect(action: "list", params: params)
}

def list = {
def list() {
params.max = Math.min(params.max ? params.int('max') : 10, 100)
params.sort = params.sort ?: 'dateSubmitted'
params.order = params.order ?: 'asc'
Expand Down
Expand Up @@ -4,8 +4,6 @@ import grails.converters.JSON

import javax.servlet.http.HttpServletResponse

import org.codehaus.groovy.grails.plugins.springsecurity.SpringSecurityUtils

import org.springframework.security.authentication.AccountExpiredException
import org.springframework.security.authentication.CredentialsExpiredException
import org.springframework.security.authentication.DisabledException
Expand All @@ -14,7 +12,8 @@ import org.springframework.security.core.context.SecurityContextHolder as SCH
import org.springframework.security.web.WebAttributes
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter

import grails.plugins.springsecurity.Secured
import grails.plugin.springsecurity.annotation.Secured
import grails.plugin.springsecurity.SpringSecurityUtils

@Secured(['IS_AUTHENTICATED_ANONYMOUSLY'])
class LoginController {
Expand All @@ -32,7 +31,7 @@ class LoginController {
/**
* Default action; redirects to 'defaultTargetUrl' if logged in, /login/auth otherwise.
*/
def index = {
def index() {
if (springSecurityService.isLoggedIn()) {
redirect uri: SpringSecurityUtils.securityConfig.successHandler.defaultTargetUrl
}
Expand All @@ -44,7 +43,7 @@ class LoginController {
/**
* Show the login page.
*/
def auth = {
def auth() {

def config = SpringSecurityUtils.securityConfig

Expand All @@ -65,15 +64,15 @@ class LoginController {
/**
* The redirect action for Ajax requests.
*/
def authAjax = {
def authAjax() {
response.setHeader 'Location', SpringSecurityUtils.securityConfig.auth.ajaxLoginFormUrl
response.sendError HttpServletResponse.SC_UNAUTHORIZED
}

/**
* Show denied page.
*/
def denied = {
def denied() {

log.info("Access denied")

Expand All @@ -87,7 +86,7 @@ class LoginController {
/**
* Login page for users with a remember-me cookie but accessing a IS_AUTHENTICATED_FULLY page.
*/
def full = {
def full() {
def config = SpringSecurityUtils.securityConfig
render view: 'auth', params: params,
model: [hasCookie: authenticationTrustResolver.isRememberMe(SCH.context?.authentication),
Expand All @@ -97,7 +96,7 @@ class LoginController {
/**
* Callback after a failed login. Redirects to the auth page with a warning message.
*/
def authfail = {
def authfail() {

def username = session[UsernamePasswordAuthenticationFilter.SPRING_SECURITY_LAST_USERNAME_KEY]
String msg = ''
Expand Down Expand Up @@ -135,14 +134,14 @@ class LoginController {
/**
* The Ajax success redirect url.
*/
def ajaxSuccess = {
def ajaxSuccess() {
render([success: true, username: springSecurityService.authentication.name] as JSON)
}

/**
* The Ajax denied redirect url.
*/
def ajaxDenied = {
def ajaxDenied() {
render([error: 'access denied'] as JSON)
}
}
@@ -1,16 +1,15 @@
package uk.org.openmentor.controller

import org.codehaus.groovy.grails.plugins.springsecurity.SpringSecurityUtils

import grails.plugins.springsecurity.Secured
import grails.plugin.springsecurity.SpringSecurityUtils
import grails.plugin.springsecurity.annotation.Secured

@Secured(['IS_AUTHENTICATED_ANONYMOUSLY'])
class LogoutController {

/**
* Index action. Redirects to the Spring security logout uri.
*/
def index = {
def index() {
// TODO put any pre-logout code here
redirect uri: SpringSecurityUtils.securityConfig.logout.filterProcessesUrl // '/j_spring_security_logout'
}
Expand Down

0 comments on commit 5aa1a68

Please sign in to comment.