Stored Procedures [dbo].[Forum_Moderate_Approve]
Properties
PropertyValue
ANSI Nulls OnYes
Quoted Identifier OnYes
Parameters
NameData TypeMax Length (Bytes)
@PostIDint4
@ApprovedByint4
@Notesnvarchar(1024)2048
SQL Script


CREATE PROCEDURE dbo.[Forum_Moderate_Approve]
    (
      @PostID INT,
      @ApprovedBy INT,
      @Notes NVARCHAR(1024)
    )
AS
    DECLARE @UserID INT
    DECLARE @ForumID INT
    DECLARE @ThreadID INT
    DECLARE @GroupID INT
    DECLARE @PortalID INT
    DECLARE @IsPinned BIT
    DECLARE @PinnedDate DATETIME
    DECLARE @PollID INT
    -- first make sure that the post is ALREADY non-approved
    IF ( SELECT IsApproved
         FROM   dbo.Forum_Posts
         WHERE  PostID = @PostID
       ) = 1
        BEGIN
            SELECT  -1
            RETURN
        END
    ELSE
        BEGIN
        -- Approve the post
            UPDATE  dbo.Forum_Posts
            SET     IsApproved = 1,
                    IsLocked = 0,
                    DateApproved = GETDATE()
            WHERE   PostID = @PostID    

            SELECT  @UserID = UserID,
                    @ThreadID = ThreadID
            FROM    dbo.Forum_Posts
            WHERE   PostID = @PostID

            SELECT  @ForumID = ForumID,
                    @IsPinned = IsPinned,
                    @PinnedDate = PinnedDate,
                    @PollID = PollID
            FROM    dbo.Forum_Threads
            WHERE   ThreadID = @ThreadID

            SELECT  @GroupID = FG.GroupID,
                    @PortalID = PortalID
            FROM    dbo.Forum_Forums FF
                    INNER JOIN dbo.Forum_Groups FG ON FF.GroupID = FG.GroupID
            WHERE   ForumID = @ForumID
        
            -- Update the user's post count
            EXEC dbo.Forum_AA_UserPostCountUpdate @UserID, @PortalID
            -- update thread if the current post is a reply
            IF @ThreadID <> @PostID
                BEGIN
                    EXEC dbo.Forum_AA_ThreadUpdate @ThreadID, @PostID,
                        @IsPinned, @PinnedDate, 'postadd', @PollID
                END        
            
            EXEC dbo.Forum_Moderate_AddHistory @PostID, @PortalID, @ApprovedBy,
                @Notes, 1
                        
            EXEC dbo.Forum_Forum_PostAdded @ForumID, @ThreadID, @PostID,
                @UserID, 'approve'
                
            SELECT  @GroupID
        END

GO
Uses
Used By