मैं कुछ एसीएल आवश्यकताओं के साथ एक वेब अनुप्रयोग लिख रहा हूं: कोई उपयोगकर्ता कुछ वस्तुओं में बदलाव कर सकता है, कुछ आइटम कई उपयोगकर्ताओं द्वारा संपादन योग्य हो सकते हैं, व्यवस्थापक कुछ भी संपादित कर सकता है और प्रबंधक अपने संगठन आदि के भीतर सब कुछ संपादित कर सकता है।प्राधिकरण मॉडल या नियंत्रक का हिस्सा होना चाहिए?
मैं Play का उपयोग कर रहा हूँ! ढांचे, और Secure
मॉड्यूल के रूप में, ऐसा लगता है कि प्राधिकरण चिंताओं को रखने की जगह नियंत्रकों में है। हालांकि, मुझे ऐसा लगता है कि प्राधिकरण मुद्दे व्यापार तर्क का हिस्सा हैं, और इसलिए मॉडल में होना चाहिए। इसके अलावा, मैं उन नियंत्रकों में डुप्लिकेट तर्क देखना शुरू कर रहा हूं जिन्हें मुझे पुनः प्रतिक्रिया करने की आवश्यकता है।
दूसरी ओर, मॉडल को प्राधिकरण जोड़ने का मतलब है कि मुझे वर्तमान उपयोगकर्ता को मॉडल के भीतर से प्राप्त करने का कोई तरीका होना चाहिए, जो सही नहीं लगता है। वैकल्पिक रूप से, मैं प्रत्येक मॉडल विधि में "current_user" पैरामीटर जोड़ सकता हूं, लेकिन यह और भी बदतर लगता है।
तो आम अभ्यास क्या है? क्या मैं मॉडल में प्राधिकरण कोड डाल सकता हूं, या इसे नियंत्रक में रख सकता हूं?
तो यह कौन सा है, ग्रे क्षेत्र, या बिल्कुल सही? :) – itsadok
मेरी राय में, मुझे लगता है कि यह बिल्कुल सही है, हालांकि, यह एक भूरा क्षेत्र है और इसलिए व्याख्या के लिए खुला है।इसलिए, यह इस बात पर निर्भर करता है कि आप मेरी व्याख्या से सहमत हैं या नहीं: o) – Codemwnci