コード例 #1
0
ファイル: test_mod.py プロジェクト: mrmaple/open_qon
 def check_VoteableQueue(self):
     Group._min_sponsors = 1
     g = Group()
     g.user_id = 'group'
     g.name = 'The Group'
     u = User()
     g.add_owner(u)
     g.add_sponsor(u)
     gdb = GroupDB()
     gdb.add_group(g)
     
     self.test_val("gdb.mod_queue.get_items_by_state('voting')", [g])
     
     self.test_stmt("g.close_voting()")
     self.test_stmt("gdb.mod_queue.voting_closed(g)")
     self.test_val("g.get_state()", 'accepted')
     self.test_true("g in gdb.mod_queue.accepted")
     self.test_false("g in gdb.mod_queue.rejected")
     
     self.test_val("gdb.mod_queue.get_items_by_state('voting')", [])
コード例 #2
0
ファイル: group_db.py プロジェクト: mrmaple/open_qon
    def create_group(self, user_id, name, owner, description='',
        member_perms=[],
        other_perms=[],
        member_join_perms=[],
        other_join_perms=[],
        anon_read=0,
        no_pay=False):
        """Create a new group.
        
        member_perms, other_perms: see qon.group.HasAccessPolicy
        member_join_perms, other_join_Perms: see qon.group.HasMembership
        """
        
        user_id = user_id.lower()
        
        if self.root.has_key(user_id) or get_usergroup_database().has_key(user_id):
            raise KeyError, "Key %s already exists." % user_id

        if not no_pay:
            # charge owner for new group - don't create group if can't pay
            from qon.karma import NoKarmaToGive
            try:
                owner.pay_karma(self._karma_new_group)
            except NoKarmaToGive:
                return None

        group = Group(user_id=user_id, name=name, owner=owner)
        group.add_owner(owner)
        group.add_sponsor(owner)
        group.anon_read = anon_read
        group.description = description
        
        usergroup = UserGroup(group.user_id)
        get_usergroup_database().add_usergroup(usergroup)
        group.set_owning_group(usergroup)
        
        # members must have at least read access -- otherwise, what's the point of membership?
        mem_perms = member_perms
        if 'read' not in mem_perms:
            mem_perms.append('read')
        
        group.set_group_perms(mem_perms)
        group.set_other_perms(other_perms)
        group.get_members().set_group_perms(member_join_perms)
        group.get_members().set_other_perms(other_join_perms)
        
        # flush owner's group list cache
        self._flush_user_data_caches(owner)

        self.add_group(group)
        return group