示例#1
0
        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;
        }
示例#2
0
        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();
            }
        }
示例#3
0
        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);
        }
示例#4
0
        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();

            }
        }
示例#6
0
        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;
            }
        }
示例#7
0
        /// <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];
        }
示例#8
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);
                            }
                        }
                    }

                }
            }
        }
示例#9
0
        /// <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;
        }
示例#10
0
        /// <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();
                }

            }
        }
示例#11
0
        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;
        }
示例#12
0
        //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;
        }
示例#13
0
        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);
                            }
                        }
                    }

                }

            }
        }