public abstract void RemoveUserFromRole(int portalId, UserInfo user, UserRoleInfo userRole);
public abstract void UpdateUserRole(UserRoleInfo userRole);
public override void RemoveUserFromRole(int PortalID, UserInfo user, UserRoleInfo userRole) { throw new NotImplementedException(); }
//User Roles public abstract bool AddUserToRole(int portalId, UserInfo user, UserRoleInfo userRole);
/// <summary> /// Remove user from application role. /// </summary> /// <param name="PortalID">PortalID</param> /// <param name="user">User name.</param> /// <param name="userRole">User role.</param> public override void RemoveUserFromRole(int PortalID, UserInfo user, UserRoleInfo userRole) { throw new NotImplementedException(); }
/// <summary> /// Creates user role. Called when the "Create role" button is pressed. /// </summary> private bool CreateUserRole() { // Get role and user objects RoleInfo role = RoleInfoProvider.GetRoleInfo("MyNewRole", CMSContext.CurrentSiteID); UserInfo user = UserInfoProvider.GetUserInfo("MyNewUser"); if ((role != null) && (user != null)) { // Create new user role object UserRoleInfo userRole = new UserRoleInfo(); // Set the properties userRole.UserID = user.UserID; userRole.RoleID = role.RoleID; // Save the user role UserRoleInfoProvider.SetUserRoleInfo(userRole); return true; } return false; }
public abstract bool AddUserToRole(int PortalID, UserInfo user, UserRoleInfo UserRole);
protected void Page_Load(object sender, EventArgs e) { // Check permissions var user = MembershipContext.AuthenticatedUser; if (user != null) { if (!user.IsAuthorizedPerUIElement("CMS.Roles", "Users")) { RedirectToUIElementAccessDenied("CMS.Roles", "Users"); } // Check "read" permissions if (!user.IsAuthorizedPerResource("CMS.Users", "Read")) { RedirectToAccessDenied("CMS.Users", "Read"); } } usUsers.AdditionalColumns = "UserID,ValidTo"; usUsers.GridName = "~/CMSModules/Membership/Pages/Users/UsersValidTo.xml"; roleID = QueryHelper.GetInteger("roleid", 0); usUsers.IsLiveSite = false; usUsers.DialogWindowHeight = 760; // Show only user belonging to role's site RoleInfo ri = RoleInfoProvider.GetRoleInfo(roleID); if (ri != null) { usUsers.WhereCondition = (ri.SiteID > 0) ? $"UserID IN (SELECT UserID FROM CMS_UserSite WHERE SiteID = {ri.SiteID})" : String.Empty; usUsers.ListingWhereCondition = "RoleID = " + ri.RoleID; } usUsers.DynamicColumnName = false; usUsers.SelectItemPageUrl = "~/CMSModules/Membership/Pages/Users/User_Edit_Add_Item_Dialog.aspx"; currentValues = GetRoleUsers(); if (!RequestHelper.IsPostBack()) { usUsers.Value = currentValues; } usUsers.OnSelectionChanged += UniSelector_OnSelectionChanged; usUsers.OnAdditionalDataBound += usUsers_OnAdditionalDataBound; string script = "function setNewDateTime(date) {$cmsj('#" + hdnDate.ClientID + "').val(date);}"; ScriptHelper.RegisterClientScriptBlock(Page, typeof(string), "key", ScriptHelper.GetScript(script)); string eventTarget = Request[postEventSourceID]; string eventArgument = Request[postEventArgumentID]; if (eventTarget == ucCalendar.DateTimeTextBox.UniqueID) { if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("CMS.Users", "ManageUserRoles")) { RedirectToAccessDenied("CMS.Users", "ManageUserRoles"); } int id = ValidationHelper.GetInteger(hdnDate.Value, 0); if (id != 0) { DateTime dt = ValidationHelper.GetDateTime(eventArgument, DateTimeHelper.ZERO_TIME); UserRoleInfo uri = UserRoleInfoProvider.GetUserRoleInfo(id, ri.RoleID); if (uri != null) { uri.ValidTo = dt; UserRoleInfoProvider.SetUserRoleInfo(uri); // Invalidate user UserInfo.TYPEINFO.ObjectInvalidated(id); ShowChangesSaved(); } } } }
/// <summary> /// Updates a User/Role /// </summary> /// <param name="userRole">The User/Role to update</param> /// <history> /// [cnurse] 12/15/2005 created /// </history> public override void UpdateUserRole(UserRoleInfo userRole) { dataProvider.UpdateUserRole(userRole.UserRoleID, userRole.EffectiveDate, userRole.ExpiryDate); }
/// <summary> /// Page_load event. /// </summary> protected void Page_Load(object sender, EventArgs e) { // Check permissions and UI elements var user = MembershipContext.AuthenticatedUser; if (user != null) { if (!user.IsAuthorizedPerUIElement("CMS.Users", "CmsDesk.Roles")) { RedirectToUIElementAccessDenied("CMS.Users", "CmsDesk.Roles"); } if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("CMS.Roles", "Read")) { RedirectToAccessDenied("CMS.Roles", "Read"); } } ScriptHelper.RegisterJQuery(Page); // Get user id and site Id from query userId = QueryHelper.GetInteger("userid", 0); // Show content placeholder where site selector can be shown CurrentMaster.DisplaySiteSelectorPanel = true; if ((SiteID > 0) && !MembershipContext.AuthenticatedUser.CheckPrivilegeLevel(UserPrivilegeLevelEnum.Admin)) { plcSites.Visible = false; CurrentMaster.DisplaySiteSelectorPanel = false; } if (userId > 0) { // Check that only global administrator can edit global administrator's accounts ui = UserInfoProvider.GetUserInfo(userId); CheckUserAvaibleOnSite(ui); EditedObject = ui; if (!CheckGlobalAdminEdit(ui)) { plcTable.Visible = false; ShowError(GetString("Administration-User_List.ErrorGlobalAdmin")); return; } // Set site selector siteSelector.DropDownSingleSelect.AutoPostBack = true; siteSelector.AllowAll = false; siteSelector.AllowEmpty = false; // Global roles only for global admin if (MembershipContext.AuthenticatedUser.CheckPrivilegeLevel(UserPrivilegeLevelEnum.GlobalAdmin)) { siteSelector.AllowGlobal = true; } // Only sites assigned to user siteSelector.UserId = userId; siteSelector.OnlyRunningSites = false; siteSelector.UniSelector.OnSelectionChanged += UniSelector_OnSelectionChanged; if (!RequestHelper.IsPostBack()) { siteId = SiteContext.CurrentSiteID; // If user is member of current site if (UserSiteInfoProvider.GetUserSiteInfo(userId, siteId) != null) { // Force uniselector to preselect current site siteSelector.Value = siteId; } // Force to load data siteSelector.Reload(true); } // Get truly selected item siteId = ValidationHelper.GetInteger(siteSelector.Value, 0); } usRoles.OnSelectionChanged += usRoles_OnSelectionChanged; string siteIDWhere = (siteId <= 0) ? " SiteID IS NULL " : " SiteID =" + siteId; usRoles.WhereCondition = siteIDWhere + " AND RoleGroupID IS NULL"; usRoles.SelectItemPageUrl = "~/CMSModules/Membership/Pages/Users/User_Edit_Add_Item_Dialog.aspx"; usRoles.ListingWhereCondition = siteIDWhere + " AND RoleGroupID IS NULL AND UserID=" + userId; usRoles.ReturnColumnName = "RoleID"; usRoles.DynamicColumnName = false; usRoles.GridName = "User_Role_List.xml"; usRoles.AdditionalColumns = "ValidTo"; usRoles.OnAdditionalDataBound += usMemberships_OnAdditionalDataBound; usRoles.DialogWindowHeight = 760; // Exclude generic roles string genericWhere = null; ArrayList genericRoles = RoleInfoProvider.GetGenericRoles(); if (genericRoles.Count != 0) { foreach (string role in genericRoles) { genericWhere += "'" + SqlHelper.EscapeQuotes(role) + "',"; } genericWhere = genericWhere.TrimEnd(','); usRoles.WhereCondition += " AND ( RoleName NOT IN (" + genericWhere + ") )"; } // Get the active roles for this site var data = UserRoleInfoProvider.GetUserRoles().Where("UserID = " + userId + " AND RoleID IN (SELECT RoleID FROM CMS_Role WHERE SiteID IS NULL OR SiteID = " + siteId + ")").Columns("RoleID"); if (data.Any()) { currentValues = TextHelper.Join(";", DataHelper.GetStringValues(data.Tables[0], "RoleID")); } // If not postback or site selection changed if (!RequestHelper.IsPostBack() || (siteId != Convert.ToInt32(ViewState["rolesOldSiteId"]))) { // Set values usRoles.Value = currentValues; } // Store selected site id ViewState["rolesOldSiteId"] = siteId; string script = "function setNewDateTime(date) {$cmsj('#" + hdnDate.ClientID + "').val(date);}"; ScriptHelper.RegisterClientScriptBlock(Page, typeof(string), "key", ScriptHelper.GetScript(script)); string eventTarget = Request[postEventSourceID]; string eventArgument = Request[postEventArgumentID]; if (eventTarget == ucCalendar.DateTimeTextBox.UniqueID) { if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("CMS.Users", "ManageUserRoles")) { RedirectToAccessDenied("CMS.Users", "Manage user roles"); } int id = ValidationHelper.GetInteger(hdnDate.Value, 0); if (id != 0) { DateTime dt = ValidationHelper.GetDateTime(eventArgument, DateTimeHelper.ZERO_TIME); UserRoleInfo uri = UserRoleInfoProvider.GetUserRoleInfo(userId, id); if (uri != null) { uri.ValidTo = dt; UserRoleInfoProvider.SetUserRoleInfo(uri); // Invalidate user UserInfoProvider.InvalidateUser(userId); ShowChangesSaved(); } } } }
ActionInfoService actionInfoService = new ActionInfoService(); //权限列表 //根据登陆用户获取用户菜单 public ActionResult GetMenuData() { List <ActionInfo> list = new List <ActionInfo>(); List <int> actionIdList = new List <int>(); string userName = ""; if (Session["UserName"] != null) { userName = Session["UserName"].ToString(); } if (userName != "")//确定用户登录了 { //根据用户查找用户ID UserInfo userModel = userService.FirstOrDefault(c => c.UserName == userName); int userId = userModel.UserID; if (userModel != null) { UserRoleInfo userRoleInfo = userRoleService.FirstOrDefault(c => c.UserID == userId); if (userRoleInfo != null) { string roleId = userRoleInfo.RoleID;//根据用户求出角色来 if (roleId != null) { string[] roleIdSum = roleId.Split(','); for (int i = 0; i < roleIdSum.Length; i++)//根据角色求出权限来 { int nRoleId = int.Parse(roleIdSum[i]); var model2 = roleActionService.FirstOrDefault(c => c.RoleID == nRoleId); if (model2 != null) { string actionId = model2.ActionID; if (actionId != null) { string[] actionIdSum = actionId.Split(','); for (int j = 0; j < actionIdSum.Length; j++) { int nActionId = int.Parse(actionIdSum[j]); if (!actionIdList.Contains(nActionId)) { actionIdList.Add(nActionId); } } } } } } } } //开始获取特殊权限 List <UserActionInfo> userActionList = userActionService.Find(c => c.UserID == userId).ToList(); for (int i = 0; i < userActionList.Count; i++) { if (userActionList[i].IsTrue) { if (userActionList[i].ActionID != null) { int actionId = (int)userActionList[i].ActionID; if (!actionIdList.Contains(actionId)) { actionIdList.Add(actionId); } } } else if (userActionList[i].IsTrue == false) { if (userActionList[i].ActionID != null) { int actionId = (int)userActionList[i].ActionID; if (actionIdList.Contains(actionId)) { actionIdList.Remove(actionId); } } } } //if (actionIdList.Contains(1)) //{ // actionIdList.Remove(1); //} //开始求actionID列表 for (int i = 0; i < actionIdList.Count; i++) { int n = actionIdList[i]; ActionInfo model = actionInfoService.FirstOrDefault(c => c.ActionID == n); list.Add(model); } } if (list.Count > 0) { var sendData = new{ msg = 1, title = userName, list = list }; return(Json(sendData, JsonRequestBehavior.AllowGet)); } else { var sendData = new { msg = 0 }; return(Json(sendData, JsonRequestBehavior.AllowGet)); } //return Json(list, JsonRequestBehavior.AllowGet); }
public override void UpdateUserRole(UserRoleInfo userRole) { throw new NotImplementedException(); }
/// <summary> /// Updates the current Group or creates new if no GroupID is present. /// </summary> public void SaveData() { // Check banned IP if (!BannedIPInfoProvider.IsAllowed(SiteContext.CurrentSiteName, BanControlEnum.AllNonComplete)) { ShowError(GetString("General.BannedIP")); return; } // Validate form entries string errorMessage = ValidateForm(); if (errorMessage == string.Empty) { try { codeName = GetSafeCodeName(); codeName = GetUniqueCodeName(codeName); GroupInfo group = new GroupInfo(); group.GroupDisplayName = txtDisplayName.Text; group.GroupName = codeName; group.GroupDescription = txtDescription.Text; group.GroupAccess = GetGroupAccess(); group.GroupSiteID = mSiteId; group.GroupApproveMembers = GetGroupApproveMembers(); // Set columns GroupCreatedByUserID and GroupApprovedByUserID to current user var user = MembershipContext.AuthenticatedUser; if (user != null) { group.GroupCreatedByUserID = user.UserID; if ((!RequireApproval) || (CurrentUserIsAdmin())) { group.GroupApprovedByUserID = user.UserID; group.GroupApproved = true; } } // Save Group in the database GroupInfoProvider.SetGroupInfo(group); // Create group admin role RoleInfo roleInfo = new RoleInfo(); roleInfo.DisplayName = "Group admin"; roleInfo.RoleName = group.GroupName + "_groupadmin"; roleInfo.RoleGroupID = group.GroupID; roleInfo.RoleIsGroupAdministrator = true; roleInfo.SiteID = mSiteId; // Save group admin role RoleInfoProvider.SetRoleInfo(roleInfo); if (user != null) { // Set user as member of group GroupMemberInfo gmi = new GroupMemberInfo(); gmi.MemberUserID = user.UserID; gmi.MemberGroupID = group.GroupID; gmi.MemberJoined = DateTime.Now; gmi.MemberStatus = GroupMemberStatus.Approved; gmi.MemberApprovedWhen = DateTime.Now; gmi.MemberApprovedByUserID = user.UserID; // Save user as member of group GroupMemberInfoProvider.SetGroupMemberInfo(gmi); // Set user as member of admin group role UserRoleInfo userRole = new UserRoleInfo(); userRole.UserID = user.UserID; userRole.RoleID = roleInfo.RoleID; // Save user as member of admin group role UserRoleInfoProvider.SetUserRoleInfo(userRole); } // Clear user session a request MembershipContext.AuthenticatedUser.Generalized.Invalidate(false); MembershipContext.AuthenticatedUser = null; string culture = CultureHelper.EnglishCulture.ToString(); if (DocumentContext.CurrentDocument != null) { culture = DocumentContext.CurrentDocument.DocumentCulture; } // Copy document errorMessage = GroupInfoProvider.CopyGroupDocument(group, GroupTemplateSourceAliasPath, GroupTemplateTargetAliasPath, GroupProfileURLPath, culture, CombineWithDefaultCulture, MembershipContext.AuthenticatedUser, roleInfo); if (!String.IsNullOrEmpty(errorMessage)) { // Display error message ShowError(errorMessage); return; } // Create group forum if (CreateForum) { CreateGroupForum(group); // Create group forum search index if (CreateSearchIndexes) { CreateGroupForumSearchIndex(group); } } // Create group media library if (CreateMediaLibrary) { CreateGroupMediaLibrary(group); } // Create search index for group documents if (CreateSearchIndexes) { CreateGroupContentSearchIndex(group); } // Display information on success ShowConfirmation(GetString("group.group.createdinfo")); // If URL is set, redirect user to specified page if (!String.IsNullOrEmpty(RedirectToURL)) { URLHelper.Redirect(ResolveUrl(DocumentURLProvider.GetUrl(RedirectToURL))); } // After registration message if ((RequireApproval) && (!CurrentUserIsAdmin())) { ShowConfirmation(SuccessfullRegistrationWaitingForApprovalText); // Send approval email to admin if (!String.IsNullOrEmpty(SendWaitingForApprovalEmailTo)) { // Create the message EmailTemplateInfo eti = EmailTemplateProvider.GetEmailTemplate("Groups.WaitingForApproval", SiteContext.CurrentSiteName); if (eti != null) { EmailMessage message = new EmailMessage(); if (String.IsNullOrEmpty(eti.TemplateFrom)) { message.From = SettingsKeyInfoProvider.GetValue(SiteContext.CurrentSiteName + ".CMSSendEmailNotificationsFrom"); } else { message.From = eti.TemplateFrom; } MacroResolver resolver = MacroContext.CurrentResolver; resolver.SetAnonymousSourceData(group); resolver.SetNamedSourceData("Group", group); message.Recipients = SendWaitingForApprovalEmailTo; message.Subject = resolver.ResolveMacros(eti.TemplateSubject); message.Body = resolver.ResolveMacros(eti.TemplateText); resolver.Settings.EncodeResolvedValues = false; message.PlainTextBody = resolver.ResolveMacros(eti.TemplatePlainText); // Send the message using email engine EmailSender.SendEmail(message); } } } else { string groupPath = SettingsKeyInfoProvider.GetValue(SiteContext.CurrentSiteName + ".CMSGroupProfilePath"); string url = String.Empty; if (!String.IsNullOrEmpty(groupPath)) { url = DocumentURLProvider.GetUrl(groupPath.Replace("{GroupName}", group.GroupName)); } ShowConfirmation(String.Format(SuccessfullRegistrationText, url)); } // Hide form if (HideFormAfterRegistration) { plcForm.Visible = false; } else { ClearForm(); } } catch (Exception ex) { // Display error message ShowError(GetString("general.saveerror"), ex.Message, null); } } else { // Display error message ShowError(errorMessage); } }
public abstract void RemoveUserFromRole(int PortalID, UserInfo user, UserRoleInfo userRole);
/// ----------------------------------------------------------------------------- /// <summary> /// Remove a User from a Role /// </summary> /// <remarks> /// </remarks> /// <param name="portalId">Id of the portal</param> /// <param name="user">The user to remove.</param> /// <param name="userRole">The role to remove the user from.</param> /// ----------------------------------------------------------------------------- public override void RemoveUserFromRole(int portalId, UserInfo user, UserRoleInfo userRole) { dataProvider.DeleteUserRole(userRole.UserID, userRole.RoleID); }
/// <summary> /// Assigne role to user. /// </summary> /// <param name="PortalID">PortalID</param> /// <param name="user">Object of UserInfo class.</param> /// <param name="UserRole">Object of UserRoleInfo class.</param> /// <returns>True for assigne role to user successfully.</returns> public override bool AddUserToRole(int PortalID, UserInfo user, UserRoleInfo UserRole) { throw new NotImplementedException(); }
/// <summary> /// 更新角色 /// </summary> public static void UpdateUserRole(UserRoleInfo userRoleInfo) { BonSite.Data.UserRole.UpdateUserRole(userRoleInfo); BonSite.Core.BSCache.Remove(CacheKeys.SITE_USERROLE_LIST); }
/// <summary> /// Update user role. /// </summary> /// <param name="userRole">Object of UserRoleInfo class.</param> public override void UpdateUserRole(UserRoleInfo userRole) { throw new NotImplementedException(); }
public void UpdateUserRole(int portalId, int userId, int roleId, RoleStatus status, bool isOwner, bool cancel) { UserInfo user = UserController.GetUserById(portalId, userId); UserRoleInfo userRole = GetUserRole(portalId, userId, roleId); if (cancel) { if (userRole != null && userRole.ServiceFee > 0.0 && userRole.IsTrialUsed) { //Expire Role so we retain trial used data userRole.ExpiryDate = DateTime.Now.AddDays(-1); userRole.Status = status; userRole.IsOwner = isOwner; provider.UpdateUserRole(userRole); EventLogController.Instance.AddLog(userRole, PortalController.Instance.GetCurrentPortalSettings(), UserController.Instance.GetCurrentUserInfo().UserID, "", EventLogController.EventLogType.USER_ROLE_UPDATED); } else { //Delete Role DeleteUserRoleInternal(portalId, userId, roleId); EventLogController.Instance.AddLog("UserId", userId.ToString(CultureInfo.InvariantCulture), PortalController.Instance.GetCurrentPortalSettings(), UserController.Instance.GetCurrentUserInfo().UserID, EventLogController.EventLogType.USER_ROLE_DELETED); } } else { int UserRoleId = -1; DateTime ExpiryDate = DateTime.Now; DateTime EffectiveDate = Null.NullDate; bool IsTrialUsed = false; int Period = 0; string Frequency = ""; if (userRole != null) { UserRoleId = userRole.UserRoleID; EffectiveDate = userRole.EffectiveDate; ExpiryDate = userRole.ExpiryDate; IsTrialUsed = userRole.IsTrialUsed; } RoleInfo role = Instance.GetRole(portalId, r => r.RoleID == roleId); if (role != null) { if (IsTrialUsed == false && role.TrialFrequency != "N") { Period = role.TrialPeriod; Frequency = role.TrialFrequency; } else { Period = role.BillingPeriod; Frequency = role.BillingFrequency; } } if (EffectiveDate < DateTime.Now) { EffectiveDate = Null.NullDate; } if (ExpiryDate < DateTime.Now) { ExpiryDate = DateTime.Now; } if (Period == Null.NullInteger) { ExpiryDate = Null.NullDate; } else { switch (Frequency) { case "N": ExpiryDate = Null.NullDate; break; case "O": ExpiryDate = new DateTime(9999, 12, 31); break; case "D": ExpiryDate = ExpiryDate.AddDays(Period); break; case "W": ExpiryDate = ExpiryDate.AddDays(Period * 7); break; case "M": ExpiryDate = ExpiryDate.AddMonths(Period); break; case "Y": ExpiryDate = ExpiryDate.AddYears(Period); break; } } if (UserRoleId != -1 && userRole != null) { userRole.ExpiryDate = ExpiryDate; userRole.Status = status; userRole.IsOwner = isOwner; provider.UpdateUserRole(userRole); EventLogController.Instance.AddLog(userRole, PortalController.Instance.GetCurrentPortalSettings(), UserController.Instance.GetCurrentUserInfo().UserID, "", EventLogController.EventLogType.USER_ROLE_UPDATED); } else { AddUserRole(portalId, userId, roleId, status, isOwner, EffectiveDate, ExpiryDate); } } //Remove the UserInfo from the Cache, as it has been modified DataCache.ClearUserCache(portalId, user.Username); Instance.ClearRoleCache(portalId); }
/// <summary> /// Updates the current Group or creates new if no GroupID is present. /// </summary> public void SaveData() { // Check banned IP if (!BannedIPInfoProvider.IsAllowed(SiteContext.CurrentSiteName, BanControlEnum.AllNonComplete)) { ShowError(GetString("General.BannedIP")); return; } // Validate form entries string errorMessage = ValidateForm(); if (errorMessage == string.Empty) { try { codeName = GetSafeCodeName(); codeName = GetUniqueCodeName(codeName); GroupInfo group = new GroupInfo(); group.GroupDisplayName = txtDisplayName.Text; group.GroupName = codeName; group.GroupDescription = txtDescription.Text; group.GroupAccess = GetGroupAccess(); group.GroupSiteID = mSiteId; group.GroupApproveMembers = GetGroupApproveMembers(); // Set columns GroupCreatedByUserID and GroupApprovedByUserID to current user var user = MembershipContext.AuthenticatedUser; if (user != null) { group.GroupCreatedByUserID = user.UserID; if ((!RequireApproval) || (CurrentUserIsAdmin())) { group.GroupApprovedByUserID = user.UserID; group.GroupApproved = true; } } // Save Group in the database GroupInfoProvider.SetGroupInfo(group); // Create group admin role RoleInfo roleInfo = new RoleInfo(); roleInfo.DisplayName = "Group admin"; roleInfo.RoleName = group.GroupName + "_groupadmin"; roleInfo.RoleGroupID = group.GroupID; roleInfo.RoleIsGroupAdministrator = true; roleInfo.SiteID = mSiteId; // Save group admin role RoleInfoProvider.SetRoleInfo(roleInfo); if (user != null) { // Set user as member of group GroupMemberInfo gmi = new GroupMemberInfo(); gmi.MemberUserID = user.UserID; gmi.MemberGroupID = group.GroupID; gmi.MemberJoined = DateTime.Now; gmi.MemberStatus = GroupMemberStatus.Approved; gmi.MemberApprovedWhen = DateTime.Now; gmi.MemberApprovedByUserID = user.UserID; // Save user as member of group GroupMemberInfoProvider.SetGroupMemberInfo(gmi); // Set user as member of admin group role UserRoleInfo userRole = new UserRoleInfo(); userRole.UserID = user.UserID; userRole.RoleID = roleInfo.RoleID; // Save user as member of admin group role UserRoleInfoProvider.SetUserRoleInfo(userRole); } // Clear user session a request MembershipContext.AuthenticatedUser.Generalized.Invalidate(false); MembershipContext.AuthenticatedUser = null; string culture = CultureHelper.EnglishCulture.ToString(); if (DocumentContext.CurrentDocument != null) { culture = DocumentContext.CurrentDocument.DocumentCulture; } // Copy document errorMessage = GroupInfoProvider.CopyGroupDocument(group, GroupTemplateSourceAliasPath, GroupTemplateTargetAliasPath, GroupProfileURLPath, culture, CombineWithDefaultCulture, MembershipContext.AuthenticatedUser, roleInfo); if (!String.IsNullOrEmpty(errorMessage)) { // Display error message ShowError(errorMessage); return; } // Create group forum if (CreateForum) { CreateGroupForum(group); // Create group forum search index if (CreateSearchIndexes) { CreateGroupForumSearchIndex(group); } } // Create group media library if (CreateMediaLibrary) { CreateGroupMediaLibrary(group); } // Create search index for group documents if (CreateSearchIndexes) { CreateGroupContentSearchIndex(group); } // Display information on success ShowConfirmation(GetString("group.group.createdinfo")); // If URL is set, redirect user to specified page if (!String.IsNullOrEmpty(RedirectToURL)) { URLHelper.Redirect(ResolveUrl(DocumentURLProvider.GetUrl(RedirectToURL))); } // After registration message if ((RequireApproval) && (!CurrentUserIsAdmin())) { ShowConfirmation(SuccessfullRegistrationWaitingForApprovalText); // Send approval email to admin if (!String.IsNullOrEmpty(SendWaitingForApprovalEmailTo)) { // Create the message EmailTemplateInfo eti = EmailTemplateProvider.GetEmailTemplate("Groups.WaitingForApproval", SiteContext.CurrentSiteName); if (eti != null) { EmailMessage message = new EmailMessage(); if (String.IsNullOrEmpty(eti.TemplateFrom)) { message.From = SettingsKeyInfoProvider.GetStringValue(SiteContext.CurrentSiteName + ".CMSSendEmailNotificationsFrom"); } else { message.From = eti.TemplateFrom; } MacroResolver resolver = MacroContext.CurrentResolver; resolver.SetAnonymousSourceData(group); resolver.SetNamedSourceData("Group", group); message.Recipients = SendWaitingForApprovalEmailTo; message.Subject = resolver.ResolveMacros(eti.TemplateSubject); message.Body = resolver.ResolveMacros(eti.TemplateText); resolver.Settings.EncodeResolvedValues = false; message.PlainTextBody = resolver.ResolveMacros(eti.TemplatePlainText); // Send the message using email engine EmailSender.SendEmail(message); } } } else { string groupPath = SettingsKeyInfoProvider.GetStringValue(SiteContext.CurrentSiteName + ".CMSGroupProfilePath"); string url = String.Empty; if (!String.IsNullOrEmpty(groupPath)) { url = DocumentURLProvider.GetUrl(groupPath.Replace("{GroupName}", group.GroupName)); } ShowConfirmation(String.Format(SuccessfullRegistrationText, url)); } // Hide form if (HideFormAfterRegistration) { plcForm.Visible = false; } else { ClearForm(); } } catch (Exception ex) { // Display error message ShowError(GetString("general.saveerror"), ex.Message, null); } } else { // Display error message ShowError(errorMessage); } }
public override bool AddUserToRole(int PortalID, UserInfo user, UserRoleInfo UserRole) { throw new NotImplementedException(); }