protected void btnAddRole_Click(Object sender, EventArgs e) { if (this.txtNewRoleName.Text.Length > 0) { Role role = new Role(); role.SiteId = siteSettings.SiteId; role.SiteGuid = siteSettings.SiteGuid; role.RoleName = this.txtNewRoleName.Text; //role.EnforceRelatedSitesMode = WebConfigSettings.UseRelatedSiteMode; role.Save(); } WebUtils.SetupRedirect(this, Request.RawUrl); return; }
public static void EnsureRolesAndAdminUser(SiteSettings site) { SiteUser adminUser = EnsureAdminUser(site); if (!Role.Exists(site.SiteId, "Admins")) { Role adminRole = new Role(); adminRole.RoleName = "Admins"; adminRole.SiteId = site.SiteId; adminRole.SiteGuid = site.SiteGuid; adminRole.Save(); adminRole.RoleName = "Administrators"; adminRole.Save(); Role.AddUser(adminRole.RoleId, adminUser.UserId, adminRole.RoleGuid, adminUser.UserGuid); } if (!Role.Exists(site.SiteId, "Role Admins")) { Role roleAdminRole = new Role(); roleAdminRole.RoleName = "Role Admins"; roleAdminRole.SiteId = site.SiteId; roleAdminRole.SiteGuid = site.SiteGuid; roleAdminRole.Save(); roleAdminRole.RoleName = "Role Administrators"; roleAdminRole.Save(); } if (!Role.Exists(site.SiteId, "Content Administrators")) { Role contentAdminRole = new Role(); contentAdminRole.RoleName = "Content Administrators"; contentAdminRole.SiteId = site.SiteId; contentAdminRole.SiteGuid = site.SiteGuid; contentAdminRole.Save(); } if (!Role.Exists(site.SiteId, "Authenticated Users")) { Role authenticatedUserRole = new Role(); authenticatedUserRole.RoleName = "Authenticated Users"; authenticatedUserRole.SiteId = site.SiteId; authenticatedUserRole.SiteGuid = site.SiteGuid; authenticatedUserRole.Save(); } if (!Role.Exists(site.SiteId, "Content Publishers")) { Role contentPublisherRole = new Role(); contentPublisherRole.RoleName = "Content Publishers"; contentPublisherRole.SiteId = site.SiteId; contentPublisherRole.SiteGuid = site.SiteGuid; contentPublisherRole.Save(); } if (!Role.Exists(site.SiteId, "Content Authors")) { Role contentAuthorRole = new Role(); contentAuthorRole.RoleName = "Content Authors"; contentAuthorRole.SiteId = site.SiteId; contentAuthorRole.SiteGuid = site.SiteGuid; contentAuthorRole.Save(); } if (!Role.Exists(site.SiteId, "Newsletter Administrators")) { Role newsletterAdminRole = new Role(); newsletterAdminRole.RoleName = "Newsletter Administrators"; newsletterAdminRole.SiteId = site.SiteId; newsletterAdminRole.SiteGuid = site.SiteGuid; newsletterAdminRole.Save(); } }
public static void CreateRequiredRolesAndAdminUser(SiteSettings site) { Role adminRole = new Role(); adminRole.RoleName = "Admins"; adminRole.SiteId = site.SiteId; adminRole.SiteGuid = site.SiteGuid; adminRole.Save(); adminRole.RoleName = "Administrators"; adminRole.Save(); Role roleAdminRole = new Role(); roleAdminRole.RoleName = "Role Admins"; roleAdminRole.SiteId = site.SiteId; roleAdminRole.SiteGuid = site.SiteGuid; roleAdminRole.Save(); roleAdminRole.RoleName = "Role Administrators"; roleAdminRole.Save(); Role contentAdminRole = new Role(); contentAdminRole.RoleName = "Content Administrators"; contentAdminRole.SiteId = site.SiteId; contentAdminRole.SiteGuid = site.SiteGuid; contentAdminRole.Save(); Role authenticatedUserRole = new Role(); authenticatedUserRole.RoleName = "Authenticated Users"; authenticatedUserRole.SiteId = site.SiteId; authenticatedUserRole.SiteGuid = site.SiteGuid; authenticatedUserRole.Save(); Role contentPublisherRole = new Role(); contentPublisherRole.RoleName = "Content Publishers"; contentPublisherRole.SiteId = site.SiteId; contentPublisherRole.SiteGuid = site.SiteGuid; contentPublisherRole.Save(); Role contentAuthorRole = new Role(); contentAuthorRole.RoleName = "Content Authors"; contentAuthorRole.SiteId = site.SiteId; contentAuthorRole.SiteGuid = site.SiteGuid; contentAuthorRole.Save(); Role newsletterAdminRole = new Role(); newsletterAdminRole.RoleName = "Newsletter Administrators"; newsletterAdminRole.SiteId = site.SiteId; newsletterAdminRole.SiteGuid = site.SiteGuid; newsletterAdminRole.Save(); // if using related sites mode there is a problem if we already have user [email protected] // and we create another one in the child site with the same email and login so we need to make it different // we could just skip creating this user since in related sites mode all users come from the first site // but then if the config were changed to not related sites mode there would be no admin user // so in related sites mode we create one only as a backup in case settings are changed later int countOfSites = SiteSettings.SiteCount(); string siteDifferentiator = string.Empty; if ( (countOfSites >= 1) && (WebConfigSettings.UseRelatedSiteMode) ) { if (site.SiteId > 1) { siteDifferentiator = site.SiteId.ToInvariantString(); } } mojoMembershipProvider membership = Membership.Provider as mojoMembershipProvider; bool overridRelatedSiteMode = true; SiteUser adminUser = new SiteUser(site, overridRelatedSiteMode); adminUser.Email = "admin" + siteDifferentiator + "@admin.com"; adminUser.Name = "Admin"; adminUser.LoginName = "admin" + siteDifferentiator; adminUser.Password = "******"; if (membership != null) { adminUser.Password = membership.EncodePassword(site, adminUser, "admin"); } adminUser.PasswordQuestion = "What is your user name?"; adminUser.PasswordAnswer = "admin"; adminUser.Save(); Role.AddUser(adminRole.RoleId, adminUser.UserId, adminRole.RoleGuid, adminUser.UserGuid); }
private void AddRole_Click(Object sender, EventArgs e) { if ((userId > -1)&&(siteSettings != null)) { SiteUser user = new SiteUser(siteSettings, userId); int roleID = int.Parse(allRoles.SelectedItem.Value, CultureInfo.InvariantCulture); Role role = new Role(roleID); Role.AddUser(roleID, userId, role.RoleGuid, user.UserGuid); user.RolesChanged = true; user.Save(); BindRoles(); upRoles.Update(); } //WebUtils.SetupRedirect(this, Request.RawUrl); }
private void Page_Load(object sender, EventArgs e) { if (!WebUser.IsAdminOrRoleAdmin) { SiteUtils.RedirectToAccessDeniedPage(this); return; } if (SiteUtils.IsFishyPost(this)) { SiteUtils.RedirectToAccessDeniedPage(this); return; } SecurityHelper.DisableBrowserCache(); LoadParams(); role = new Role(roleID); EnforceSecurity(); SetupScript(); PopulateLabels(); if (!Page.IsPostBack) { BindData(); } }
protected void RolesList_ItemCommand(object sender, DataListCommandEventArgs e) { if (debugLog) { log.Debug("fired event RolesList_ItemCommand"); } int roleID = (int)rolesList.DataKeys[e.Item.ItemIndex]; Role role = new Role(roleID); switch (e.CommandName) { case "edit": rolesList.EditItemIndex = e.Item.ItemIndex; BindRoleList(); break; case "apply": role.RoleName = ((TextBox)e.Item.FindControl("roleName")).Text; role.Save(); rolesList.EditItemIndex = -1; BindRoleList(); break; case "delete": if (role.CanBeDeleted(WebConfigSettings.RolesThatCannotBeDeleted.SplitOnChar(';'))) { Role.DeleteRole(roleID); rolesList.EditItemIndex = -1; } BindRoleList(); break; //case "members": // roleName = ((TextBox)e.Item.FindControl("roleName")).Text; // role.RoleName = roleName; // role.Save(); // string redirectUrl // = SiteRoot + "/Admin/SecurityRoles.aspx?roleId=" // + roleID + "&rolename=" + roleName; // WebUtils.SetupRedirect(this, redirectUrl); // break; case "cancel": WebUtils.SetupRedirect(this, Request.RawUrl); break; } }
/// <summary> /// required implementation /// </summary> /// <param name="roleName">a role</param> /// <returns>a list of users</returns> public override string[] GetUsersInRole(string roleName) { SiteSettings siteSettings = CacheHelper.GetCurrentSiteSettings(); if (siteSettings != null) { Role role = new Role(siteSettings.SiteId, roleName); if (role.RoleId > -1) { string[] userList = new string[role.CountOfUsers()]; int i = 0; using (IDataReader reader = Role.GetRoleMembers(role.RoleId)) { while (reader.Read()) { if (siteSettings.UseEmailForLogin) { userList[i] = reader["Email"].ToString(); } else { userList[i] = reader["LoginName"].ToString(); } i += 1; } } return userList; } } return new string[0]; }
/// <summary> /// required implementation /// </summary> /// <param name="userNames">a list of usernames</param> /// <param name="roleNames">a list of roles</param> public override void AddUsersToRoles(string[] userNames, string[] roleNames) { SiteSettings siteSettings = CacheHelper.GetCurrentSiteSettings(); if((siteSettings != null)&&(userNames != null)&&(roleNames != null)) { foreach (String userName in userNames) { SiteUser siteUser = new SiteUser(siteSettings, userName); if (siteUser.UserId > -1) { foreach (String roleName in roleNames) { Role role = new Role(siteSettings.SiteId, roleName); if (role.RoleId > -1) { Role.AddUser(role.RoleId, siteUser.UserId, role.RoleGuid, siteUser.UserGuid); } } } } } }
/// <summary> /// required implementation /// </summary> /// <param name="roleName">a role</param> /// <param name="throwOnPopulatedRole">get upset of users are in a role</param> /// <returns></returns> public override bool DeleteRole(string roleName, bool throwOnPopulatedRole) { bool result = false; SiteSettings siteSettings = CacheHelper.GetCurrentSiteSettings(); if((siteSettings != null)&&(roleName != null)&&(roleName.Length > 0)) { Role role = new Role(siteSettings.SiteId, roleName); if (role.RoleId > 0) { if ((throwOnPopulatedRole) && (role.HasUsers())) { throw new Exception("This role cannot be deleted because it has users."); } Role.DeleteRole(role.RoleId); result = true; } } return result; }
/// <summary> /// required implementation /// </summary> /// <param name="roleName">a role name</param> public override void CreateRole(string roleName) { SiteSettings siteSettings = CacheHelper.GetCurrentSiteSettings(); if ((siteSettings != null)&&(roleName != null)&&(roleName.Length > 0)) { if (!Role.Exists(siteSettings.SiteId, roleName)) { Role role = new Role(); role.SiteId = siteSettings.SiteId; role.SiteGuid = siteSettings.SiteGuid; role.RoleName = roleName; role.Save(); } } }
public static Role GetRoleByName(int siteId, string roleName) { if (UseRelatedSiteMode) { siteId = RelatedSiteID; } Role role = null; using (IDataReader reader = DBRoles.GetSiteRoles(siteId)) { while (reader.Read()) { string foundName = reader["RoleName"].ToString(); if (foundName == roleName) { role = new Role(); role.roleID = Convert.ToInt32(reader["RoleID"]); role.siteID = Convert.ToInt32(reader["SiteID"]); role.displayName = reader["DisplayName"].ToString(); role.roleName = reader["RoleName"].ToString(); role.roleGuid = new Guid(reader["RoleGuid"].ToString()); role.siteGuid = new Guid(reader["SiteGuid"].ToString()); } } } return role; }
//public static Collection<Role> GetbySite(int siteId) //{ // bool enforceRelatedSitesMode = false; // return GetbySite(siteId, enforceRelatedSitesMode); //} public static Collection<Role> GetbySite(int siteId) { if (UseRelatedSiteMode) { siteId = RelatedSiteID; } Collection<Role> roles = new Collection<Role>(); using (IDataReader reader = DBRoles.GetSiteRoles(siteId)) { while (reader.Read()) { Role role = new Role(); role.roleID = Convert.ToInt32(reader["RoleID"]); role.siteID = Convert.ToInt32(reader["SiteID"]); role.displayName = reader["DisplayName"].ToString(); role.roleName = reader["RoleName"].ToString(); role.roleGuid = new Guid(reader["RoleGuid"].ToString()); role.siteGuid = new Guid(reader["SiteGuid"].ToString()); role.memberCount = Convert.ToInt32(reader["MemberCount"]); roles.Add(role); } } return roles; }
public static void AddUserToDefaultRoles(SiteUser siteUser) { Role role = new Role(siteUser.SiteId, "Authenticated Users"); if (role.RoleId > -1) { Role.AddUser(role.RoleId, siteUser.UserId, role.RoleGuid, siteUser.UserGuid); } string defaultRoles = string.Empty; if (System.Configuration.ConfigurationManager.AppSettings["DefaultRolesForNewUsers"] != null) { defaultRoles = System.Configuration.ConfigurationManager.AppSettings["DefaultRolesForNewUsers"]; } if (defaultRoles.Length > 0) { if (defaultRoles.IndexOf(";") == -1) { role = new Role(siteUser.SiteId, defaultRoles); if (role.RoleId > -1) { Role.AddUser(role.RoleId, siteUser.UserId, role.RoleGuid, siteUser.UserGuid); } } else { string[] roleArray = defaultRoles.Split(';'); foreach (string roleName in roleArray) { if (!string.IsNullOrEmpty(roleName)) { role = new Role(siteUser.SiteId, roleName); if (role.RoleId > -1) { Role.AddUser(role.RoleId, siteUser.UserId, role.RoleGuid, siteUser.UserGuid); } } } } } }