Ejemplo n.º 1
0
        public int Groups_Save(int portalId, ForumGroupInfo fg, bool isNew)
        {
            var rc = new Security.Roles.RoleController();
            var db = new Data.Common();

            var permissionsId = -1;

            if (fg.PermissionsId == -1)
            {
                var ri = rc.GetRoleByName(portalId, "Administrators");
                if (ri != null)
                {
                    fg.PermissionsId = db.CreatePermSet(ri.RoleID.ToString());
                    permissionsId    = fg.PermissionsId;
                }
            }

            var groupId = DataProvider.Instance().Groups_Save(portalId, fg.ModuleId, fg.ForumGroupId, fg.GroupName, fg.SortOrder, fg.Active, fg.Hidden, fg.PermissionsId, fg.PrefixURL);

            if (isNew)
            {
                Permissions.CreateDefaultSets(portalId, permissionsId);
                var moduleId = fg.ModuleId;
                var sKey     = "G:" + groupId.ToString();
                Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.TopicsTemplateId, "0");
                Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.TopicTemplateId, "0");
                Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.TopicFormId, "0");
                Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.ReplyFormId, "0");
                Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.AllowRSS, "false");
            }

            DataCache.CacheClear(string.Format(CacheKeys.ForumList, fg.ModuleId));

            return(groupId);
        }
Ejemplo n.º 2
0
        public int Groups_Save(int portalId, ForumGroupInfo fg, bool isNew)
        {
            var rc = new Security.Roles.RoleController();
            var db = new Data.Common();

            var permissionsId = -1;
            if (fg.PermissionsId == -1)
            {
                var ri = rc.GetRoleByName(portalId, "Administrators");
                if (ri != null)
                {
                    fg.PermissionsId = db.CreatePermSet(ri.RoleID.ToString());
                    permissionsId = fg.PermissionsId;
                }
            }

            var groupId = DataProvider.Instance().Groups_Save(portalId, fg.ModuleId, fg.ForumGroupId, fg.GroupName, fg.SortOrder, fg.Active, fg.Hidden, fg.PermissionsId, fg.PrefixURL);
            if (isNew)
            {
                Permissions.CreateDefaultSets(portalId, permissionsId);
                var moduleId = fg.ModuleId;
                var sKey = "G:" + groupId.ToString();
                Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.TopicsTemplateId, "0");
                Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.TopicTemplateId, "0");
                Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.TopicFormId, "0");
                Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.ReplyFormId, "0");
                Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.AllowRSS, "false");
            }

            DataCache.CacheClear(string.Format(CacheKeys.ForumList, fg.ModuleId));

            return groupId;
        }
Ejemplo n.º 3
0
        public static string GetRoleIds(string[] Roles, int SiteId)
        {
            int    i       = 0;
            string RoleIds = "";
            var    db      = new Data.Common();
            object obj     = null;         // DataCache.CacheRetrieve(SiteId & "afroles")

            if (obj == null)
            {
                var rc = new Security.Roles.RoleController();
                foreach (Security.Roles.RoleInfo ri in rc.GetPortalRoles(SiteId))
                {
                    string roleName = ri.RoleName;
                    foreach (string role in Roles)
                    {
                        if (!string.IsNullOrEmpty(role))
                        {
                            if (roleName == role)
                            {
                                RoleIds += ri.RoleID.ToString() + ";";
                                break;
                            }
                        }
                    }
                }
                // DataCache.CacheStore(SiteId & "afroles", RoleIds)
            }
            return(RoleIds);
        }
        protected void CopyLanguageToNationalityOfNewUsers()
        {
            string roleName = "Registered Users";
            Security.Roles.RoleController roleCtlr = new Security.Roles.RoleController();
            ArrayList objUserRoles = roleCtlr.GetUsersByRoleName(0, roleName);
            foreach (Entities.Users.UserInfo user in objUserRoles)
            {
                string nat = user.Profile.GetPropertyValue("OurSpaceNationality");
                if (user.Profile.GetPropertyValue("OurSpaceNationality") == null)
                {
                    string lang = user.Profile.GetPropertyValue("PreferredLocale");
                    user.Profile.SetProfileProperty("OurSpaceNationality", lang);
                    ProfileController.UpdateUserProfile(user);
                }

            }
        }
Ejemplo n.º 5
0
        private static ArrayList GetRoles(int PortalId)
        {
            object    obj = DataCache.CacheRetrieve(PortalId + "RoleNames");
            ArrayList roleNames;

            if (obj == null)
            {
                var objRoleController = new Security.Roles.RoleController();
                roleNames = objRoleController.GetPortalRoles(PortalId);
                DataCache.CacheStore(PortalId + "RoleNames", roleNames);
            }
            else
            {
                roleNames = (ArrayList)obj;
            }
            return(roleNames);
        }
Ejemplo n.º 6
0
        public static bool HasPerm(string AuthorizedRoles, int UserId, int PortalId)
        {
            string userRoles;

            userRoles = UserRolesDictionary.GetRoles(UserId.ToString() + PortalId.ToString());
            if (string.IsNullOrEmpty(userRoles))
            {
                var      social  = new Social();
                var      uc      = new Security.Roles.RoleController();
                string[] roles   = DotNetNuke.Entities.Users.UserController.GetUserById(PortalId, UserId).Roles;
                string   roleIds = GetRoleIds(roles, PortalId);
                userRoles = roleIds + "|" + UserId + "|" + social.ActiveSocialGroups(UserId, PortalId) + "|";
                UserRolesDictionary.AddRoles(UserId.ToString() + PortalId.ToString(), userRoles);
            }
            if (string.IsNullOrEmpty(userRoles))
            {
                return(false);
            }
            return(HasPerm(AuthorizedRoles, userRoles));
        }
Ejemplo n.º 7
0
        internal static void CreateDefaultSets(int PortalId, int PermissionsId)
        {
            var db = new Data.Common();
            var rc = new Security.Roles.RoleController();

            Security.Roles.RoleInfo ri;
            ri = rc.GetRoleByName(PortalId, "Registered Users");
            string permSet;

            if (ri != null)
            {
                permSet = db.GetPermSet(PermissionsId, "View");
                permSet = AddPermToSet(ri.RoleID.ToString(), 0, permSet);
                db.SavePermSet(PermissionsId, "View", permSet);
                permSet = db.GetPermSet(PermissionsId, "Read");
                permSet = AddPermToSet(ri.RoleID.ToString(), 0, permSet);
                db.SavePermSet(PermissionsId, "Read", permSet);
                permSet = db.GetPermSet(PermissionsId, "Create");
                permSet = AddPermToSet(ri.RoleID.ToString(), 0, permSet);
                db.SavePermSet(PermissionsId, "Create", permSet);
                permSet = db.GetPermSet(PermissionsId, "Reply");
                permSet = AddPermToSet(ri.RoleID.ToString(), 0, permSet);
                db.SavePermSet(PermissionsId, "Reply", permSet);
            }
            permSet = db.GetPermSet(PermissionsId, "View");
            permSet = AddPermToSet("-3", 0, permSet);
            db.SavePermSet(PermissionsId, "View", permSet);
            permSet = db.GetPermSet(PermissionsId, "Read");
            permSet = AddPermToSet("-3", 0, permSet);
            db.SavePermSet(PermissionsId, "Read", permSet);
            permSet = db.GetPermSet(PermissionsId, "View");
            permSet = AddPermToSet("-1", 0, permSet);
            db.SavePermSet(PermissionsId, "View", permSet);
            permSet = db.GetPermSet(PermissionsId, "Read");
            permSet = AddPermToSet("-1", 0, permSet);
            db.SavePermSet(PermissionsId, "Read", permSet);
        }
Ejemplo n.º 8
0
        public static List<Entities.Users.UserInfo> GetListOfModerators(int portalId, int forumId)
        {
            var rc = new Security.Roles.RoleController();
            var uc = new Entities.Users.UserController();
            var fc = new ForumController();
            var fi = fc.Forums_Get(forumId, -1, false, true);
            if (fi == null)
                return null;

            var mods = new List<Entities.Users.UserInfo>();
            SubscriptionInfo si = null;
            var modApprove = fi.Security.ModApprove;
            var modRoles = modApprove.Split('|')[0].Split(';');

            foreach (var r in modRoles)
            {
                if (string.IsNullOrEmpty(r)) 
                    continue;

                var rid = Convert.ToInt32(r);
                var rName = rc.GetRole(rid, portalId).RoleName;
                foreach (Entities.Users.UserRoleInfo usr in rc.GetUserRolesByRoleName(portalId, rName))
                {
                    var ui = uc.GetUser(portalId, usr.UserID);

                    if (!(mods.Contains(ui)))
                    {
                        mods.Add(ui);
                    }
                }
            }

            return mods;
        }
Ejemplo n.º 9
0
        public static void SendEmailToModerators(int templateId, int portalId, int forumId, int topicId, int replyId, int moduleID, int tabID, string comments, UserInfo user)
        {
            var portalSettings = (Entities.Portals.PortalSettings)(HttpContext.Current.Items["PortalSettings"]);
            var mainSettings   = DataCache.MainSettings(moduleID);
            var fc             = new ForumController();
            var fi             = fc.Forums_Get(forumId, -1, false, true);

            if (fi == null)
            {
                return;
            }

            var subs       = new List <SubscriptionInfo>();
            var rc         = new Security.Roles.RoleController();
            var rp         = RoleProvider.Instance();
            var uc         = new Entities.Users.UserController();
            var modApprove = fi.Security.ModApprove;
            var modRoles   = modApprove.Split('|')[0].Split(';');

            foreach (var r in modRoles)
            {
                if (string.IsNullOrEmpty(r))
                {
                    continue;
                }
                var rid   = Convert.ToInt32(r);
                var rName = rc.GetRole(rid, portalId).RoleName;
                foreach (UserRoleInfo usr in rp.GetUserRoles(portalId, null, rName))
                {
                    var ui = uc.GetUser(portalId, usr.UserID);
                    var si = new SubscriptionInfo
                    {
                        UserId      = ui.UserID,
                        DisplayName = ui.DisplayName,
                        Email       = ui.Email,
                        FirstName   = ui.FirstName,
                        LastName    = ui.LastName
                    };
                    if (!(subs.Contains(si)))
                    {
                        subs.Add(si);
                    }
                }
            }

            if (subs.Count <= 0)
            {
                return;
            }

            var sTemplate = string.Empty;
            var tc        = new TemplateController();
            var ti        = tc.Template_Get(templateId, portalId, moduleID);
            var subject   = TemplateUtils.ParseEmailTemplate(ti.Subject, string.Empty, portalId, moduleID, tabID, forumId, topicId, replyId, Convert.ToInt32(portalSettings.TimeZone.BaseUtcOffset.TotalMinutes));
            var bodyText  = TemplateUtils.ParseEmailTemplate(ti.TemplateText, string.Empty, portalId, moduleID, tabID, forumId, topicId, replyId, comments, user, -1, Convert.ToInt32(portalSettings.TimeZone.BaseUtcOffset.TotalMinutes));
            var bodyHTML  = TemplateUtils.ParseEmailTemplate(ti.TemplateHTML, string.Empty, portalId, moduleID, tabID, forumId, topicId, replyId, comments, user, -1, Convert.ToInt32(portalSettings.TimeZone.BaseUtcOffset.TotalMinutes));
            var sFrom     = fi.EmailAddress != string.Empty ? fi.EmailAddress : portalSettings.Email;

            var oEmail = new Email
            {
                Recipients = subs,
                Subject    = subject,
                From       = sFrom,
                BodyText   = bodyText,
                BodyHTML   = bodyHTML,
                UseQueue   = mainSettings.MailQueue
            };


            new Thread(oEmail.Send).Start();
        }
Ejemplo n.º 10
0
		internal static void CreateDefaultSets(int PortalId, int PermissionsId)
		{
			var db = new Data.Common();
			var rc = new Security.Roles.RoleController();
			Security.Roles.RoleInfo ri;
			ri = rc.GetRoleByName(PortalId, "Registered Users");
			string permSet;
			if (ri != null)
			{
				permSet = db.GetPermSet(PermissionsId, "View");
				permSet = AddPermToSet(ri.RoleID.ToString(), 0, permSet);
				db.SavePermSet(PermissionsId, "View", permSet);
			    permSet = db.GetPermSet(PermissionsId, "Read");
				permSet = AddPermToSet(ri.RoleID.ToString(), 0, permSet);
				db.SavePermSet(PermissionsId, "Read", permSet);
			    permSet = db.GetPermSet(PermissionsId, "Create");
				permSet = AddPermToSet(ri.RoleID.ToString(), 0, permSet);
				db.SavePermSet(PermissionsId, "Create", permSet);
			    permSet = db.GetPermSet(PermissionsId, "Reply");
				permSet = AddPermToSet(ri.RoleID.ToString(), 0, permSet);
				db.SavePermSet(PermissionsId, "Reply", permSet);
			}
			permSet = db.GetPermSet(PermissionsId, "View");
			permSet = AddPermToSet("-3", 0, permSet);
			db.SavePermSet(PermissionsId, "View", permSet);
		    permSet = db.GetPermSet(PermissionsId, "Read");
			permSet = AddPermToSet("-3", 0, permSet);
			db.SavePermSet(PermissionsId, "Read", permSet);
		    permSet = db.GetPermSet(PermissionsId, "View");
			permSet = AddPermToSet("-1", 0, permSet);
			db.SavePermSet(PermissionsId, "View", permSet);
		    permSet = db.GetPermSet(PermissionsId, "Read");
			permSet = AddPermToSet("-1", 0, permSet);
			db.SavePermSet(PermissionsId, "Read", permSet);
		}
Ejemplo n.º 11
0
		public static void SendEmailToModerators(int templateId, int portalId, int forumId, int topicId, int replyId, int moduleID, int tabID, string comments, UserInfo user)
		{
			var portalSettings = (Entities.Portals.PortalSettings)(HttpContext.Current.Items["PortalSettings"]);
			var mainSettings = DataCache.MainSettings(moduleID);
			var fc = new ForumController();
			var fi = fc.Forums_Get(forumId, -1, false, true);
			if (fi == null)
				return;

			var subs = new List<SubscriptionInfo>();
			var rc = new Security.Roles.RoleController();
			var uc = new Entities.Users.UserController();
		    var modApprove = fi.Security.ModApprove;
			var modRoles = modApprove.Split('|')[0].Split(';');
		    foreach (var r in modRoles)
		    {
		        if (string.IsNullOrEmpty(r)) continue;
		        var rid = Convert.ToInt32(r);
		        var rName = rc.GetRole(rid, portalId).RoleName;
		        foreach (UserRoleInfo usr in rc.GetUserRolesByRoleName(portalId, rName))
		        {
		            var ui = uc.GetUser(portalId, usr.UserID);
		            var si = new SubscriptionInfo
		                         {
		                             UserId = ui.UserID,
		                             DisplayName = ui.DisplayName,
		                             Email = ui.Email,
		                             FirstName = ui.FirstName,
		                             LastName = ui.LastName
		                         };
		            if (! (subs.Contains(si)))
		            {
		                subs.Add(si);
		            }
		        }
		    }

		    if (subs.Count <= 0)
				return;

		    var sTemplate = string.Empty;
			var tc = new TemplateController();
			var ti = tc.Template_Get(templateId, portalId, moduleID);
			var subject = TemplateUtils.ParseEmailTemplate(ti.Subject, string.Empty, portalId, moduleID, tabID, forumId, topicId, replyId, portalSettings.TimeZoneOffset);
			var bodyText = TemplateUtils.ParseEmailTemplate(ti.TemplateText, string.Empty, portalId, moduleID, tabID, forumId, topicId, replyId, comments, user, -1, portalSettings.TimeZoneOffset);
			var bodyHTML = TemplateUtils.ParseEmailTemplate(ti.TemplateHTML, string.Empty, portalId, moduleID, tabID, forumId, topicId, replyId, comments, user, -1, portalSettings.TimeZoneOffset);
		    var sFrom = fi.EmailAddress != string.Empty ? fi.EmailAddress : portalSettings.Email;

			var oEmail = new Email
			                 {
			                     Recipients = subs,
			                     Subject = subject,
			                     From = sFrom,
			                     BodyText = bodyText,
			                     BodyHTML = bodyHTML,
                                 UseQueue = mainSettings.MailQueue
			                 };


			new Thread(oEmail.Send).Start();
		}
Ejemplo n.º 12
0
        protected void SetNationalityFromIP()
        {
            string roleName = "Registered Users";
            Security.Roles.RoleController roleCtlr = new Security.Roles.RoleController();
            ArrayList objUserRoles = roleCtlr.GetUsersByRoleName(PortalId, roleName);
            foreach (Entities.Users.UserInfo user in objUserRoles)
            {

                    string CONNECTION_STRING = DotNetNuke.Common.Utilities.Config.GetConnectionString();
                    SqlConnection conn = new SqlConnection(CONNECTION_STRING);
                    // Checking if nationality has been set from IP before
                    conn.Open();
                    SqlDataReader readerUserAlreadyDone = SqlHelper.ExecuteReader(conn, CommandType.Text, "SELECT * FROM OURSPACE_LOG WHERE userId = " + user.UserID);

                if (!readerUserAlreadyDone.HasRows)
                    {
                        SqlConnection conn2 = new SqlConnection(CONNECTION_STRING);
                        conn2.Open();
                        SqlDataReader reader = SqlHelper.ExecuteReader(conn2, CommandType.Text, "SELECT * FROM Users WHERE Userid = " + user.UserID);

                        if (reader.Read())
                        {
                            string ip = reader["LastIPAddress"].ToString();
                            Ourspace_Utilities.View.LocationInfo location = Ourspace_Utilities.View.GeoLocationService.GetLocationInfo(ip);
                            if (location != null)
                            {
                                string countryCode = GetCountryFromCountryName(location.CountryName);
                                if (countryCode != "UNKNOWN")
                                {
                                    user.Profile.SetProfileProperty("OurSpaceNationality", countryCode);
                                    ProfileController.UpdateUserProfile(user);
                                }
                                    lblCountry.Text += user.UserID + " " + ip + " " + location.CountryName + " " + countryCode + "<br/>";
                                    SqlConnection conn3 = new SqlConnection(CONNECTION_STRING);
                                    conn3.Open();
                                    SqlHelper.ExecuteNonQuery(conn3, CommandType.Text, "INSERT INTO OURSPACE_LOG  VALUES ('" + user.UserID + " " + ip + " " + location.CountryName + " " + countryCode + "', " + user.UserID + ")");
                                    conn3.Close();

                            }

                        }
                        conn2.Close();
                    }
                conn.Close();

            }
        }
Ejemplo n.º 13
0
        public void SendEmailToModerators(int TemplateId, int PortalId, int ForumId, int TopicId, int ReplyId, int ModuleID, int TabID, string Comments, DotNetNuke.Entities.Users.UserInfo User)
        {
            var _portalSettings = (Entities.Portals.PortalSettings)(HttpContext.Current.Items["PortalSettings"]);
            SettingsInfo MainSettings = DataCache.MainSettings(ModuleID);
            var fc = new ForumController();
            Forum fi = fc.Forums_Get(ForumId, -1, false, true);
            if (fi == null)
            {
                return;
            }
            var subs = new List<SubscriptionInfo>();
            var rc = new Security.Roles.RoleController();
            var uc = new Entities.Users.UserController();
            SubscriptionInfo si;
            string modApprove = fi.Security.ModApprove;
            string[] modRoles = modApprove.Split('|')[0].Split(';');
            if (modRoles != null)
            {
                foreach (string r in modRoles)
                {
                    if (! (string.IsNullOrEmpty(r)))
                    {
                        int rid = Convert.ToInt32(r);
                        string rName = rc.GetRole(rid, PortalId).RoleName;
                        foreach (Entities.Users.UserRoleInfo usr in rc.GetUserRolesByRoleName(PortalId, rName))
                        {
                            var ui = uc.GetUser(PortalId, usr.UserID);
                            si = new SubscriptionInfo
                                     {
                                         UserId = ui.UserID,
                                         DisplayName = ui.DisplayName,
                                         Email = ui.Email,
                                         FirstName = ui.FirstName,
                                         LastName = ui.LastName
                                     };
                            if (! (subs.Contains(si)))
                            {
                                subs.Add(si);
                            }
                        }
                    }
                }
            }

            if (subs.Count <= 0)
            {
                return;
            }
            string Subject;
            string BodyText;
            string BodyHTML;
            string sTemplate = string.Empty;
            var tc = new TemplateController();
            TemplateInfo ti = tc.Template_Get(TemplateId, PortalId, ModuleID);
            Subject = TemplateUtils.ParseEmailTemplate(ti.Subject, string.Empty, PortalId, ModuleID, TabID, ForumId, TopicId, ReplyId, _portalSettings.TimeZoneOffset);
            BodyText = TemplateUtils.ParseEmailTemplate(ti.TemplateText, string.Empty, PortalId, ModuleID, TabID, ForumId, TopicId, ReplyId, Comments, User, -1, _portalSettings.TimeZoneOffset);
            BodyHTML = TemplateUtils.ParseEmailTemplate(ti.TemplateHTML, string.Empty, PortalId, ModuleID, TabID, ForumId, TopicId, ReplyId, Comments, User, -1, _portalSettings.TimeZoneOffset);
            string sFrom;

            sFrom = fi.EmailAddress != string.Empty ? fi.EmailAddress : _portalSettings.Email;

            var oEmail = new Email
                             {
                                 Recipients = subs,
                                 Subject = Subject,
                                 From = sFrom,
                                 BodyText = BodyText,
                                 BodyHTML = BodyHTML,
                                 SmtpServer = Convert.ToString(_portalSettings.HostSettings["SMTPServer"]),
                                 SmtpUserName = Convert.ToString(_portalSettings.HostSettings["SMTPUsername"]),
                                 SmtpPassword = Convert.ToString(_portalSettings.HostSettings["SMTPPassword"]),
                                 SmtpAuthentication = Convert.ToString(_portalSettings.HostSettings["SMTPAuthentication"])
                             };

            //#if SKU_ENTERPRISE
            oEmail.UseQueue = MainSettings.MailQueue;
            //#endif
            var objThread = new System.Threading.Thread(oEmail.Send);
            objThread.Start();
        }
Ejemplo n.º 14
0
		private static ArrayList GetRoles(int PortalId)
		{
			object obj = DataCache.CacheRetrieve(PortalId + "RoleNames");
			ArrayList roleNames;
			if (obj == null)
			{
				var objRoleController = new Security.Roles.RoleController();
				roleNames = objRoleController.GetPortalRoles(PortalId);
				DataCache.CacheStore(PortalId + "RoleNames", roleNames);
			}
			else
			{
				roleNames = (ArrayList)obj;
			}
			return roleNames;
		}
Ejemplo n.º 15
0
		public static string GetRoleIds(string[] Roles, int SiteId)
		{
			int i = 0;
			string RoleIds = "";
			var db = new Data.Common();
			object obj = null; // DataCache.CacheRetrieve(SiteId & "afroles")
			if (obj == null)
			{
				var rc = new Security.Roles.RoleController();
				foreach (Security.Roles.RoleInfo ri in rc.GetPortalRoles(SiteId))
				{
					string roleName = ri.RoleName;
					foreach (string role in Roles)
					{
						if (!string.IsNullOrEmpty(role))
						{
							if (roleName == role)
							{
								RoleIds += ri.RoleID.ToString() + ";";
								break;
							}
						}
					}
				}
				// DataCache.CacheStore(SiteId & "afroles", RoleIds)
			}
		    return RoleIds;
		}
Ejemplo n.º 16
0
        public void SendEmailToModerators(int TemplateId, int PortalId, int ForumId, int TopicId, int ReplyId, int ModuleID, int TabID, string Comments, DotNetNuke.Entities.Users.UserInfo User)
        {
            var          _portalSettings = (Entities.Portals.PortalSettings)(HttpContext.Current.Items["PortalSettings"]);
            SettingsInfo MainSettings    = DataCache.MainSettings(ModuleID);
            var          fc = new ForumController();
            Forum        fi = fc.Forums_Get(ForumId, -1, false, true);

            if (fi == null)
            {
                return;
            }
            var subs = new List <SubscriptionInfo>();
            var rc   = new Security.Roles.RoleController();
            var uc   = new Entities.Users.UserController();
            SubscriptionInfo si;
            string           modApprove = fi.Security.ModApprove;

            string[] modRoles = modApprove.Split('|')[0].Split(';');
            if (modRoles != null)
            {
                foreach (string r in modRoles)
                {
                    if (!(string.IsNullOrEmpty(r)))
                    {
                        int    rid   = Convert.ToInt32(r);
                        string rName = rc.GetRole(rid, PortalId).RoleName;
                        foreach (Entities.Users.UserRoleInfo usr in rc.GetUserRolesByRoleName(PortalId, rName))
                        {
                            var ui = uc.GetUser(PortalId, usr.UserID);
                            si = new SubscriptionInfo
                            {
                                UserId      = ui.UserID,
                                DisplayName = ui.DisplayName,
                                Email       = ui.Email,
                                FirstName   = ui.FirstName,
                                LastName    = ui.LastName
                            };
                            if (!(subs.Contains(si)))
                            {
                                subs.Add(si);
                            }
                        }
                    }
                }
            }

            if (subs.Count <= 0)
            {
                return;
            }
            string       Subject;
            string       BodyText;
            string       BodyHTML;
            string       sTemplate = string.Empty;
            var          tc        = new TemplateController();
            TemplateInfo ti        = tc.Template_Get(TemplateId, PortalId, ModuleID);

            Subject  = TemplateUtils.ParseEmailTemplate(ti.Subject, string.Empty, PortalId, ModuleID, TabID, ForumId, TopicId, ReplyId, _portalSettings.TimeZoneOffset);
            BodyText = TemplateUtils.ParseEmailTemplate(ti.TemplateText, string.Empty, PortalId, ModuleID, TabID, ForumId, TopicId, ReplyId, Comments, User, -1, _portalSettings.TimeZoneOffset);
            BodyHTML = TemplateUtils.ParseEmailTemplate(ti.TemplateHTML, string.Empty, PortalId, ModuleID, TabID, ForumId, TopicId, ReplyId, Comments, User, -1, _portalSettings.TimeZoneOffset);
            string sFrom;

            sFrom = fi.EmailAddress != string.Empty ? fi.EmailAddress : _portalSettings.Email;

            var oEmail = new Email
            {
                Recipients         = subs,
                Subject            = Subject,
                From               = sFrom,
                BodyText           = BodyText,
                BodyHTML           = BodyHTML,
                SmtpServer         = Host.SMTPServer,                     // Convert.ToString(_portalSettings.HostSettings["SMTPServer"]),
                SmtpUserName       = Host.SMTPUsername,                   // Convert.ToString(_portalSettings.HostSettings["SMTPUsername"]),
                SmtpPassword       = Host.SMTPPassword,                   // Convert.ToString(_portalSettings.HostSettings["SMTPPassword"]),
                SmtpAuthentication = Host.SMTPAuthentication              // Convert.ToString(_portalSettings.HostSettings["SMTPAuthentication"])
            };

//#if SKU_ENTERPRISE
            oEmail.UseQueue = MainSettings.MailQueue;
//#endif
            var objThread = new System.Threading.Thread(oEmail.Send);

            objThread.Start();
        }
Ejemplo n.º 17
0
		public static bool HasPerm(string AuthorizedRoles, int UserId, int PortalId)
		{
			string userRoles;
			userRoles = UserRolesDictionary.GetRoles(UserId.ToString() + PortalId.ToString());
			if (string.IsNullOrEmpty(userRoles))
			{
				var social = new Social();
				var uc = new Security.Roles.RoleController();
				string[] roles = uc.GetRolesByUser(UserId, PortalId);
				string roleIds = GetRoleIds(roles, PortalId);
				userRoles = roleIds + "|" + UserId + "|" + social.ActiveSocialGroups(UserId, PortalId) + "|";
				UserRolesDictionary.AddRoles(UserId.ToString() + PortalId.ToString(), userRoles);
			}
			if (string.IsNullOrEmpty(userRoles))
			{
				return false;
			}
		    return HasPerm(AuthorizedRoles, userRoles);
		}