From 654a9cae43358c7eecf3b522e9876aa7815e2453 Mon Sep 17 00:00:00 2001 From: Fabio Bas Date: Mon, 7 Dec 2015 15:57:51 +0100 Subject: Move urls from pradosoft.com to github's project page; drop unmaintained quickstart tutorial translations --- .../protected/pages/Day3/id/CreateNewUser.page | 210 --------------------- 1 file changed, 210 deletions(-) delete mode 100755 demos/blog-tutorial/protected/pages/Day3/id/CreateNewUser.page (limited to 'demos/blog-tutorial/protected/pages/Day3/id/CreateNewUser.page') diff --git a/demos/blog-tutorial/protected/pages/Day3/id/CreateNewUser.page b/demos/blog-tutorial/protected/pages/Day3/id/CreateNewUser.page deleted file mode 100755 index d90df01f..00000000 --- a/demos/blog-tutorial/protected/pages/Day3/id/CreateNewUser.page +++ /dev/null @@ -1,210 +0,0 @@ - - -

Membuat Halaman NewUser

- -

-Halaman NewUser disediakan untuk pengguna administrator guna membuat akun pengguna baru. Ini perlu menampilkan sebuah formulir yang mengumpulkan informasi mengenai akun pengguna baru. Berdasarkan definisi database, kita akan perlu mengumpulkan informasi berikut: -

- - - -

-Kita membuat dua file protected/pages/users/NewUser.page dan protected/pages/users/NewUser.php masing-masing untuk menyimpan template halaman dan kelas halaman. -

- -

Membuat Template Halaman

-

-Berdasarkan pada analisis di atas, kita menulis template halaman seperti berikut: -

- - -<%@ Title="My Blog - New User" %> - -<com:TContent ID="Main"> - -

Create New User

- -Username: -<com:TRequiredFieldValidator - ControlToValidate="Username" - ErrorMessage="Please provide a username." - Display="Dynamic" /> -<com:TCustomValidator - ControlToValidate="Username" - ErrorMessage="Sorry, your username is taken by someone else. Please choose another username." - OnServerValidate="checkUsername" - Display="Dynamic" /> -
-<com:TTextBox ID="Username" /> - -
-Password: -<com:TRequiredFieldValidator - ControlToValidate="Password" - ErrorMessage="Please provide a password." - Display="Dynamic" /> -
-<com:TTextBox ID="Password" TextMode="Password" /> - -
-Re-type Password: -<com:TCompareValidator - ControlToValidate="Password" - ControlToCompare="Password2" - ErrorMessage="Your password entries did not match." - Display="Dynamic" /> -
-<com:TTextBox ID="Password2" TextMode="Password" /> - -
-Email Address: -<com:TRequiredFieldValidator - ControlToValidate="Email" - ErrorMessage="Please provide your email address." - Display="Dynamic" /> -<com:TEmailAddressValidator - ControlToValidate="Email" - ErrorMessage="You entered an invalid email address." - Display="Dynamic" /> -
-<com:TTextBox ID="Email" /> - -
-Role: -
-<com:TDropDownList ID="Role"> - <com:TListItem Text="Normal User" Value="0" /> - <com:TListItem Text="Administrator" Value="1" /> -</com:TDropDownList> - -
-First Name: -
-<com:TTextBox ID="FirstName" /> - -
-Last Name: -
-<com:TTextBox ID="LastName" /> - -
-<com:TButton Text="Create" OnClick="createButtonClicked" /> - -</com:TContent> -
- -

-Template tidak jauh berbeda dari template Contact dan halaman LoginUser. Sebagian besar terdiri dari kotak teks dan validator. Beberapa kotak teks, seperti nama pengguna, dikaitkan dengan dua validator karena keterlibatan aturan multipel validasi. -

- - -

Membuat Kelas Halaman

- -

-Dari template halaman di atas, kita melihat bahwa kita perlu untuk menulis sebuah kelas halaman yang mengimplementasikan dua pengendali event: checkUsername() (disertakan ke event validator kustom OnServerValidate) dan createButtonClicked() (disertakan ke event tombol "create" OnClick). Oleh karena itu, kita menulis kelas halaman seperti berikut: -

- - -class NewUser extends TPage -{ - /** - * Memeriksa apakah nama pengguna sudah ada dalam database. - * Metode ini merespon ke event OnServerValidate pada validator kustom nama pengguna. - * @param mixed event sender - * @param mixed event parameter - */ - public function checkUsername($sender,$param) - { - // benar jika nama pengguna tidak ditemukan dalam database - $param->IsValid=UserRecord::finder()->findByPk($this->Username->Text)===null; - } - - /** - * Membuat akun pengguna baru jika semua input benar. - * Metode ini merespon ke event OnClick pada tombol "create". - * @param mixed event sender - * @param mixed event parameter - */ - public function createButtonClicked($sender,$param) - { - if($this->IsValid) // ketika semua validasi sukses - { - // populasikan obyek UserRecord dengan input pengguna - $userRecord=new UserRecord; - $userRecord->username=$this->Username->Text; - $userRecord->password=$this->Password->Text; - $userRecord->email=$this->Email->Text; - $userRecord->role=(int)$this->Role->SelectedValue; - $userRecord->first_name=$this->FirstName->Text; - $userRecord->last_name=$this->LastName->Text; - - // simpan database melalui mekanisme Rekaman Aktif - $userRecord->save(); - - // alihkan browser ke homepage - $this->Response->redirect($this->Service->DefaultPageUrl); - } - } -} - - -

-Dalam kode di atas, memanggil save() akan menyisipkan baris baru dalam tabel users. Fitur intuitif ini dihidupkan oleh Rekaman Aktif. -

- - -Untuk memudahkan, nama pengguna dalam sistem blg kita adalah tidak sensitif-huruf! Dalam banyak sistem praktis, nama pengguna mungkin perlu sensitif-huruf. Maka penanganan khusus perlu dibuat saat pembuatan akun pengguna baru dan juga melakukan otentikasi. Juga, ruang kosong dalam nama pengguna perlu dipotong ketika membuat akun baru dengan itu. - - - -

Pengujian

-

-Untuk menguji halaman NewUser, kunjungi URL http://hostname/blog/index.php?page=users.NewUser. Kita akan melihat output halaman berikut. Coba masukan informasi berbeda ke dalam formulir dan lihat bagaimana input divalidasi. Jika semua aturan validasi memuaskan, kita akan mengharapkan akun pengguna dibuat dan browser dialihkan ke homepage. -

- - - - -

Menambahkan Pemeriksaan Perijinan

-

-Selama pengujian, Anda mungkin bertanya: apakah halaman NewUser seharusnya hanya bisa diakses oleh pengguna administrator? Ya, ini disebut otorisasi. Sekarang kami menjelaskan bagaimana kita menambahkan pemeriksaan perijinan ini ke halaman NewUser. -

- -

-Cara langsung pada pemeriksaan perijinan adalah dalam kelas halaman di mana kita memeriksa apakah $this->User->IsAdmin adalah true, dan jika tidak, kita mengalihkan browser ke halaman LoginUser. -

- -

-PRADO menawarkan cara lebih sistematis terhadap pemeriksaan perijinan akses halaman. Untuk melakukannyaTo , kita perlu menggunakan konfigurasi halaman. Membuat sebuah file protected/pages/users/config.xml dengan konten seperti berikut: -

- - - - - - - - - - - -

-Konfigurasi halaman berisi aturan otorisasi yang berlaku untuk halaman di bawah direktori protected/pages/users. Konfigurasi di atas terbaca bahwa para pengguna dalam role admin dapat mengakses semua halaman (lihat BlogUser.createUser() untuk mengapa harus kata "admin"). Untuk saat ini semua para pengguna lain (users="*") ditolak untuk mengakses halaman dalam direktori ini - kecuali untuk halaman LoginUser yang seharusnya selalu bisa diakses. -

- -

-Sekarang jika kita mengunjungi halaman NewUser sebagai seorang tamu, kita akan dialihkan ke halaman LoginUser terlebih dahulu. Jika kita masuk dengan sukses, kita akan mengalihkan kembali ke halamanNewUser. -

- - -Konfigurasi halaman dapat berisi lebih dari satu aturan otorisasi. Sebagai contoh, ia dapat menyertakan modul seperti yang ktia lakukan dalam konfigurasi aplikasi. Untuk aplikasi PRADO, setiap direktori halaman dapat mempunyai konfigurasi halaman yang berlaku bagi halaman dalam direktori yang sama dan seluruh subdirektorinya. - - -
\ No newline at end of file -- cgit v1.2.3