2016-06-11 16 views
0

私は完全に新しいGrailsプロジェクトを作成し、grails s2-quickstartコマンドを使用してLoginControllerクラスとUser/UserRoleクラスを取得しました。すべて正常に動作し、ログインページがあります。次に、「コントローラとビューを生成する」を選択して、GTSにユーザコントローラを作成しました。次のように生成されたUserControllerでは見えます:Grailsの簡単な登録/ログインフォーム

import static org.springframework.http.HttpStatus.* 
import grails.transaction.Transactional 

@Transactional(readOnly = true) 
class UserController { 

static allowedMethods = [save: "POST", update: "PUT", delete: "DELETE"] 

def index(Integer max) { 
    params.max = Math.min(max ?: 10, 100) 
    respond User.list(params), model:[userInstanceCount: User.count()] 
} 

def show(User userInstance) { 
    respond userInstance 
} 

def create() { 
    respond new User(params) 
} 

@Transactional 
def save(User userInstance) { 
    if (userInstance == null) { 
     notFound() 
     return 
    } 

    if (userInstance.hasErrors()) { 
     respond userInstance.errors, view:'create' 
     return 
    } 

    userInstance.save flush:true 

    request.withFormat { 
     form multipartForm { 
      flash.message = message(code: 'default.created.message', args: [message(code: 'user.label', default: 'User'), userInstance.id]) 
      redirect userInstance 
     } 
     '*' { respond userInstance, [status: CREATED] } 
    } 
} 

def edit(User userInstance) { 
    respond userInstance 
} 

@Transactional 
def update(User userInstance) { 
    if (userInstance == null) { 
     notFound() 
     return 
    } 

    if (userInstance.hasErrors()) { 
     respond userInstance.errors, view:'edit' 
     return 
    } 

    userInstance.save flush:true 

    request.withFormat { 
     form multipartForm { 
      flash.message = message(code: 'default.updated.message', args: [message(code: 'User.label', default: 'User'), userInstance.id]) 
      redirect userInstance 
     } 
     '*'{ respond userInstance, [status: OK] } 
    } 
} 

@Transactional 
def delete(User userInstance) { 

    if (userInstance == null) { 
     notFound() 
     return 
    } 

    userInstance.delete flush:true 

    request.withFormat { 
     form multipartForm { 
      flash.message = message(code: 'default.deleted.message', args: [message(code: 'User.label', default: 'User'), userInstance.id]) 
      redirect action:"index", method:"GET" 
     } 
     '*'{ render status: NO_CONTENT } 
    } 
} 

protected void notFound() { 
    request.withFormat { 
     form multipartForm { 
      flash.message = message(code: 'default.not.found.message', args: [message(code: 'user.label', default: 'User'), params.id]) 
      redirect action: "index", method: "GET" 
     } 
     '*'{ render status: NOT_FOUND } 
    } 
} 

}

を今、私は/ユーザー/インデックスページに行きたいとき、それは私がログインページに転送... はどのようにそれを変更するには?私はGrailsにとって全く新しいです。この質問が些細なものであれば、すみません。

答えて

0

設定ファイルにスプリングセキュリティコントローラアノテーションの静的ルールを指定するか、コントローラのSecuredアノテーションを使用して特定のロールにユーザー/インデックスへのアクセスを提供する必要があります。

参考:http://grails-plugins.github.io/grails-spring-security-core/v3/index.html#secured-annotation

http://grails-plugins.github.io/grails-spring-security-core/v3/index.html#pessimistic-lockdown

+0

[OK]を、私はこのUserControllerでは役割を持っていない人ではなく、ログインしているユーザーがアクセスすることにしたいです。 ROLE_ANONYMOUSを追加する必要がありますか? – user2455862

+0

静的ルールに追加し、既存のルールに従います。permitAll @ user2455862、application.groovy – Vahid

関連する問題