Grails 1.3.7 से 2.0.4 में माइग्रेट करने के बाद मैंने अपने डोमेन कक्षाओं में से एक समस्या देखी है जहां मैं पासवर्ड को संभालने के लिए क्षणिक गुणों का उपयोग करता हूं।Grails क्षणिक गुण ऑब्जेक्ट सृजन पर नहीं उठाए गए
मेरे डोमेन वर्ग इस तरह दिखता है (सरलीकृत):
package test
class User {
String email
String password1
String password2
//ShiroUser shiroUser
static constraints = {
email(email:true, nullable:false, unique:true)
password1(nullable:true,size:5..30, blank: false, validator: {password, obj ->
if(password==null && !obj.properties['id']){
return ['no.password']
}
else return true
})
password2(nullable:true, blank: false, validator: {password, obj ->
def password1 = obj.properties['password1']
if(password == null && !obj.properties['id']){
return ['no.password']
}
else{
password == password1 ? true : ['invalid.matching.passwords']
}
})
}
static transients = ['password1','password2']
}
1.3.7 में यह मेरा बूटस्ट्रैप में काम करता था:,
def user1= new User (email: "[email protected]", password1: "123456", password2: "123456")
user1.save()
हालांकि Grails 2.0.x में इस परिणाम होगा त्रुटि में यह बताते हुए कि पासवर्ड 1 और पासवर्ड 2 दोनों शून्य हैं। एक ही बात मेरे नियंत्रकों में क्या होता है अगर मैं करने की कोशिश:
def user2= new User (params)// params include email,password1 and password2
आदेश यह काम मैं निम्नलिखित तरीके को क्या करना है बनाने के लिए:
def user2= new User (params)// params include email,password1 and password2
user2.password1=params.password1
user2.password2=params.password2
user2.save()
यह काफी बदसूरत है - और कष्टप्रद।
क्या कोई कह सकता है कि मेरे ट्रांजिस्टर का उपयोग grails 2.x में अमान्य हो गया है, या यदि यह किसी प्रकार का ढांचा बग हो सकता है?
धन्यवाद बर्ट - इस सुरक्षा से संबंधित परिवर्तन के साथ अच्छी समझ में आता है। बस (नई?) 'बाध्यकारी' बाधा के बारे में पता नहीं था। –
हे बर्ट, क्या यह 2.1.0 में बदल गया है? मेरे पास एक ही परिदृश्य है और हमारे लिए "cnfPassword" अभी भी शून्य के रूप में आता है! एक ही प्रश्न के लिए एक नया धागा खोलना नहीं चाहते :) :) – Sap
हाय बर्ट, यह grails 2.4.3 में ठीक से काम नहीं कर रहा है। क्या कोई वैकल्पिक समाधान है जिसे आप सलाह दे सकते हैं? – daimon