Django-lazysignup adalah aplikasi Django dirancang untuk memungkinkan pengguna untuk berinteraksi dengan situs seolah-olah mereka dikonfirmasi pengguna, tetapi tanpa mendaftar & nbsp;. Setiap saat, mereka dapat mengkonversi account pengguna sementara mereka ke account pengguna nyata.
Diuji pada Django 1.2alpha1, meskipun harus bekerja pada Django 1.0 dan kemudian (meskipun Anda akan perlu untuk menyesuaikan salah satu template.) Hal ini membutuhkan django.contrib.auth berada dalam daftar INSTALLED_APPS.
Instalasi:
Instal telur Django-lazysignup seperti yang Anda lakukan setiap telur pembangunan lainnya dari sistem kontrol sumber. Misalnya, dengan pip:
pip install git -e: //github.com/danfairs/django-lazysignup.git#egg=django-lazysignup
Setelah itu selesai, Anda perlu menambahkan lazysignup ke INSTALLED_APPS Anda. Anda juga akan perlu menambahkan lazysignup itu otentikasi backend untuk AUTHENTICATION_BACKENDS pengaturan situs Anda:
AUTHENTICATION_BACKENDS = (
& Nbsp; 'django.contrib.auth.backends.ModelBackend',
& Nbsp; 'lazysignup.backends.LazySignupBackend',
)
Anda juga akan memerlukan middleware diinstal. Ini harus datang antara sesi dan auth backends:
MIDDLEWARE_CLASSES = (
& Nbsp; "django.middleware.common.CommonMiddleware",
& Nbsp; "django.contrib.sessions.middleware.SessionMiddleware",
& Nbsp; "django.middleware.csrf.CsrfViewMiddleware",
& Nbsp; "lazysignup.middleware.LazySignupMiddleware",
& Nbsp; "django.contrib.auth.middleware.AuthenticationMiddleware",
& Nbsp; "django.contrib.messages.middleware.MessageMiddleware",
& Nbsp; "django.middleware.doc.XViewMiddleware",
)
Jika Anda menggunakan Django sebelum 1.2, Anda harus menimpa template lazysignup / convert.html untuk menghapus {% csrf_token%} tag template. Hal ini dapat ditangani lebih elegan di masa mendatang.
Akhirnya, Anda perlu menambahkan lazysignup ke URLConf Anda, menggunakan sesuatu seperti ini:
urlpatterns + = (''
& Nbsp; (r '^ mengkonversi /', termasuk ('lazysignup.urls')),
)
Penggunaan:
Paket ini bekerja dengan menciptakan akun pengguna sementara berdasarkan kunci sesi pengguna setiap kali pandangan ditandai diminta. Anda dapat menentukan pandangan memicu perilaku ini menggunakan dekorator lazysignup.decorators.allow_lazy.
Ketika seorang pengguna anonim meminta pandangan seperti itu, account pengguna sementara akan dibuat untuk mereka, dan mereka akan masuk. Akun pengguna akan memiliki password set tidak dapat digunakan, sehingga tidak dapat digunakan untuk log in seperti biasa pengguna. Oleh karena itu, cara untuk mengetahui penggunaan reguler dari pengguna sementara adalah untuk memanggil metode user.has_usable_password (). Jika ini kembali False, maka pengguna hanya sementara. Perhatikan bahwa user.is_anonymous () akan mengembalikan Palsu dan user.is_authenticated () akan mengembalikan Benar.
Tampilan ini disediakan untuk memungkinkan pengguna tersebut untuk mengubah akun sementara mereka ke account pengguna nyata dengan memberikan username dan password.
Perintah manajemen Django disediakan untuk membersihkan basi, account pengguna uncoverted.
The allow_lazy dekorator
Gunakan dekorator ini untuk menunjukkan bahwa mengakses pandangan harus menyebabkan pengguna anonim untuk memiliki rekening sementara yang dibuat untuk mereka. Ini mungkin bijaksana untuk menempatkan ini pada tampilan homepage Anda!
Sebagai contoh:
dari django.http impor HttpResponse
dari lazysignup.decorators impor allow_lazy
allow_lazy
def my_view (permintaan):
& Nbsp; kembali HttpResponse (request.user.username)
Ketika mengakses pandangan di atas, respon yang sangat sederhana yang berisi username yang dihasilkan akan ditampilkan.
Menggunakan tampilan convert
Pengguna akan dapat mengunjungi / mengkonversi / tampilan. Ini memberikan bentuk dengan nama pengguna, kata sandi dan konfirmasi sandi. Selama mereka mengisi rincian yang valid, account pengguna sementara mereka akan dikonversi ke dalam rekening pengguna nyata bahwa mereka dapat log in dengan seperti biasa.
Pemeliharaan
Seiring waktu, jumlah akun pengguna yang belum dikonversi akan membangun. Untuk menghindari masalah kinerja dari jumlah berlebihan account pengguna, dianjurkan bahwa perintah manajemen remove_expired_users dijalankan secara teratur. Ini berjalan dari baris perintah:
remove_expired_users python manage.py
Dalam lingkungan produksi, ini harus dijalankan dari cron atau serupa.
Ini bekerja akan menghapus account pengguna dari sistem yang sesi terkait tidak lagi dalam tabel sesi. user.delete () dipanggil untuk setiap pengguna, data sehingga terkait akan dihapus juga.
Membantu Out
Jika Anda ingin menambahkan fitur atau memperbaiki bug, silakan pergi ke depan! Garpu proyek di GitHub, dan ketika Anda selesai dengan perubahan Anda, beritahu saya. Perbaikan dan fitur dengan tes memiliki kesempatan lebih besar untuk bergabung. Untuk menjalankan tes, lakukan:
uji manage.py python --settings = lazysignup.test_settings lazysignup
Perhatikan bahwa tes memerlukan paket mock
Apa yang baru dalam rilis ini:..
- Fix kemasan dan dokumentasi kesalahan
Apa yang baru dalam versi 0.10.3.
- Perbaiki kemasan error
Apa yang baru dalam versi 0.9.0:
- Ini adalah rilis fitur. Sebuah sinyal kustom kini dipecat bila pengguna diubah. Berkat Olly Smith (oesmith) untuk patch.
- Versi Django lebih awal dari 1,3 sekarang tidak lagi didukung. (Tidak ada yang telah dilakukan untuk mencegah 1.2.x kerja, tapi saya tidak akan lagi berhati-hati untuk memastikan bahwa hal ini tetap terjadi.)
Apa yang baru dalam versi 0.7.0:
- Ini adalah rilis fitur. Kelas pengguna kustom kini didukung melalui pengaturan LAZYSIGNUP_USER_MODEL. Ini adalah perubahan mundur-kompatibel.
- Terima kasih kepada Lukas Zapart untuk ide dan awal pelaksanaan.
Apa yang baru dalam versi 0.6.1:
- Ini adalah rilis bugfix. Isu tetap:
- https://github.com/danfairs/django-lazysignup/issues#issue/2 -. ID pengguna tidak valid dalam sesi bisa menyebabkan AttributeError dari backend auth
- Terima kasih kepada Alex Ehlke untuk laporan dan Patch.
Apa yang baru dalam versi 0.6.0:
- Pengguna menciptakan malas tapi tidak saat log-in adalah sekarang benar terdeteksi sebagai pengguna malas. Untuk memfasilitasi ini, model LazyUser disertakan. Perhatikan bahwa kode yang ada menggunakan is_lazy_user hanya pada pengguna otentik akan terus bekerja, sebagai metode lama memeriksa atribut backend dari objek Pengguna telah dipertahankan -. Itu lebih cepat untuk melakukan itu daripada query database yang berpotensi tidak perlu
- Bagi mereka yang menggunakannya, migrasi Selatan disediakan untuk membuat tabel awal. Migrasi data akan ditangani oleh migrasi Selatan dari sekarang.
- Lokasi impor kanonik is_lazy_user telah berubah dari dalam lazysignup.templatetags.lazysignup_tags ke lazysignup.utils. Kode yang impor dari lokasi lama akan terus bekerja ada.
Apa yang baru dalam versi 0.5.0:
- Versi ini menyederhanakan pelaksanaan signifikan dengan menghapus persyaratan untuk middleware. Ini adalah perubahan mundur-kompatibel dengan modul lazysignup.middleware tidak ada lagi, dan perlu dihapus dari daftar MIDDLEWARE_CLASSES Anda.
- Perubahan ini berarti bahwa Anda tidak lagi dapat menonaktifkan perangkat lunak dengan menghapus kelas middleware dari konfigurasi Anda. Anda mungkin ingin melakukan hal ini sementara dalam pembangunan, misalnya, ketika menguji bahwa pandangan Anda masih bekerja ketika seorang pengguna anonim disajikan kepada mereka (mungkin melalui fungsi user agent daftar hitam).
- Untuk tujuan ini, dukungan untuk pengaturan baru telah ditambahkan: ENABLE_LAZYSIGNUP. Ini diatur ke True secara default. Setting ke False akan baik mencegah login otomatis dan penciptaan pengguna otomatis.
- allow_lazy_user dekorator tidak lagi harus menjadi yang pertama dalam daftar dekorator. Terima kasih kepada Jauco Noordzij untuk menunjukkan ini awalnya.
- Sekarang ada juga filter is_lazy_user template, yang akan kembali Benar jika pengguna saat ini adalah pengguna secara otomatis dibuat. Ini akan kembali palsu untuk pengguna yang anonim, atau yang disahkan oleh beberapa cara lain. Terima kasih lagi untuk Jauco Noordzij untuk ide untuk fitur ini.
- Perhatikan bahwa filter is_lazy_user (yang Anda juga dapat hanya mengimpor dan menggunakan secara langsung dalam kode pandangan Anda) adalah cara yang lebih disukai untuk memeriksa untuk pengguna secara otomatis dibuat. has_usable_password akan terus kembali Palsu untuk pengguna tersebut, namun tidak lagi cara kanonik untuk mengidentifikasi mereka. Pengguna otentik dengan backends otentikasi lainnya (misalnya, backends LDAP) dapat kembali False ketika has_usable_password disebut.
Apa yang baru dalam versi 0.4.0:
- Versi ini perbaikan sejumlah isu, menambahkan baru fitur dan telah backwards- perubahan kompatibel:
- Perbaiki masalah RST di README
- Perbaiki masalah di mana POST ke tampilan mengkonversi akan pecah jika pengguna anonim. The mengkonversi tampilan sekarang diarahkan ke LOGIN_URL secara default, parameterised dalam view.
- Fitur baru:
- Sekarang lebih mudah untuk menyesuaikan proses konversi pengguna malas menjadi pengguna nyata. Versi sebelumnya memungkinkan bentuk kustom untuk diteruskan ke tampilan convert, tetapi kode selalu diharapkan username dan lapangan password1 untuk mendapatkan kepercayaan dari log pengguna dalam. Sekarang, get_credentials baru () metode ini disebut pada formulir untuk mendapatkan ini kredensial.
- Tes Modul sekarang termasuk dekorator no_lazysignup yang dapat Anda terapkan untuk metode pada uji kasus Anda, yang menghilangkan pendaftaran middleware malas selama tes itu saja. Hal ini berguna untuk menguji apa yang terjadi ketika pandangan yang ditandai dengan dengan dekorator allow_lazy_user berakhir dengan pengguna anonim (paling sering, ketika kunjungan mesin pencari).
- perubahan Backwards-kompatibel:
- username Generated sekarang didasarkan pada kunci sesi, bukan benar-benar menjadi kunci sesi. Hal ini untuk menghindari masalah keamanan potensial di mana sebuah aplikasi mungkin hanya menampilkan nama pengguna, memberikan bagian penting dari kunci sesi pengguna. Nama pengguna kini dihasilkan dari hash SHA1 dari kunci sesi. Perubahan ini berarti bahwa ada pengguna yang dihasilkan akan menjadi tidak valid.
Apa yang baru dalam versi 0.3.0:
- Versi ini memperkenalkan perubahan mundur-kompatibel, mengubah nama & quot; @ allow_lazy & quot; dekorator ke & quot; @ allow_lazy_user & quot ;. Hal ini untuk menghindari kebingungan dengan dekorator dengan nama yang sama di & quot; django.utils.functional & quot;.
Persyaratan :
- Python
- Django
Keterbatasan :
- Django-lazysignup adalah perangkat lunak alpha. Bug laporan, patch dan ekstensi yang menyambut.
Komentar tidak ditemukan