public ActionResult JoinGroup(int roleId) { try { if (UserInfo.UserID >= 0 && roleId > 0) { var roleController = new RoleController(); roleInfo = roleController.GetRole(roleId, PortalSettings.PortalId); if (roleInfo != null) { var requireApproval = Convert.ToBoolean(roleInfo.Settings["ReviewMembers"].ToString()); if (roleInfo.IsPublic && !requireApproval) { roleController.AddUserRole(PortalSettings.PortalId, UserInfo.UserID, roleInfo.RoleID, Null.NullDate); roleController.UpdateRole(roleInfo); return(Json(new { Result = "success", URL = roleInfo.Settings["URL"] })); } if (roleInfo.IsPublic && requireApproval) { roleController.AddUserRole(PortalSettings.PortalId, UserInfo.UserID, roleInfo.RoleID, RoleStatus.Pending, false, Null.NullDate, Null.NullDate); Components.Notifications notifications = new Components.Notifications(); notifications.AddGroupOwnerNotification(Constants.MemberPendingNotification, TabId, ModuleId, roleInfo, UserInfo); return(Json(new { Result = "success", URL = string.Empty })); } } } } catch (Exception exc) { DnnLog.Error(exc); } return(Json(new { Result = "error" })); }
public ActionResult ApproveGroup(int notificationId) { try { var recipient = InternalMessagingController.Instance.GetMessageRecipient(notificationId, UserInfo.UserID); if (recipient == null) return Json(new { Result = "error" }); var notification = NotificationsController.Instance.GetNotification(notificationId); ParseKey(notification.Context); if (roleInfo == null) { return Json(new { Result = "error" }); } if (!IsMod()) { return Json(new { Result = "access denied" }); } var roleController = new RoleController(); roleInfo.Status = RoleStatus.Approved; roleController.UpdateRole(roleInfo); var roleCreator = UserController.GetUserById(PortalSettings.PortalId, roleInfo.CreatedByUserID); //Update the original creator's role roleController.UpdateUserRole(PortalSettings.PortalId, roleCreator.UserID, roleInfo.RoleID, RoleStatus.Approved, true, false); GroupUtilities.CreateJournalEntry(roleInfo, roleCreator); var notifications = new Notifications(); var siteAdmin = UserController.GetUserById(PortalSettings.PortalId, PortalSettings.AdministratorId); notifications.AddGroupNotification(Constants.GroupApprovedNotification, TabId, ModuleId, roleInfo, siteAdmin, new List<RoleInfo> { roleInfo }); NotificationsController.Instance.DeleteAllNotificationRecipients(notificationId); return Json(new { Result = "success" }); } catch (Exception exc) { DnnLog.Error(exc); return Json(new { Result = "error" }); } }
public HttpResponseMessage ApproveGroup(NotificationDTO postData) { try { var recipient = InternalMessagingController.Instance.GetMessageRecipient(postData.NotificationId, UserInfo.UserID); if (recipient == null) return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Unable to locate recipient"); var notification = NotificationsController.Instance.GetNotification(postData.NotificationId); ParseKey(notification.Context); if (_roleInfo == null) { return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Unable to locate role"); } if (!IsMod()) { return Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Not Authorized!"); } _roleInfo.Status = RoleStatus.Approved; RoleController.Instance.UpdateRole(_roleInfo); var roleCreator = UserController.GetUserById(PortalSettings.PortalId, _roleInfo.CreatedByUserID); //Update the original creator's role RoleController.Instance.UpdateUserRole(PortalSettings.PortalId, roleCreator.UserID, _roleInfo.RoleID, RoleStatus.Approved, true, false); GroupUtilities.CreateJournalEntry(_roleInfo, roleCreator); var notifications = new Notifications(); var siteAdmin = UserController.GetUserById(PortalSettings.PortalId, PortalSettings.AdministratorId); notifications.AddGroupNotification(Constants.GroupApprovedNotification, _tabId, _moduleId, _roleInfo, siteAdmin, new List<RoleInfo> { _roleInfo }); NotificationsController.Instance.DeleteAllNotificationRecipients(postData.NotificationId); return Request.CreateResponse(HttpStatusCode.OK, new {Result = "success"}); } catch (Exception exc) { Logger.Error(exc); return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exc); } }
public HttpResponseMessage RejectMember(NotificationDTO postData) { try { var recipient = InternalMessagingController.Instance.GetMessageRecipient(postData.NotificationId, UserInfo.UserID); if (recipient == null) return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Unable to locate recipient"); var notification = NotificationsController.Instance.GetNotification(postData.NotificationId); ParseKey(notification.Context); if (_memberId <= 0) { return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Unable to locate Member"); } if (_roleInfo == null) { return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Unable to locate Role"); } var member = UserController.GetUserById(PortalSettings.PortalId, _memberId); if (member != null) { RoleController.DeleteUserRole(member, _roleInfo, PortalSettings, false) ; var notifications = new Notifications(); var groupOwner = UserController.GetUserById(PortalSettings.PortalId, _roleInfo.CreatedByUserID); notifications.AddMemberNotification(Constants.MemberRejectedNotification, _tabId, _moduleId, _roleInfo, groupOwner, member); NotificationsController.Instance.DeleteAllNotificationRecipients(postData.NotificationId); return Request.CreateResponse(HttpStatusCode.OK, new {Result = "success"}); } } catch (Exception exc) { Logger.Error(exc); return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exc); } return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Unknown Error"); }
public HttpResponseMessage JoinGroup(RoleDTO postData) { try { if (UserInfo.UserID >= 0 && postData.RoleId > 0) { var roleController = new RoleController(); _roleInfo = roleController.GetRole(postData.RoleId, PortalSettings.PortalId); if (_roleInfo != null) { var requireApproval = false; if(_roleInfo.Settings.ContainsKey("ReviewMembers")) requireApproval = Convert.ToBoolean(_roleInfo.Settings["ReviewMembers"]); if ((_roleInfo.IsPublic || UserInfo.IsInRole(PortalSettings.AdministratorRoleName)) && !requireApproval) { roleController.AddUserRole(PortalSettings.PortalId, UserInfo.UserID, _roleInfo.RoleID, Null.NullDate); roleController.UpdateRole(_roleInfo); var url = Globals.NavigateURL(postData.GroupViewTabId, "", new[] { "groupid=" + _roleInfo.RoleID }); return Request.CreateResponse(HttpStatusCode.OK, new { Result = "success", URL = url }); } if (_roleInfo.IsPublic && requireApproval) { roleController.AddUserRole(PortalSettings.PortalId, UserInfo.UserID, _roleInfo.RoleID, RoleStatus.Pending, false, Null.NullDate, Null.NullDate); var notifications = new Notifications(); notifications.AddGroupOwnerNotification(Constants.MemberPendingNotification, _tabId, _moduleId, _roleInfo, UserInfo); return Request.CreateResponse(HttpStatusCode.OK, new { Result = "success", URL = string.Empty }); } } } } catch (Exception exc) { Logger.Error(exc); return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exc); } return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Unknown Error"); }
private void Create_Click(object sender, EventArgs e) { var ps = new Security.PortalSecurity(); txtGroupName.Text = ps.InputFilter(txtGroupName.Text, Security.PortalSecurity.FilterFlag.NoScripting); txtGroupName.Text = ps.InputFilter(txtGroupName.Text, Security.PortalSecurity.FilterFlag.NoMarkup); txtDescription.Text = ps.InputFilter(txtDescription.Text, Security.PortalSecurity.FilterFlag.NoScripting); txtDescription.Text = ps.InputFilter(txtDescription.Text, Security.PortalSecurity.FilterFlag.NoMarkup); if (RoleController.Instance.GetRoleByName(PortalId, txtGroupName.Text) != null) { lblInvalidGroupName.Visible = true; return; } var modRoles = new List<RoleInfo>(); var modUsers = new List<UserInfo>(); foreach (ModulePermissionInfo modulePermissionInfo in ModulePermissionController.GetModulePermissions(ModuleId, TabId)) { if (modulePermissionInfo.PermissionKey == "MODGROUP" && modulePermissionInfo.AllowAccess) { if (modulePermissionInfo.RoleID > int.Parse(Globals.glbRoleNothing)) { modRoles.Add(RoleController.Instance.GetRoleById(PortalId, modulePermissionInfo.RoleID)); } else if (modulePermissionInfo.UserID > Null.NullInteger) { modUsers.Add(UserController.GetUserById(PortalId, modulePermissionInfo.UserID)); } } } var roleInfo = new RoleInfo() { PortalID = PortalId, RoleName = txtGroupName.Text, Description = txtDescription.Text, SecurityMode = SecurityMode.SocialGroup, Status = RoleStatus.Approved, IsPublic = rdAccessTypePublic.Checked }; var userRoleStatus = RoleStatus.Pending; if (GroupModerationEnabled) { roleInfo.Status = RoleStatus.Pending; userRoleStatus = RoleStatus.Pending; } else { userRoleStatus = RoleStatus.Approved; } var objModulePermissions = new ModulePermissionCollection(CBO.FillCollection(DataProvider.Instance().GetModulePermissionsByModuleID(ModuleId, -1), typeof(ModulePermissionInfo))); if (ModulePermissionController.HasModulePermission(objModulePermissions, "MODGROUP")) { roleInfo.Status = RoleStatus.Approved; userRoleStatus = RoleStatus.Approved; } roleInfo.RoleGroupID = DefaultRoleGroupId; roleInfo.RoleID = RoleController.Instance.AddRole(roleInfo); roleInfo = RoleController.Instance.GetRoleById(PortalId, roleInfo.RoleID); var groupUrl = Globals.NavigateURL(GroupViewTabId, "", new String[] {"groupid=" + roleInfo.RoleID.ToString()}); if (groupUrl.StartsWith("http://") || groupUrl.StartsWith("https://")) { const int startIndex = 8; // length of https:// groupUrl = groupUrl.Substring(groupUrl.IndexOf("/", startIndex, StringComparison.InvariantCultureIgnoreCase)); } roleInfo.Settings.Add("URL", groupUrl); roleInfo.Settings.Add("GroupCreatorName", UserInfo.DisplayName); roleInfo.Settings.Add("ReviewMembers", chkMemberApproved.Checked.ToString()); RoleController.Instance.UpdateRoleSettings(roleInfo, true); if (inpFile.PostedFile != null && inpFile.PostedFile.ContentLength > 0) { IFileManager _fileManager = FileManager.Instance; IFolderManager _folderManager = FolderManager.Instance; var rootFolderPath = PathUtils.Instance.FormatFolderPath(PortalSettings.HomeDirectory); IFolderInfo groupFolder = _folderManager.GetFolder(PortalSettings.PortalId, "Groups/" + roleInfo.RoleID); if (groupFolder == null) { groupFolder = _folderManager.AddFolder(PortalSettings.PortalId, "Groups/" + roleInfo.RoleID); } if (groupFolder != null) { var fileName = Path.GetFileName(inpFile.PostedFile.FileName); var fileInfo = _fileManager.AddFile(groupFolder, fileName, inpFile.PostedFile.InputStream, true); roleInfo.IconFile = "FileID=" + fileInfo.FileId; RoleController.Instance.UpdateRole(roleInfo); } } var notifications = new Notifications(); RoleController.Instance.AddUserRole(PortalId, UserId, roleInfo.RoleID, userRoleStatus, true, Null.NullDate, Null.NullDate); if (roleInfo.Status == RoleStatus.Pending) { //Send notification to Group Moderators to approve/reject group. notifications.AddGroupNotification(Constants.GroupPendingNotification, GroupViewTabId, ModuleId, roleInfo, UserInfo, modRoles, modUsers); } else { //Send notification to Group Moderators informing of new group. notifications.AddGroupNotification(Constants.GroupCreatedNotification, GroupViewTabId, ModuleId, roleInfo, UserInfo, modRoles, modUsers); //Add entry to journal. GroupUtilities.CreateJournalEntry(roleInfo, UserInfo); } Response.Redirect(Globals.NavigateURL(GroupViewTabId, "", new String[] { "groupid=" + roleInfo.RoleID.ToString() })); }
public HttpResponseMessage RejectGroup(NotificationDTO postData) { try { var recipient = InternalMessagingController.Instance.GetMessageRecipient(postData.NotificationId, UserInfo.UserID); if (recipient == null) return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Unable to locate recipient"); var notification = NotificationsController.Instance.GetNotification(postData.NotificationId); ParseKey(notification.Context); if (_roleInfo == null) { return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Unable to locate role"); } if (!IsMod()) { return Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Not Authorized!"); } var notifications = new Notifications(); var roleCreator = UserController.GetUserById(PortalSettings.PortalId, _roleInfo.CreatedByUserID); var siteAdmin = UserController.GetUserById(PortalSettings.PortalId, PortalSettings.AdministratorId); notifications.AddGroupNotification(Constants.GroupRejectedNotification, _tabId, _moduleId, _roleInfo, siteAdmin, new List<RoleInfo> { _roleInfo }, roleCreator); var role = RoleController.Instance.GetRole(PortalSettings.PortalId, r => r.RoleID == _roleId); RoleController.Instance.DeleteRole(role); NotificationsController.Instance.DeleteAllNotificationRecipients(postData.NotificationId); return Request.CreateResponse(HttpStatusCode.OK, new {Result = "success"}); } catch (Exception exc) { Logger.Error(exc); return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exc); } }
public ActionResult RejectGroup(int notificationId) { try { var recipient = InternalMessagingController.Instance.GetMessageRecipient(notificationId, UserInfo.UserID); if (recipient == null) return Json(new { Result = "error" }); var notification = NotificationsController.Instance.GetNotification(notificationId); ParseKey(notification.Context); if (roleInfo == null) { return Json(new { Result = "error" }); } if (!IsMod()) { return Json(new { Result = "access denied" }); } var notifications = new Notifications(); var roleCreator = UserController.GetUserById(PortalSettings.PortalId, roleInfo.CreatedByUserID); var siteAdmin = UserController.GetUserById(PortalSettings.PortalId, PortalSettings.AdministratorId); notifications.AddGroupNotification(Constants.GroupRejectedNotification, TabId, ModuleId, roleInfo, siteAdmin, new List<RoleInfo> { roleInfo }, roleCreator); var roleController = new RoleController(); roleController.DeleteRole(RoleId, PortalSettings.PortalId); NotificationsController.Instance.DeleteAllNotificationRecipients(notificationId); return Json(new { Result = "success" }); } catch (Exception exc) { DnnLog.Error(exc); return Json(new { Result = "error" }); } }
public ActionResult RejectMember(int notificationId) { try { var recipient = InternalMessagingController.Instance.GetMessageRecipient(notificationId, UserInfo.UserID); if (recipient == null) return Json(new { Result = "error" }); var notification = NotificationsController.Instance.GetNotification(notificationId); ParseKey(notification.Context); if (MemberId <= 0) return Json(new { Result = "error" }); if (roleInfo == null) return Json(new { Result = "error" }); var member = UserController.GetUserById(PortalSettings.PortalId, MemberId); if (member != null) { var roleController = new RoleController(); roleController.DeleteUserRole(PortalSettings.PortalId, MemberId, roleInfo.RoleID); var notifications = new Notifications(); var groupOwner = UserController.GetUserById(PortalSettings.PortalId, roleInfo.CreatedByUserID); notifications.AddMemberNotification(Constants.MemberRejectedNotification, TabId, ModuleId, roleInfo, groupOwner, member); NotificationsController.Instance.DeleteAllNotificationRecipients(notificationId); return Json(new { Result = "success" }); } } catch (Exception exc) { DnnLog.Error(exc); } return Json(new { Result = "error" }); }
public ActionResult JoinGroup(int roleId) { try { if (UserInfo.UserID >= 0 && roleId > 0) { var roleController = new RoleController(); roleInfo = roleController.GetRole(roleId, PortalSettings.PortalId); if (roleInfo != null) { var requireApproval = Convert.ToBoolean(roleInfo.Settings["ReviewMembers"].ToString()); if (roleInfo.IsPublic && !requireApproval) { roleController.AddUserRole(PortalSettings.PortalId, UserInfo.UserID, roleInfo.RoleID, Null.NullDate); roleController.UpdateRole(roleInfo); return Json(new { Result = "success", URL = roleInfo.Settings["URL"] }); } if (roleInfo.IsPublic && requireApproval) { roleController.AddUserRole(PortalSettings.PortalId, UserInfo.UserID, roleInfo.RoleID, RoleStatus.Pending, false, Null.NullDate, Null.NullDate); Components.Notifications notifications = new Components.Notifications(); notifications.AddGroupOwnerNotification(Constants.MemberPendingNotification, TabId, ModuleId, roleInfo, UserInfo); return Json(new { Result = "success", URL = string.Empty }); } } } } catch (Exception exc) { DnnLog.Error(exc); } return Json(new { Result = "error" }); }
private void Create_Click(object sender, EventArgs e) { RoleController roleController = new RoleController(); Security.PortalSecurity ps = new Security.PortalSecurity(); txtGroupName.Text = ps.InputFilter(txtGroupName.Text, Security.PortalSecurity.FilterFlag.NoScripting); txtGroupName.Text = ps.InputFilter(txtGroupName.Text, Security.PortalSecurity.FilterFlag.NoMarkup); txtDescription.Text = ps.InputFilter(txtDescription.Text, Security.PortalSecurity.FilterFlag.NoScripting); txtDescription.Text = ps.InputFilter(txtDescription.Text, Security.PortalSecurity.FilterFlag.NoMarkup); if (roleController.GetRoleByName(PortalId, txtGroupName.Text) != null) { reqGroupName.Visible = true; return; } List <RoleInfo> modRoles = new List <RoleInfo>(); foreach (ModulePermissionInfo modulePermissionInfo in ModulePermissionController.GetModulePermissions(ModuleId, TabId)) { if (modulePermissionInfo.PermissionKey == "MODGROUP" && modulePermissionInfo.AllowAccess) { modRoles.Add(roleController.GetRole(modulePermissionInfo.RoleID, PortalId)); } } RoleInfo roleInfo = new RoleInfo() { PortalID = PortalId, RoleName = txtGroupName.Text, Description = txtDescription.Text, SecurityMode = SecurityMode.SocialGroup, Status = RoleStatus.Approved, IsPublic = rdAccessTypePublic.Checked }; var userRoleStatus = RoleStatus.Pending; if (GroupModerationEnabled) { roleInfo.Status = RoleStatus.Pending; userRoleStatus = RoleStatus.Pending; } else { userRoleStatus = RoleStatus.Approved; } var objModulePermissions = new ModulePermissionCollection(CBO.FillCollection(DataProvider.Instance().GetModulePermissionsByModuleID(ModuleId, -1), typeof(ModulePermissionInfo))); if (ModulePermissionController.HasModulePermission(objModulePermissions, "MODGROUP")) { roleInfo.Status = RoleStatus.Approved; userRoleStatus = RoleStatus.Approved; } roleInfo.RoleGroupID = DefaultRoleGroupId; roleInfo.RoleID = roleController.AddRole(roleInfo); roleInfo = roleController.GetRole(roleInfo.RoleID, PortalId); roleInfo.Settings.Add("URL", Globals.NavigateURL(GroupViewTabId, "", new String[] { "groupid=" + roleInfo.RoleID.ToString() })); roleInfo.Settings.Add("GroupCreatorName", UserInfo.DisplayName); roleInfo.Settings.Add("ReviewMembers", chkMemberApproved.Checked.ToString()); TestableRoleController.Instance.UpdateRoleSettings(roleInfo, true); if (inpFile.PostedFile.ContentLength > 0) { IFileManager _fileManager = FileManager.Instance; IFolderManager _folderManager = FolderManager.Instance; var rootFolderPath = PathUtils.Instance.FormatFolderPath(PortalSettings.HomeDirectory); IFolderInfo groupFolder = _folderManager.GetFolder(PortalSettings.PortalId, "Groups/" + roleInfo.RoleID); if (groupFolder == null) { groupFolder = _folderManager.AddFolder(PortalSettings.PortalId, "Groups/" + roleInfo.RoleID); } if (groupFolder != null) { var fileName = Path.GetFileName(inpFile.PostedFile.FileName); var fileInfo = _fileManager.AddFile(groupFolder, fileName, inpFile.PostedFile.InputStream, true); roleInfo.IconFile = "FileID=" + fileInfo.FileId; roleController.UpdateRole(roleInfo); } } Components.Notifications notifications = new Components.Notifications(); roleController.AddUserRole(PortalId, UserId, roleInfo.RoleID, userRoleStatus, true, Null.NullDate, Null.NullDate); if (roleInfo.Status == RoleStatus.Pending) { //Send notification to Group Moderators to approve/reject group. notifications.AddGroupNotification(Constants.GroupPendingNotification, GroupViewTabId, ModuleId, roleInfo, UserInfo, modRoles); } else { //Send notification to Group Moderators informing of new group. notifications.AddGroupNotification(Constants.GroupCreatedNotification, GroupViewTabId, ModuleId, roleInfo, UserInfo, modRoles); //Add entry to journal. GroupUtilities.CreateJournalEntry(roleInfo, UserInfo); } Response.Redirect(Globals.NavigateURL(GroupViewTabId, "", new String[] { "groupid=" + roleInfo.RoleID.ToString() })); }