প্রশাসকরা কী পাসওয়ার্ড ছাড়াই নতুন অ্যাকাউন্ট তৈরি করতে পারে?


10

যখন কোনও প্রশাসক একটি নতুন অ্যাকাউন্ট তৈরি করে (প্রশাসক / লোক / তৈরি), তাদের অ্যাকাউন্টের জন্য একটি পাসওয়ার্ড প্রবেশ করার অনুরোধ জানানো হয়। আমার ক্লায়েন্টটি এটি হতে চায় যে কোনও অ্যাকাউন্ট যখন পিছনের প্রান্তে তৈরি করা হয়, প্রশাসকটিকে কোনও পাসওয়ার্ড প্রবেশ করতে হয় না, তবে ব্যবহারকারীকে এক-সময় লগ-ইন লিঙ্ক সহ একটি বিজ্ঞপ্তি বার্তা প্রেরণ করা হয় এবং তারপরে একটি সেট সেট করতে পারেন এটি ব্যবহার করে লগ ইন করার পরে পাসওয়ার্ড। এরকম কিছু অর্জনের সর্বোত্তম উপায় কী?

আমি সম্ভবত #default_valueর্যান্ডম পাসওয়ার্ডে পাসওয়ার্ডের ক্ষেত্রগুলির সেটটি ফর্মটি পরিবর্তন করার এবং তারপরে সেটিংয়ের '#access' => FALSEকথা ভেবেছিলাম, তবে আমি নিশ্চিত নই যে এটির সম্পর্কে সবচেয়ে ভাল উপায় if

উত্তর:


3

এটি একটি মডিউল আছে।

উত্পন্ন পাসওয়ার্ড চেক আউট ।

এটি কনফিগারেশন »লোক» অ্যাকাউন্ট সেটিংসে এই অতিরিক্ত সেটিংটি প্রবর্তন করে :

ব্যবহারকারীরা নিবন্ধকরণে একটি পাসওয়ার্ড প্রবেশ করতে পারেন। খালি রাখলে, একটি এলোমেলো পাসওয়ার্ড তৈরি করা হবে। কোনও প্রশাসক যখন অ্যাকাউন্ট তৈরি করছেন তখন এটি সর্বদা প্রযোজ্য।

তারপরে, অ্যাকাউন্টটি তৈরি করার সময়, পাসওয়ার্ড ক্ষেত্রটি খালি রেখে দিন, তবে নিশ্চিত করুন যে আপনি "ব্যবহারকারী যুক্ত করুন" পৃষ্ঠায় এই চেকবক্সটিও পরীক্ষা করেছেন:

নতুন অ্যাকাউন্টের ব্যবহারকারীকে অবহিত করুন

এই দুটি সেটিংসের ফলাফল হ'ল প্রশাসক কোনও অ্যাকাউন্ট তৈরি করার সময় মডিউলটি একটি এলোমেলো পাসওয়ার্ড তৈরি করে এবং ব্যবহারকারীকে অ্যাকাউন্ট সম্পর্কে একটি বিজ্ঞপ্তি সহ একটি ইমেল প্রেরণ করা হয় এবং এতে অন্তর্ভুক্ত থাকা এক-সময় লগইন লিঙ্কে একটি পাসওয়ার্ড সেট করতে অনুরোধ করা হয় বিজ্ঞপ্তিতে

এটি কীভাবে হয় তা শিখতে চাইলে সোর্স কোডটি পড়ুন।


2
এই মডিউলটির কোডের প্রথম লাইনগুলি প্রতিটি পৃষ্ঠা লোডে ব্যবহার hook_init()করছে drupal_add_css()... এটি কোরটিরও সদৃশ user_password()। গন্ধ পরীক্ষায় উত্তীর্ণ হয় না।
গ্যারেট অ্যালব্রাইট

সম্মতি জানুন, @ গ্যারেট অলব্রাইট - ভাবেন জেনপাসকে উন্নত করার (এবং সরলকরণ) বা একটি নতুন মডিউল তৈরি করার অর্থ কি? ... বা এটি কোনও বিদ্যমান অ্যাডমিন অভিজ্ঞতা মডিউলে ফিট করে?
mlncn

অ্যাডমিনকে কত ঘন ঘন এটি করতে হয়? আমার ক্ষেত্রে এটি কিছুটা এরকম: প্রতি অন্য মাসে। এর অর্থ আমি জেনপাসের সাথে অতি-অনুকূলিত না হয়ে থাকতে পারি। আপনি যদি সবসময় এটি করে থাকেন তবে আপনি জেনপাসকে উন্নত করতে বা আরও ভাল মডিউলটি লেখার জন্য কিছুটা সময় ব্যয় করতে চাইতে পারেন।
ফ্রি র‌্যাডিকাল

আমি নির্দিষ্টকরণগুলি স্মরণ করতে পারি না, তবে আইআইআরসি আমি আমার ওপিতে আমি যে পদ্ধতির উল্লেখ করেছি তা গ্রহণ করেছি; পাসওয়ার্ড ক্ষেত্রটি লুকিয়ে রাখা এবং কেবল এলোমেলোভাবে ব্যবহার করে একটি user_password(mt_rand(10, 50))বা ফর্ম জমা দেওয়ার সময় এমন কিছু সেট করা ।
গ্যারেট অ্যালব্রাইট

@ ফ্রি র‌্যাডিকাল যদি এটি প্রতিটি পৃষ্ঠার লোডে সিএসএস যুক্ত করে, তবে আপনি কীভাবে বৈশিষ্ট্যটি ব্যবহার করেন তা অবশ্যই গুরুত্বপূর্ণ নয় - এটি পরিবেশন করা প্রতিটি পৃষ্ঠা হ্রাস করবে
অ্যাডামস

3

যদি আপনি "উত্পন্ন পাসওয়ার্ড" মডিউলটি ইনস্টল করতে আগ্রহী না হন এবং হুক ব্যবহার করে স্বাচ্ছন্দ্য বোধ করেন, তবে এখানে একটি বিকল্প রয়েছে:

/**
 * Implements hook_form_FORM_ID_alter().
 *
 * Remove the password field when admin is creating an account.
 */
function HOOK_form_user_register_form_alter(&$form, &$form_state, $form_id) {
  if ($form['administer_users']['#value']) {
    $form['account']['pass']['#access'] = FALSE;
    $form['account']['pass']['#value']['pass1'] = user_password();
    $form['account']['pass']['#value']['pass2'] = $form['account']['pass']['#value']['pass1'];
  }
}

আপনি এটি আপনার স্বাদকে আরও পরিশীলিত করতে পারেন। যেহেতু এটি দাঁড়ায় এটি সর্বদা পাসওয়ার্ড ক্ষেত্রটি গোপন করে এবং পরিবর্তে একটি মান সরবরাহ করে - অ্যাডমিনকে একটি নির্দিষ্ট মান সেট করতে নতুন অ্যাকাউন্টটি সম্পাদনা করতে হবে। এছাড়াও এটি "অবহিত" ডিফল্টটিকে বন্ধ করে দেয়, যেখানে আপনি পছন্দ করতে পারেন।

@ জো_ফ্ল্যাশ উত্তর অনুসারে আপডেট হয়েছে (তবে কিছুটা আরও কমপ্যাক্ট আকারে): উপাদানটি প্রক্রিয়া করার পরে পাসওয়ার্ড ক্ষেত্রটি দুটি উপফিল্ডে ("পাস 1" এবং "পাস 2") প্রসারিত হবে।


1

অ্যাডামসের উত্তর প্রায় আছে। যেহেতু উপাদানটি প্রক্রিয়া করা হয় তখন পাসওয়ার্ড ক্ষেত্রটি দুটি উপক্ষেত্র ("পাস 1" এবং "পাস 2") তে প্রসারিত হবে ( form_process_password_confirm()), আপনার এমন কিছু দরকার:

/**
 * Implements hook_form_FORM_ID_alter().
 */
function acfo_common_form_user_register_form_alter(&$form, &$form_state, $form_id) {
  // Do special for user admins.
  if ($form['administer_users']['#value']) {
    // Default to sending user an account creation notification.
    $form['account']['notify']['#default_value'] = 1;

    // We'll send a one-time login link in lieu of setting a password here.
    $pass = user_password();
    $form['account']['pass']['#value'] = array(
      'pass1' => $pass,
      'pass2' => $pass,
    );
    $form['account']['pass']['#access'] = FALSE;
  }
}

ধন্যবাদ আমি আমার উত্তর আপডেট করেছি (এবং আপনাকে ক্রেডিট দিয়েছি!) দেখা যাচ্ছে যে আমার সার্ভারে ইতিমধ্যে আমার কাছে ওয়ার্কিং কোড ছিল তবে ভুল করে ভুল করে উত্তরটিতে অবশ্যই পুরানো সংস্করণটি অনুলিপি করে ফেলতে হবে sorry
অ্যাডামস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.