2010-11-26 23 views
6

Asansörde, ProtoUser yapısının tamamı, sizin için ne yaptığını inanılmaz, hayret verici (Asansörde ne yazık ki pek çoğu) belgesizdir.Asansörde MegaProtoUser seçeneğine alternatif

Sadece bir sorun var: İhtiyacım olmayan verileri ve hatta istemediğim verileri bile tutar. Örneğin, kullanıcının bir takma adla giriş yapmasını istiyorum ve onun yerini, yerel ayarını veya ilk/soyadını bilmem gerekmiyor. Ancak kayıt sırasında standart kayıt sayfasında görüntülenmeyen bilgilere ihtiyacım var.

İlk düşüncem kendi Kullanıcı özelliğimi yeniden yazmak olurdu, ancak daha sonra tüm oturum kodunu, yetkilendirmeyi yeniden yazmam gerekecekti. Zaten bir alternatif var mı? Ya da sadece gerekli verilerimin yanı sıra kendi kayıt ve giriş sayfalarına sahip olmak için ProtoUser'u değiştirmek mümkün mü?

Dinlediğiniz için teşekkürler.

+0

liftweb grubunda http://groups.google.com/group/liftweb/browse_thread/thread/cf396f89a4304beb/e74683995641e67e?lnk=gst&q=ProtoUser#e74683995641e67e bu son tartışmaya göz atın –

cevap

3

ProtoUser'deki alanlardan herhangi birini kaldırmak için herhangi bir kolay yol olup olmadığından emin değilim, ancak ProtoUser'de fieldOrder yöntemine bakmak için bir seçenek olacaktır, bu, protoUser'ın kullandığı alanları tanımladığına inanıyorum. kaydolma sorununa olarak size böylece

override def signupFields = email :: userName :: password :: Nil

kendi userName nesneyi tanımlamak varsayarsak gibi kaydolma de gerektirir alanları neyi geçersiz sağlayan bir yöntem signUpFields yoktur. EditFields için de benzer bir yöntem vardır, bu aslında izlediği alanları temizlemenin problemini çözmez, ama belki de fieldOrder birşeyler yapabilir, bir diğer öneri ise Proto Kullanıcının kaynağına bakmak ve haritalanmış nesneleri geçersiz kılabilir ve eşleştirici bunları bir şekilde görmezden gelebilir. Bu, hala içerdiği kodun birçoğunu yeniden yazmak zorunda kalmamak için Proto Kullanıcı etrafında çalışmanın bir yoludur.

+0

Bu tüm hakkı iş gibi görünüyor kayıt olun, ancak kullanıcıyı düzenlerken, daha önce olduğu gibi aynı standart alanları elde ederim. Ve sadece e-posta ile günlüğe kaydetme ... – Lanbo

+0

Evet, düzenleme kullanıcı sayfası için editFields adlı ayrı bir yöntem var. Kullanıcı adıyla giriş yapmak için bunu nasıl değiştireceğimi bilmiyorum. Bunun için bazı proto-kullanıcı yöntemlerini geçersiz kılmanız gerekir. – RedbeardTheNinja