Changeset 91

Show
Ignore:
Timestamp:
03/26/08 22:06:04 (8 months ago)
Author:
pragma
Message:

Fixed visibility problem for guests on forum index

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/tracforums/models/forum.py

    r87 r91  
    5959                     
    6060    def format(self): 
    61         print """Custom Format""",self 
    6261        self.canModify = toBool(self._canModify()) 
    6362        self.canAppend = toBool(self._canAppend()) 
     
    6766                 
    6867    def _canView(self): 
    69         if not self.formatContext.isForumUser(): return False 
     68        if not self.formatContext.isForumGuest(): return not self.hidden 
    7069        elif self.formatContext.isForumAdmin(): return True 
    7170        elif self.formatContext.getAuthname() in self.moderators: return True 
  • trunk/tracforums/models/main.py

    r87 r91  
    3737        from tracforums.models.watch    import ProjectWatchModelWithProfile 
    3838         
     39        #filter visibiltiy for security 
     40        categoriesWithForums = [] 
     41        for category in CategoryModelWithForums(self.db,self).getMany({"projectid": self.getProjectId()}): 
     42            categoryForums = [] 
     43            for forum in category.forums: 
     44                if forum.canView: categoryForums.append(forum) 
     45            if len(categoryForums) > 0: 
     46                category.forums = categoryForums 
     47                categoriesWithForums.append(category)        
     48         
     49        #filter visibiltiy for security 
     50        plainForums = [] 
     51        for forum in ForumModelWithRecentPost(self.db,self).getMany({"projectid": self.getProjectId(),"categoryid":0}): 
     52            if forum.canView: plainForums.append(forum) 
     53         
     54         
    3955        return ("main/index.cs",{ 
    4056            "returnto": "main/index", 
    4157            "validateErrors": validateErrors, 
    4258            "canManage": self.isForumAdmin(), 
    43             "categories": CategoryModelWithForums(self.db,self).getMany({"projectid": self.getProjectId()})
    44             "forums": ForumModelWithRecentPost(self.db,self).getMany({"projectid": self.getProjectId(),"categoryid":0})
     59            "categories": categoriesWithForums
     60            "forums": plainForums
    4561            "watching": ProjectWatchModelWithProfile(self.db,self).getMany({"projectid": self.getProjectId()}), 
    4662        })