hi आमतौर पर एक कोडाइनिटर एमवीएक्स कंट्रोलर एक आईडी को एक नियंत्रक फ़ंक्शन के पैरामीटर के रूप में स्वीकार करता है। उदाहरण के लिए: / फोटो / संपादित करें / 1
एक उपयोगकर्ता फोटो से छवि आईडी 1 को संपादित करेगानियंत्रक। उपयोगकर्ता को किसी और की छवि को संपादित करने से रोकने के लिए सबसे अच्छा अभ्यास क्या है। उदाहरण के लिए आईडी 2 का संपादन करना? प्रतिबंध में एक लॉग इन उपयोगकर्ता को सत्यापित करने से अधिक शामिल है, क्योंकि एक लॉग इन उपयोगकर्ता अभी भी छवि 2 को संपादित करने में सक्षम होगा।
मैं सोच रहा था कि मैं एक पुस्तकालय लिखूंगा किएक अनुमति फ़ंक्शन लागू करता है, जिसे सभी नियंत्रक कार्यों पर कहा जाता है। मैं उपयोगकर्ता आईडी और url को लाइब्रेरी फ़ंक्शन में पास करूंगा जिसमें यह सत्यापित करने के लिए तर्क होगा कि क्या उपयोगकर्ता उस फ़ंक्शन को निष्पादित कर सकता है या इस मामले में एक छवि को संपादित कर सकता है।
मुझे जो समस्या दिख रही है..यह मेरी साइट के सभी कार्यों के लिए तर्क कोड लिखने के लिए थकाऊ होगा, क्योंकि प्रत्येक अलग तर्क है। क्या कोई बेहतर तरीका है?
उत्तर:
जवाब के लिए 3 № 1आप आम तौर पर चेक इन संभालते हैंनियंत्रक ही, इसलिए, उदाहरण के लिए, आपने वर्तमान में उपयोगकर्ता में लॉग इन किया है, और db से फोटो ऑब्जेक्ट, बस फोटो को db रिकॉर्ड में मालिक के रूप में संग्रहीत करें और उनकी तुलना करें।
यह वास्तव में यह सब थकाऊ नहीं है, आप बस उस पर कार्रवाई करने से पहले ऑब्जेक्ट के स्वामित्व की पुष्टि कर रहे हैं।
उदाहरण...
if ($the_user->id == $the_photo->owner_id) {
//allow their actions
}
else {
redirect("/"); //if not, kick em out
}