如何在SalesForce中创建只读组

时间:2013-06-05 14:20:58

标签: salesforce apex-code salesforce-chatter

我想知道如何创建一个只读组+喜欢+评论,而不能发布除admin和所有者之外的成员 *如何在此组中发布使用触发器?。

我试过但它不起作用:

trigger N_GroupReadOnly on FeedItem (before insert) {

ID groupId = [Select Id from CollaborationGroup where Name = 'Group_ReadOnly'].Id;
CollaborationGroup ownerId = [Select OwnerId From CollaborationGroup Where Name = 'Group_ReadOnly'];
for(FeedItem item : trigger.new){
    if((item.ParentId == groupId) && (item.InsertedById != ownerId.OwnerId)){
        system.debug('you can not add post in this group');
        alert("you can not add post in this group");
        delete item ;
        return;
    }
    else{
        insert item;
    }
}

}

谢谢。

1 个答案:

答案 0 :(得分:0)

解决方案:

as per this developerforce.com forum entry:

<强>触发

trigger GroupReadOnly on FeedItem (before insert) {    

    CollaborationGroup gp = [Select OwnerId, Id From CollaborationGroup Where Name = 'Group_ReadOnly'];

    List<FeedItem> feedItems = new List<FeedItem>();

    for(FeedItem item : trigger.new){
        if(item.ParentId == gp.Id)
        {
            feedItems.add(item);
        }      
    }
   if(feedItems.size() >0) GroupReadOnlyClass.FilterFeedItems(feedItems);

}

<强>类

public class GroupReadOnlyClass{    
    public static void FilterFeedItems(List<FeedItem> feedItems){

        CollaborationGroup gp = [Select OwnerId, Id From CollaborationGroup Where Name = 'Group_ReadOnly'];

        for(FeedItem item :feedItems){
            if(item.ParentId == gp.Id)
             {
                if(UserInfo.getUserId()!= gp.OwnerId){
                    item.addError('You cannot post! Just Owner can post in this group');                    
                }        
            }
        }

    }
}