PageRenderTime 56ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/Web/Admin/RoleManager.aspx.cs

#
C# | 241 lines | 148 code | 54 blank | 39 comment | 11 complexity | 850216cd2a75e47a09c343bbd935a84d MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0, BSD-3-Clause, CPL-1.0, CC-BY-SA-3.0, GPL-2.0
  1. /// Author: Joe Audette
  2. /// Created: 2004-09-12
  3. /// Last Modified: 2011-11-09
  4. ///
  5. /// The use and distribution terms for this software are covered by the
  6. /// Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
  7. /// which can be found in the file CPL.TXT at the root of this distribution.
  8. /// By using this software in any fashion, you are agreeing to be bound by
  9. /// the terms of this license.
  10. ///
  11. /// You must not remove this notice, or any other, from this software.
  12. using System;
  13. using System.Collections.ObjectModel;
  14. using System.Web.UI.WebControls;
  15. using log4net;
  16. using mojoPortal.Business;
  17. using mojoPortal.Business.WebHelpers;
  18. using mojoPortal.Web.Framework;
  19. using Resources;
  20. namespace mojoPortal.Web.AdminUI
  21. {
  22. /// <summary>
  23. ///
  24. /// </summary>
  25. public partial class RoleManagerPage : NonCmsBasePage
  26. {
  27. private static readonly ILog log = LogManager.GetLogger(typeof(RoleManagerPage));
  28. private static bool debugLog = log.IsDebugEnabled;
  29. protected string EditPropertiesImage = "~/Data/SiteImages/" + WebConfigSettings.EditPropertiesImage;
  30. protected string DeleteLinkImage = "~/Data/SiteImages/" + WebConfigSettings.DeleteLinkImage;
  31. //protected bool IsAdmin = false;
  32. protected void Page_Load(object sender, EventArgs e)
  33. {
  34. if (!WebUser.IsAdminOrRoleAdmin)
  35. {
  36. SiteUtils.RedirectToAccessDeniedPage(this);
  37. return;
  38. }
  39. //http://www.mojoportal.com/Forums/Thread.aspx?thread=5815&mid=34&pageid=5&ItemID=2&pagenumber=1#post24015
  40. //if ((WebConfigSettings.UseRelatedSiteMode) && (WebConfigSettings.RelatedSiteModeHideRoleManagerInChildSites))
  41. //{
  42. // if (!siteSettings.IsServerAdminSite)
  43. // {
  44. // SiteUtils.RedirectToAccessDeniedPage(this);
  45. // return;
  46. // }
  47. //}
  48. LoadSettings();
  49. PopulateLabels();
  50. PopulateControls();
  51. }
  52. private void PopulateControls()
  53. {
  54. if (Page.IsPostBack) return;
  55. BindRoleList();
  56. }
  57. private void BindRoleList()
  58. {
  59. Collection<Role> siteRoles = Role.GetbySite(siteSettings.SiteId);
  60. if (!WebUser.IsAdmin)
  61. {
  62. // must be only Role Admin
  63. // remove admins role and role admins role
  64. // from list. Role Admins can't edit or manage
  65. // membership in Admins role or Role Admins role
  66. foreach (Role r in siteRoles)
  67. {
  68. if (r.Equals("Admins"))
  69. {
  70. siteRoles.Remove(r);
  71. break;
  72. }
  73. }
  74. foreach (Role r in siteRoles)
  75. {
  76. if (r.Equals("Role Admins"))
  77. {
  78. siteRoles.Remove(r);
  79. break;
  80. }
  81. }
  82. if (!WebConfigSettings.AllowRoleAdminsToCreateContentManagers)
  83. {
  84. foreach (Role r in siteRoles)
  85. {
  86. if (r.Equals("Content Administrators"))
  87. {
  88. siteRoles.Remove(r);
  89. break;
  90. }
  91. }
  92. }
  93. }
  94. rolesList.DataSource = siteRoles;
  95. rolesList.DataBind();
  96. }
  97. protected void btnAddRole_Click(Object sender, EventArgs e)
  98. {
  99. if (this.txtNewRoleName.Text.Length > 0)
  100. {
  101. Role role = new Role();
  102. role.SiteId = siteSettings.SiteId;
  103. role.SiteGuid = siteSettings.SiteGuid;
  104. role.RoleName = this.txtNewRoleName.Text;
  105. //role.EnforceRelatedSitesMode = WebConfigSettings.UseRelatedSiteMode;
  106. role.Save();
  107. }
  108. WebUtils.SetupRedirect(this, Request.RawUrl);
  109. return;
  110. }
  111. protected void RolesList_ItemCommand(object sender, DataListCommandEventArgs e)
  112. {
  113. if (debugLog) { log.Debug("fired event RolesList_ItemCommand"); }
  114. int roleID = (int)rolesList.DataKeys[e.Item.ItemIndex];
  115. Role role = new Role(roleID);
  116. switch (e.CommandName)
  117. {
  118. case "edit":
  119. rolesList.EditItemIndex = e.Item.ItemIndex;
  120. BindRoleList();
  121. break;
  122. case "apply":
  123. role.RoleName = ((TextBox)e.Item.FindControl("roleName")).Text;
  124. role.Save();
  125. rolesList.EditItemIndex = -1;
  126. BindRoleList();
  127. break;
  128. case "delete":
  129. if (role.CanBeDeleted(WebConfigSettings.RolesThatCannotBeDeleted.SplitOnChar(';')))
  130. {
  131. Role.DeleteRole(roleID);
  132. rolesList.EditItemIndex = -1;
  133. }
  134. BindRoleList();
  135. break;
  136. //case "members":
  137. // roleName = ((TextBox)e.Item.FindControl("roleName")).Text;
  138. // role.RoleName = roleName;
  139. // role.Save();
  140. // string redirectUrl
  141. // = SiteRoot + "/Admin/SecurityRoles.aspx?roleId="
  142. // + roleID + "&rolename=" + roleName;
  143. // WebUtils.SetupRedirect(this, redirectUrl);
  144. // break;
  145. case "cancel":
  146. WebUtils.SetupRedirect(this, Request.RawUrl);
  147. break;
  148. }
  149. }
  150. void rolesList_ItemDataBound(object sender, DataListItemEventArgs e)
  151. {
  152. ImageButton btnDelete = e.Item.FindControl("btnDelete") as ImageButton;
  153. UIHelper.AddConfirmationDialog(btnDelete, Resource.RolesDeleteWarning);
  154. }
  155. private void PopulateLabels()
  156. {
  157. Title = SiteUtils.FormatPageTitle(siteSettings, Resource.AdminMenuRoleAdminLink);
  158. lnkAdminMenu.Text = Resource.AdminMenuLink;
  159. lnkAdminMenu.ToolTip = Resource.AdminMenuLink;
  160. lnkAdminMenu.NavigateUrl = SiteRoot + "/Admin/AdminMenu.aspx";
  161. lnkRoleAdmin.Text = Resource.AdminMenuRoleAdminLink;
  162. lnkRoleAdmin.ToolTip = Resource.AdminMenuRoleAdminLink;
  163. lnkRoleAdmin.NavigateUrl = SiteRoot + "/Admin/RoleManager.aspx";
  164. btnAddRole.Text = Resource.RolesAddButton;
  165. btnAddRole.ToolTip = Resource.RolesAddButton;
  166. SiteUtils.SetButtonAccessKey(btnAddRole, AccessKeys.RolesAddButtonAccessKey);
  167. }
  168. private void LoadSettings()
  169. {
  170. //IsAdmin = WebUser.IsAdmin;
  171. AddClassToBody("administration");
  172. AddClassToBody("rolemanager");
  173. }
  174. #region OnInit
  175. override protected void OnInit(EventArgs e)
  176. {
  177. base.OnInit(e);
  178. this.Load += new EventHandler(this.Page_Load);
  179. this.btnAddRole.Click += new EventHandler(btnAddRole_Click);
  180. this.rolesList.ItemCommand += new DataListCommandEventHandler(RolesList_ItemCommand);
  181. this.rolesList.ItemDataBound += new DataListItemEventHandler(rolesList_ItemDataBound);
  182. SuppressMenuSelection();
  183. SuppressPageMenu();
  184. }
  185. #endregion
  186. }
  187. }