Beispiel #1
0
def update_person_product_access_txn(person_key, product_key, level):
  key = ProductAccess.key_for(person_key, product_key)
  a = db.get(key)
  if not a:
    a = ProductAccess(key_name=key.name(), person=person_key, product=product_key)
  a.level = level
  a.put()
Beispiel #2
0
 def fetch(self):
   self.people_authorizations = self.account.people_authorizations.fetch(100)
   self.people = map(lambda a: a.person, self.people_authorizations)
   for a in self.people_authorizations:
     a.person.account_access = a
   self.people_project_authorizations = ProductAccess.all().filter('person IN', self.people).fetch(1000)
   auth_list_by_person_key = group(lambda a: a.person.key(), self.people_project_authorizations)
   for person in self.people:
     try:
       person.product_authorization = index(lambda a: a.product.key(), auth_list_by_person_key[person.key()])
     except KeyError:
       person.product_authorization = {}
     
   self.products = self.account.products.fetch(100)
   
   for person in self.people:
     for product in self.products:
       if not product.key() in person.product_authorization:
         person.product_authorization[product.key()] = ProductAccess(key_name=ProductAccess.key_for(person.key(), product.key()).name(),
           person=person, product=product, level=(ACCESS_READ if product.public_access else ACCESS_NONE))