2010-06-22 13 views
10

GAE में, क्या यह पता लगाने का कोई तरीका है कि User एक व्यवस्थापक है?Google ऐप इंजन - पता लगाएं कि कोई उपयोगकर्ता व्यवस्थापक है

is_current_user_admin() का पता चलता है जबकि मौजूदा उपयोगकर्ता व्यवस्थापक हो या नहीं, मैं वहाँ अगर किसी दिए गए User वस्तु या किसी व्यवस्थापक के लिए है नहीं है (जैसे एक काल्पनिक User.is_admin() समारोह) की खोज करने का कोई तरीका है पता करना चाहते हैं।

पढ़ने के लिए धन्यवाद।

ब्रायन

+0

स्पष्ट रूप से यह बदल गया है क्योंकि आपने जवाब स्वीकार कर लिया है। कृपया http://stackoverflow.com/a/9103942/94363 – rds

उत्तर

5

दुर्भाग्य से, User मॉडल किसी भी जानकारी के बारे में है कि क्या उपयोगकर्ता व्यवस्थापक हो या नहीं शामिल नहीं है।

यदि आपकी व्यवस्थापकों की सूची निरंतर बदलती है, तो आप अपना खुद का is_admin() फ़ंक्शन लिख सकते हैं जो यह देखने के लिए जांचता है कि User.user_id() मान आपके व्यवस्थापकों के खातों में से किसी एक के अनुरूप है। उदाहरण के लिए:

ADMIN_USER_IDS = ['id1', 'id2', ...] # manually populated list 
def is_admin(user): 
    return user.user_id() in ADMIN_USER_IDS 
1

यह संभव नहीं है।

आप users.User के चारों ओर एक आवरण वर्ग बना सकते हैं और की है या नहीं, यह है कि उपयोगकर्ता पिछली बार वह/वह में लॉग इन के रूप में, एक प्रशासक था ट्रैक रख सकते हैं। (आप निर्धारित नहीं कर सकते हैं उसे किसी उपयोगकर्ता है कि क्या वर्तमान में एक व्यवस्थापक, जब तक कि वह उपयोगकर्ता वर्तमान में ग्राहक नहीं है।)

Google App Engine की व्यवस्थापक स्थिति का उपयोग करना कुछ हद तक सीमित है - उदाहरण के लिए, यदि आप सामान्य से अधिक विशेषाधिकारों के साथ एक नया उपयोगकर्ता समूह बनाना चाहते हैं लेकिन काफी नहीं व्यवस्थापक के रूप में उच्च के रूप में? प्रशासन कंसोल में विशेषाधिकारों के साथ अपने ऐप में विशेषाधिकारों को भंग करना सबसे अच्छा नहीं है।

3

यह संभव है, लेकिन उपयोगकर्ता ऑब्जेक्ट के माध्यम से नहीं, और यह केवल जावा एपीआई में दिखाई देता है, न कि पाइथन में।

UserService userService = UserServiceFactory.getUserService(); 
boolean adminUser = userService.isUserAdmin(); 
+0

साफ देखें। क्या यह पायथन में उपलब्ध है? –

+0

यह पाइथन 'is_current_user_admin()' जैसा ही है। यह आपको वर्तमान उपयोगकर्ता के अलावा किसी उपयोगकर्ता की व्यवस्थापक स्थिति की जांच करने की अनुमति नहीं देता ** –

संबंधित मुद्दे