using SiberTek.Xenta.Entities;
using SiberTek.Xenta.Managers;
namespace SiberTek.Xenta.Extensions
{
/// <summary>
/// Contains permission manager extension methods
/// </summary>
public static class ForumPermissionManagerExtesion
{
#region Methods
public static bool IsUserHasForumPermission(this PermissionManager mgr, int forumID, int userID, int code)
{
UserInfo user = UserManager.Instance.GetUser(userID);
PermissionInfo permission = mgr.GetPermissionByCode(code);
bool res = false;
if(user != null && permission != null)
{
foreach(RoleInfo role in user.Roles)
{
if(role.IsActive && ForumManager.Instance.IsRoleAssignedToForum(forumID, role.RoleID) && mgr.IsPermissionAssignedToRole(role.RoleID, permission.PermissionID))
{
res = true;
break;
}
}
}
return res;
}
public static bool IsUserHasForumTopicPermission(this PermissionManager mgr, int topicID, int userID, int code)
{
UserInfo user = UserManager.Instance.GetUser(userID);
PermissionInfo permission = mgr.GetPermissionByCode(code);
bool res = false;
if(user != null && permission != null)
{
foreach(RoleInfo role in user.Roles)
{
if(role.IsActive && ForumTopicManager.Instance.IsRoleAssignedToForumTopic(topicID, role.RoleID) && mgr.IsPermissionAssignedToRole(role.RoleID, permission.PermissionID))
{
res = true;
break;
}
}
}
return res;
}
#endregion
}
}