private void LoadAuthorsList()
        {
            //load authors role
            //load admins role
            var       rc      = new DotNetNuke.Security.Roles.RoleController();
            ArrayList al      = rc.GetUserRolesByRoleName(PortalId, HostController.Instance.GetString(Utility.PublishAuthorRole + PortalId));
            ArrayList alAdmin = rc.GetUserRolesByRoleName(PortalId, HostController.Instance.GetString(Utility.PublishAdminRole + PortalId));

            //check to make sure we only add authors who aren't already in the list.
            foreach (UserRoleInfo uri in alAdmin)
            {
                bool located = false;
                foreach (UserRoleInfo ur in al)
                {
                    if (uri.UserRoleID == ur.UserRoleID)
                    {
                        located = true;
                    }
                    break;
                }
                if (!located)
                {
                    al.Add(uri);
                }
            }

            //sort the author list alphabetically
            al.Sort(new UserRoleInfoComparer(true));
            ddlAuthor.DataTextField  = "FullName";
            ddlAuthor.DataValueField = "UserId";
            ddlAuthor.DataSource     = al;
            ddlAuthor.DataBind();
        }
 private bool CheckForAdminRole()
 {
     DotNetNuke.Security.Roles.RoleController roleController = new DotNetNuke.Security.Roles.RoleController();
     //ArrayList roles = roleController.GetUsersInRole(PortalId, "Administrators");
     ArrayList roles = roleController.GetUserRolesByRoleName(PortalId, "Administrators");
     foreach (UserRoleInfo userRoleInfo in roles)
     {
         if (userRoleInfo.UserID == UserId)
         {
             return true;
         }
     }
     return false;
 }
        private void LoadAuthorsList()
        {
            //load authors role
            //load admins role
            var rc = new DotNetNuke.Security.Roles.RoleController();
            ArrayList al = rc.GetUserRolesByRoleName(PortalId, HostController.Instance.GetString(Utility.PublishAuthorRole + PortalId));
            ArrayList alAdmin = rc.GetUserRolesByRoleName(PortalId, HostController.Instance.GetString(Utility.PublishAdminRole + PortalId));

            //check to make sure we only add authors who aren't already in the list.
            foreach (UserRoleInfo uri in alAdmin)
            {
                bool located = false;
                foreach (UserRoleInfo ur in al)
                {
                    if (uri.UserRoleID == ur.UserRoleID)
                        located = true;
                        break;
                }
                if (!located)
                {
                    al.Add(uri);
                }
            }

            //sort the author list alphabetically
            al.Sort(new UserRoleInfoComparer(true));
            ddlAuthor.DataTextField = "FullName";
            ddlAuthor.DataValueField = "UserId";
            ddlAuthor.DataSource = al;
            ddlAuthor.DataBind();
        }
Exemple #4
0
        /// <summary>
        /// Gets the notification emails.
        /// </summary>
        /// <param name="topic">The topic.</param>
        /// <returns>A List of Users</returns>
        public List <string> GetNotificationEmails(Topic topic)
        {
            Setting wikiSettings = new SettingBO(this.mUnitOfWork).GetByModuleID(topic.ModuleId);

            List <string> lstUsers = new List <string>();

            if (wikiSettings != null)
            {
                // Gather the email address from the roles assigned to this module...
                if (!string.IsNullOrWhiteSpace(wikiSettings.CommentNotifyRoles))
                {
                    DotNetNuke.Security.Roles.RoleController     objRoles   = new DotNetNuke.Security.Roles.RoleController();
                    DotNetNuke.Entities.Modules.ModuleController objModules = new DotNetNuke.Entities.Modules.ModuleController();
                    DotNetNuke.Entities.Modules.ModuleInfo       objModule  = objModules.GetModule(topic.ModuleId);

                    if (objModule != null)
                    {
                        bool fetchUsingDNNRoles    = false;
                        bool fetchUsingCustomRoles = false;
                        bool fetchViewUsers        = false;
                        bool fetchEditUsers        = false;

                        fetchUsingDNNRoles    = !string.IsNullOrWhiteSpace(wikiSettings.ContentEditorRoles) && wikiSettings.ContentEditorRoles.StartsWith("UseDNNSettings;");
                        fetchUsingCustomRoles = !string.IsNullOrWhiteSpace(wikiSettings.CommentNotifyRoles) && !wikiSettings.CommentNotifyRoles.StartsWith("UseDNNSettings;");

                        if (!fetchUsingCustomRoles)
                        {
                            fetchEditUsers = wikiSettings.CommentNotifyRoles.Contains(";Edit");
                            fetchViewUsers = wikiSettings.CommentNotifyRoles.Contains(";View");
                        }

                        // Compile our view users, only if enabled
                        if (fetchViewUsers)
                        {
                            foreach (string role in objModule.AuthorizedViewRoles.Trim(new char[] { ';' }).Split(new char[] { ';' }))
                            {
                                if (role.ToLower().Equals("all users"))
                                {
                                    // Trap against fake roles
                                    var arrUsers =
                                        DotNetNuke.Entities.Users.UserController.GetUsers(DotNetNuke.Entities.Portals.PortalController.GetCurrentPortalSettings().PortalId).OfType <UserInfo>();
                                    foreach (DotNetNuke.Entities.Users.UserInfo objUser in arrUsers)
                                    {
                                        if (!lstUsers.Contains(objUser.Email))
                                        {
                                            lstUsers.Add(objUser.Email);
                                        }
                                    }
                                }
                                else
                                {
                                    // This role should be legit
                                    foreach (DotNetNuke.Entities.Users.UserRoleInfo objUserRole in
                                             objRoles.GetUserRolesByRoleName(objModule.PortalID, role))
                                    {
                                        if (!lstUsers.Contains(objUserRole.Email))
                                        {
                                            lstUsers.Add(objUserRole.Email);
                                        }
                                    }
                                }
                            }
                        }

                        // Compile our edit users, only if enabled
                        if (fetchEditUsers)
                        {
                            if (fetchUsingDNNRoles)
                            {
                                // Fetch using dnn edit roles
                                foreach (string role in objModule.AuthorizedEditRoles.Trim(new char[] { ';' }).Split(new char[] { ';' }))
                                {
                                    if (role.ToLower().Equals("all users"))
                                    {
                                        // Trap against fake roles
                                    }
                                    else
                                    {
                                        // This role should be legit
                                        foreach (DotNetNuke.Entities.Users.UserRoleInfo objUserRole in objRoles.GetUserRolesByRoleName(objModule.PortalID, role))
                                        {
                                            if (!lstUsers.Contains(objUserRole.Email))
                                            {
                                                lstUsers.Add(objUserRole.Email);
                                            }
                                        }
                                    }
                                }
                            }
                            else
                            {
                                // Fetch using custom wiki edit roles
                                foreach (string role in wikiSettings.ContentEditorRoles.Trim(new char[] { ';' }).Split(new char[] { ';' }))
                                {
                                    foreach (DotNetNuke.Entities.Users.UserRoleInfo objUserRole in objRoles.GetUserRolesByRoleName(objModule.PortalID, role))
                                    {
                                        if (!lstUsers.Contains(objUserRole.Email))
                                        {
                                            lstUsers.Add(objUserRole.Email);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                // Gather any users emails address from comments in this topic...
                if (wikiSettings.CommentNotifyUsers == true)
                {
                    IEnumerable <CommentEmails> lstEmails = new CommentBO(this.mUnitOfWork).GetCommentNotifyUsers(topic.TopicID);

                    foreach (CommentEmails objCommentEmail in lstEmails)
                    {
                        if (!lstUsers.Contains(objCommentEmail.Email))
                        {
                            lstUsers.Add(objCommentEmail.Email);
                        }
                    }
                }
            }

            return(lstUsers);
        }