গ্রাহকের পাসওয়ার্ড পরিবর্তনের জন্য ইভেন্ট / পর্যবেক্ষক?


10

গ্রাহকরা তাদের পাসওয়ার্ড পরিবর্তন করার ইভেন্টে intoুকে যাওয়ার উপায় খুঁজছি looking সুতরাং যদি কেউ গ্রাহকের সীমানায় পাসওয়ার্ড পরিবর্তন করে তবে আমি কোথাও একটি ইমেল প্রেরণ করতে চাই।

আমি http://www.nicksays.co.uk/magento-events-cheat-sheet-1-7/ এ তালিকার উপরের পরামর্শটি দিয়েছিলাম তবে পাসওয়ার্ড পরিবর্তনের জন্য কোনও কিছুই দেখে মনে হচ্ছে না।


কোনও গ্রাহক যখন তার পাসওয়ার্ড ব্যবহার করে পুনরায় সেট করেন তখন কোন পর্যবেক্ষক / ইভেন্টটি ব্যবহার করবেন /customer/account/resetpassword/?id=ab&token=xyz?
oschloebe

উত্তর:


9

ফ্যাবিয়ান ব্লেশমিডকে ধন্যবাদ, আমি নিম্নলিখিতগুলি নিয়ে এসেছি যা আমার জন্য কাজ করে (ইভেন্টটি ব্যবহার করে customer_save_before):

public function detectPwdChange(Varien_Event_Observer $observer) {
    $event              = $observer->getEvent();
    $customer           = $event->getCustomer();
    $postData           = Mage::app()->getRequest()->getPost();

    if($customer instanceof Mage_Customer_Model_Customer && !$customer->isObjectNew()) {

        if( $postData['change_password'] == 1 && $postData['current_password'] != $postData['password'] ) {
            // Do something
        }
    }

    return $this;
}

পোস্টটিতে অনুরোধটি আমি পছন্দ করি না তবে এটি যদি কাজ করে তবে দুর্দান্ত :-)
ফ্যাবিয়ান ব্ল্যাচসমিড

হ্যাঁ, এটি কাজ করে। :-) আমি পাসওয়ার্ড পাওয়ার জন্য বেশ কয়েকটি পদ্ধতি অন-সহায়ক ফাংশন চেষ্টা করেছিলাম তবে পাসওয়ার্ডের হ্যাশটিই আমি পুনরুদ্ধার করতে সক্ষম হয়েছি তবে এটি আমার সরল পাঠযোগ্য এবং এটিই পোস্টের অবজেক্টটি প্রস্তাব করেছিল। আবার ধন্যবাদ!
oschloebe

পাসওয়ার্ডের সাথে অদ্ভুত জিনিসগুলি যেমন প্লেইন টেক্সট বা খারাপ ক্রিপ্টোতে সংরক্ষণ করার মতো করবেন না ;-)
ফ্যাবিয়ান ব্ল্যাচসমিড

1
আমি করব না, প্রতিশ্রুতি দিয়েছি! এটি কেবল PRISM এ প্রেরণ করা হচ্ছে। ;-)
oschloebe

এটি কেবলমাত্র passwordএবং confirmationপোস্ট ডেটা হিসাবে পাসওয়ার্ড পুনরায় সেট করার জন্য কাজ করে না। v1.9
pHiL 16'16

5

কোডটি একবার দেখুন।

আপনি customer_save_afterইভেন্টটি ব্যবহার করতে পারেন এবং কেবল পরীক্ষা করতে পারেন

/app/code/core/Mage/Customer/controllers/AccountController.php:724
$customer->setChangePassword(1);

হতে পারে এই মানটি পুনরায় সেট করা হয়, তারপরে আপনাকে ব্যবহার করতে হবে save_beforeতবে আমি সংরক্ষণের পরে মেলটি প্রেরণের পরামর্শ দিচ্ছি। সুতরাং এই মানটি যদি পরবর্তী ইভেন্টে না পঠনযোগ্য হয়, তবে পরবর্তী ইভেন্টটিতে এটি হাতে পেতে এটি অন্য কোনও বৈশিষ্ট্যে অনুলিপি করুন।


ধন্যবাদ এখন পর্যন্ত। আমি যতদূর দেখতে পাচ্ছি ইভেন্টটি যখন কোনও গ্রাহক সাফল্যের সাথে নিবন্ধিত হয় তখন এটিও ট্রিগার হয়। গ্রাহকটি ইতিমধ্যে নিবন্ধিত হয়েছে এবং পাসওয়ার্ডটি আসলে পরিবর্তিত হয়েছে কিনা তা আমি কীভাবে পরীক্ষা করতে পারি?
oschloebe

_পূর্বে ইভেন্টে আপনি কোনও আইডি ইতিমধ্যে অবজেক্টটিতে উপস্থিত আছে কিনা তা যাচাই করতে পারবেন
ফ্যাবিয়ান ব্ল্যাচসমিড

4

আমি অনুরূপ কিছু করতে চেয়েছিলাম, তবে আমি তার কোডটি দিয়ে শেষ করেছি:

আমি উপর hooked controller_action_postdispatch_customer_account_resetpasswordpost

function resetpasswordpost(Varien_Event_Observer $observer) {
    $customer_id = Mage::app()->getRequest()->getParam('id');
    $customer = Mage::getModel('customer/customer')->load($customer_id);
}

নিজেই পাসওয়ার্ড নিয়ে ভুল করার চেয়ে কিছুটা পরিচ্ছন্ন ও "নিরাপদ", আমার মনে হয়!


Mage::app()->getRequest()->getParam('id')এই ইভেন্টে নাল। প্রিজিপ্যাচে। passwordএবং confirmationএটি উপলব্ধ Mage::app()->getRequest()->getParams()। (V1.9 দিয়ে পরীক্ষিত)
পিএইচআইএল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.