Esempio n. 1
0
    def update(self, users):
        UserInGroup.delete_many({'group_name': self.group_name})

        user_in_group_data = []
        unique_users = set(users)
        for userid in unique_users:

            doc = {'userid': userid, 'group_name': self.group_name}
            user_in_group_data.append(doc)
        UserInGroup.insert_many(user_in_group_data)
        return True
Esempio n. 2
0
    def update(self, users):
        UserInGroup.delete_many({'group_name' : self.group_name})

        user_in_group_data = []
        unique_users = set(users)
        for userid in unique_users:

            doc = {
                'userid': userid,
                'group_name': self.group_name
            }
            user_in_group_data.append(doc)
        UserInGroup.insert_many(user_in_group_data)
        return True
Esempio n. 3
0
 def insert(self):
     # Overriding insert can ensure concurrency of user_in_group data on updates too
     # This is because insert is currently invoked by update
     if super(User, self).insert():
         # Create user-group mappings on successful insert
         uigs = []
         cached_group_lookups = {}
         if getattr(self, 'groups', None) is not None:
             for group_name in self.groups:
                 if group_name not in cached_group_lookups:
                     group = Group(group_name)
                     if not group.exists_in_db():
                         cached_group_lookups[group_name] = group.insert()
                 uig = {'userid': self.userid, 'group_name': group_name}
                 uigs.append(uig)
             UserInGroup.insert_many(uigs)
         return True
     return False
Esempio n. 4
0
 def insert(self):
     # Overriding insert can ensure concurrency of user_in_group data on updates too
     # This is because insert is currently invoked by update
     if super(User, self).insert():
         # Create user-group mappings on successful insert
         uigs = []
         cached_group_lookups = {}
         if getattr(self, 'groups', None) is not None:
             for group_name in self.groups:
                 if group_name not in cached_group_lookups:
                     group = Group(group_name)
                     if not group.exists_in_db():
                         cached_group_lookups[group_name] = group.insert()
                 uig = {'userid': self.userid, 'group_name': group_name}
                 uigs.append(uig)
             UserInGroup.insert_many(uigs)
         return True
     return False