Пример #1
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// cmdAuthorize_Click runs when the Authorize User Button is clicked
        /// </summary>
        /// <history>
        ///     [cnurse]	03/01/2006  Created
        /// </history>
        /// -----------------------------------------------------------------------------
        private void cmdAuthorize_Click(object sender, EventArgs e)
        {
            if ((IsUserOrAdmin == false) && (!ModulePermissionController.CanAdminModule(this.ModuleConfiguration)))
            {
                return;
            }
            if (Request.IsAuthenticated != true)
            {
                return;
            }

            //Get the Membership Information from the property editors
            User.Membership = (UserMembership)membershipForm.DataSource;

            User.Membership.Approved = true;

            //Update User
            UserController.UpdateUser(PortalId, User);

            //Update User Roles if needed
            if (!User.IsSuperUser && User.IsInRole("Unverified Users") && PortalSettings.UserRegistration == (int)Common.Globals.PortalRegistrationType.VerifiedRegistration)
            {
                UserController.ApproveUser(User);
            }

            OnMembershipAuthorized(EventArgs.Empty);
        }
Пример #2
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            this.cmdUpdate.Click += this.OnUpdateClick;

            try
            {
                this.cancelHyperLink.NavigateUrl = this.ReturnURL;

                if (this.Page.IsPostBack == false)
                {
                    this.dgPermissions.TabId    = this.PortalSettings.ActiveTab.TabID;
                    this.dgPermissions.ModuleID = this._moduleId;

                    if (this.Module != null)
                    {
                        this.cmdUpdate.Visible      = ModulePermissionController.HasModulePermission(this.Module.ModulePermissions, "EDIT,MANAGE") || TabPermissionController.CanAddContentToPage();
                        this.permissionsRow.Visible = ModulePermissionController.CanAdminModule(this.Module) || TabPermissionController.CanAddContentToPage();
                    }
                }
            }
            catch (Exception exc)
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
        }
Пример #3
0
        /// <summary>
        /// cmdToggleSuperuser_Click runs when the toggle superuser button is clicked
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmdToggleSuperuser_Click(object sender, EventArgs e)
        {
            if ((IsUserOrAdmin == false) && (!ModulePermissionController.CanAdminModule(this.ModuleConfiguration)))
            {
                return;
            }
            if (Request.IsAuthenticated != true)
            {
                return;
            }
            ////ensure only superusers can change user superuser state
            if (UserController.Instance.GetCurrentUserInfo().IsSuperUser != true)
            {
                return;
            }

            var currentSuperUserState = User.IsSuperUser;

            User.IsSuperUser = !currentSuperUserState;
            //Update User
            UserController.UpdateUser(PortalId, User);
            DataCache.ClearCache();

            if (currentSuperUserState)
            {
                OnMembershipDemoteFromSuperuser(EventArgs.Empty);
            }
            else
            {
                OnMembershipPromoteToSuperuser(EventArgs.Empty);
            }
        }
Пример #4
0
        protected string GetModuleInfo(object moduleID)
        {
            string returnValue = "";

            if (moduleID != null)
            {
                var moduleInfo = ModuleController.Instance.GetModule((int)moduleID, Null.NullInteger, true);
                if (moduleInfo != null)
                {
                    if (moduleInfo.IsDeleted)
                    {
                        returnValue = LocalizeString("ModuleDeleted.Text");
                    }
                    else
                    {
                        if (ModulePermissionController.CanAdminModule(moduleInfo))
                        {
                            returnValue = string.Format(LocalizeString("ModuleInfo.Text"), moduleInfo.ModuleDefinition.FriendlyName, moduleInfo.ModuleTitle, moduleInfo.PaneName);
                        }
                        else
                        {
                            returnValue = LocalizeString("ModuleInfoForNonAdmins.Text");
                        }
                    }
                }
            }
            return(returnValue);
        }
Пример #5
0
        public void cmdDeleteUserRole_click(object sender, ImageClickEventArgs e)
        {
            if ((!ModulePermissionController.CanAdminModule(this.ModuleConfiguration)) && (PortalSecurity.IsInRole(PortalSettings.AdministratorRoleName) == false))
            {
                return;
            }
            try
            {
                var cmdDeleteUserRole = (ImageButton)sender;
                int roleId            = Convert.ToInt32(cmdDeleteUserRole.Attributes["roleId"]);
                int userId            = Convert.ToInt32(cmdDeleteUserRole.Attributes["userId"]);

                RoleInfo role = RoleController.Instance.GetRole(PortalId, r => r.RoleID == roleId);
                if (!RoleController.DeleteUserRole(UserController.GetUserById(PortalId, userId), role, PortalSettings, chkNotify.Checked))
                {
                    UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("RoleRemoveError", LocalResourceFile), ModuleMessage.ModuleMessageType.RedError);
                }
                BindGrid();
            }
            catch (Exception exc)
            {
                Exceptions.LogException(exc);
                UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("RoleRemoveError", LocalResourceFile), ModuleMessage.ModuleMessageType.RedError);
            }
        }
Пример #6
0
        private bool VerifyUserPermissions()
        {
            if (AddUser && IsHostMenu && !UserInfo.IsSuperUser)
            {
                AddModuleMessage("NoUser", ModuleMessage.ModuleMessageType.YellowWarning, true);
                DisableForm();
                return(false);
            }

            //Check if User is a member of the Current Portal (or a member of the MasterPortal if PortalGroups enabled)
            if (User.PortalID != Null.NullInteger && User.PortalID != PortalId)
            {
                AddModuleMessage("InvalidUser", ModuleMessage.ModuleMessageType.YellowWarning, true);
                DisableForm();
                return(false);
            }

            //Check if User is a SuperUser and that the current User is a SuperUser
            if (User.IsSuperUser && !UserInfo.IsSuperUser)
            {
                AddModuleMessage("NoUser", ModuleMessage.ModuleMessageType.YellowWarning, true);
                DisableForm();
                return(false);
            }
            if (IsEdit)
            {
                //Check if user has admin rights
                if ((!ModulePermissionController.CanAdminModule(this.ModuleConfiguration)) && (!IsAdmin || (User.IsInRole(PortalSettings.AdministratorRoleName) && !PortalSecurity.IsInRole(PortalSettings.AdministratorRoleName))))
                {
                    AddModuleMessage("NotAuthorized", ModuleMessage.ModuleMessageType.YellowWarning, true);
                    DisableForm();
                    return(false);
                }
            }
            else
            {
                if (Request.IsAuthenticated)
                {
                    if (!PortalSecurity.IsInRole(PortalSettings.AdministratorRoleName))
                    {
                        if (HasManageUsersModulePermission() == false)
                        {
                            //Display current user's profile
                            Response.Redirect(Globals.NavigateURL(PortalSettings.UserTabId, "", "UserID=" + UserInfo.UserID), true);
                        }
                    }
                }
                else
                {
                    if ((User.UserID > Null.NullInteger))
                    {
                        AddModuleMessage("NotAuthorized", ModuleMessage.ModuleMessageType.YellowWarning, true);
                        DisableForm();
                        return(false);
                    }
                }
            }
            return(true);
        }
Пример #7
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// cmdAdd_Click runs when the Update Button is clicked
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <history>
        ///     [cnurse]	9/10/2004	Updated to reflect design changes for Help, 508 support
        ///                       and localisation
        /// </history>
        /// -----------------------------------------------------------------------------
        private void cmdAdd_Click(Object sender, EventArgs e)
        {
            if ((!ModulePermissionController.CanAdminModule(this.ModuleConfiguration)) && (PortalSecurity.IsInRole(PortalSettings.AdministratorRoleName) == false))
            {
                return;
            }
            try
            {
                if (Page.IsValid)
                {
                    if ((Role != null) && (User != null))
                    {
                        //do not modify the portal Administrator account dates
                        if (User.UserID == PortalSettings.AdministratorId && Role.RoleID == PortalSettings.AdministratorRoleId)
                        {
                            effectiveDatePicker.SelectedDate = null;
                            expiryDatePicker.SelectedDate    = null;
                        }

                        DateTime datEffectiveDate;
                        if (effectiveDatePicker.SelectedDate != null)
                        {
                            datEffectiveDate = effectiveDatePicker.SelectedDate.Value;
                        }
                        else
                        {
                            datEffectiveDate = Null.NullDate;
                        }

                        DateTime datExpiryDate;
                        if (expiryDatePicker.SelectedDate != null)
                        {
                            datExpiryDate = expiryDatePicker.SelectedDate.Value;
                        }
                        else
                        {
                            datExpiryDate = Null.NullDate;
                        }

                        //Add User to Role
                        var isOwner = false;

                        if (((Role.SecurityMode == SecurityMode.SocialGroup) || (Role.SecurityMode == SecurityMode.Both)))
                        {
                            isOwner = chkIsOwner.Checked;
                        }

                        RoleController.AddUserRole(User, Role, PortalSettings, RoleStatus.Approved, datEffectiveDate, datExpiryDate, chkNotify.Checked, isOwner);
                        chkIsOwner.Checked = false; //reset the checkbox
                    }
                }
                BindGrid();
            }
            catch (Exception exc) //Module failed to load
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
        }
Пример #8
0
 /// -----------------------------------------------------------------------------
 /// <summary>
 /// Raises the PasswordQuestionAnswerUpdated Event
 /// </summary>
 /// <history>
 ///     [cnurse]	03/09/2006  Created
 /// </history>
 /// -----------------------------------------------------------------------------
 public void OnPasswordQuestionAnswerUpdated(PasswordUpdatedEventArgs e)
 {
     if ((IsUserOrAdmin == false) && (!ModulePermissionController.CanAdminModule(this.ModuleConfiguration)))
     {
         return;
     }
     if (PasswordQuestionAnswerUpdated != null)
     {
         PasswordQuestionAnswerUpdated(this, e);
     }
 }
        private IList <ModuleInfo> GetModules(int tabID)
        {
            var isRemote   = TabController.Instance.GetTab(tabID, Null.NullInteger, false).PortalID != PortalSettings.Current.PortalId;
            var tabModules = ModuleController.Instance.GetTabModules(tabID);

            var pageModules = isRemote
                                ? tabModules.Values.Where(m => ModuleSupportsSharing(m)).ToList()
                                : tabModules.Values.Where(m => ModulePermissionController.CanAdminModule(m) && m.IsDeleted == false).ToList();

            return(pageModules);
        }
Пример #10
0
 /// -----------------------------------------------------------------------------
 /// <summary>
 /// Raises the MembershipUnLocked Event
 /// </summary>
 /// <history>
 ///     [cnurse]	03/01/2006  Created
 /// </history>
 /// -----------------------------------------------------------------------------
 public void OnMembershipUnLocked(EventArgs e)
 {
     if ((IsUserOrAdmin == false) && (!ModulePermissionController.CanAdminModule(this.ModuleConfiguration)))
     {
         return;
     }
     if (MembershipUnLocked != null)
     {
         MembershipUnLocked(this, e);
     }
 }
Пример #11
0
 /// -----------------------------------------------------------------------------
 /// <summary>
 /// Raises the MembershipPromoteToSuperuser Event
 /// </summary>
 /// -----------------------------------------------------------------------------
 public void OnMembershipDemoteFromSuperuser(EventArgs e)
 {
     if ((IsUserOrAdmin == false) && (!ModulePermissionController.CanAdminModule(this.ModuleConfiguration)))
     {
         return;
     }
     if (MembershipDemoteFromSuperuser != null)
     {
         MembershipDemoteFromSuperuser(this, e);
         Response.Redirect(Globals.NavigateURL(), true);
     }
 }
Пример #12
0
        private void cmdReset_Click(object sender, EventArgs e)
        {
            if (!ModulePermissionController.CanAdminModule(this.ModuleConfiguration) && IsUserOrAdmin == false)
            {
                return;
            }
            string answer = "";

            if (MembershipProviderConfig.RequiresQuestionAndAnswer && !IsAdmin)
            {
                if (String.IsNullOrEmpty(txtAnswer.Text))
                {
                    OnPasswordUpdated(new PasswordUpdatedEventArgs(PasswordUpdateStatus.InvalidPasswordAnswer));
                    return;
                }
                answer = txtAnswer.Text;
            }
            try
            {
                //create resettoken
                UserController.ResetPasswordToken(User, Entities.Host.Host.AdminMembershipResetLinkValidity);

                bool canSend           = Mail.SendMail(User, MessageType.PasswordReminder, PortalSettings) == string.Empty;
                var  message           = String.Empty;
                var  moduleMessageType = ModuleMessage.ModuleMessageType.GreenSuccess;
                if (canSend)
                {
                    message = Localization.GetString("PasswordSent", LocalResourceFile);
                    LogSuccess();
                }
                else
                {
                    message           = Localization.GetString("OptionUnavailable", LocalResourceFile);
                    moduleMessageType = ModuleMessage.ModuleMessageType.RedError;
                    LogFailure(message);
                }


                UI.Skins.Skin.AddModuleMessage(this, message, moduleMessageType);
            }
            catch (ArgumentException exc)
            {
                Logger.Error(exc);
                OnPasswordUpdated(new PasswordUpdatedEventArgs(PasswordUpdateStatus.InvalidPasswordAnswer));
            }
            catch (Exception exc)
            {
                Logger.Error(exc);
                OnPasswordUpdated(new PasswordUpdatedEventArgs(PasswordUpdateStatus.PasswordResetFailed));
            }
        }
Пример #13
0
        private void ShowPanel()
        {
            if (AddUser)
            {
                adminTabNav.Visible = false;
                if (Request.IsAuthenticated && MembershipProviderConfig.RequiresQuestionAndAnswer)
                {
                    //Admin adding user
                    dnnManageUsers.Visible = false;
                    actionsRow.Visible     = false;
                    AddModuleMessage("CannotAddUser", ModuleMessage.ModuleMessageType.YellowWarning, true);
                }
                else
                {
                    dnnManageUsers.Visible = true;
                    actionsRow.Visible     = true;
                }
                BindUser();
                dnnProfileDetails.Visible = false;
            }
            else
            {
                if ((!IsAdmin) && (!ModulePermissionController.CanAdminModule(this.ModuleConfiguration)))
                {
                    passwordTab.Visible = false;
                }
                else
                {
                    ctlPassword.User = User;
                    ctlPassword.DataBind();
                }
                if ((!IsEdit || User.IsSuperUser))
                {
                    rolesTab.Visible = false;
                }
                else
                {
                    ctlRoles.DataBind();
                }

                BindUser();
                ctlProfile.User = User;
                ctlProfile.DataBind();
            }

            dnnRoleDetails.Visible     = IsEdit && !User.IsSuperUser && !AddUser;
            dnnPasswordDetails.Visible = IsEdit && !AddUser;
        }
Пример #14
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// MembershipUnAuthorized runs when the User has been unlocked
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <history>
        ///     [cnurse]	3/01/2006	created
        /// </history>
        /// -----------------------------------------------------------------------------
        private void MembershipUnAuthorized(object sender, EventArgs e)
        {
            if ((IsAdmin == false) && (!ModulePermissionController.CanAdminModule(this.ModuleConfiguration)))
            {
                return;
            }
            try
            {
                AddModuleMessage("UserUnAuthorized", ModuleMessage.ModuleMessageType.GreenSuccess, true);

                BindMembership();
            }
            catch (Exception exc) //Module failed to load
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
        }
Пример #15
0
        private void cmdRemove_Click(Object sender, EventArgs e)
        {
            if ((IsUserOrAdmin == false) && (!ModulePermissionController.CanAdminModule(this.ModuleConfiguration)))
            {
                return;
            }
            var name = User.Username;
            var id   = UserId;

            if (UserController.RemoveUser(User))
            {
                OnUserRemoved(new UserRemovedEventArgs(id, name));
            }
            else
            {
                OnUserRemoveError(new UserUpdateErrorArgs(id, name, "UserRemoveError"));
            }
        }
Пример #16
0
        private bool HasManageUsersModulePermission()
        {
            bool ketqua = false;


            if (ModulePermissionController.HasModulePermission(ModuleConfiguration.ModulePermissions, "MANAGEUSER"))
            {
                ketqua = true;
            }
            else
            {
                if (ModulePermissionController.CanAdminModule(this.ModuleConfiguration))
                {
                    ketqua = true;
                }
            }
            return(ketqua);
        }
Пример #17
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// cmdDelete_Click runs when the delete Button is clicked
        /// </summary>
        /// <history>
        ///     [cnurse]	03/01/2006  Created
        /// </history>
        /// -----------------------------------------------------------------------------
        private void cmdDelete_Click(Object sender, EventArgs e)
        {
            if ((IsUserOrAdmin == false) && (!ModulePermissionController.CanAdminModule(this.ModuleConfiguration)))
            {
                return;
            }
            string   name = User.Username;
            int      id   = UserId;
            UserInfo user = User;

            if (UserController.DeleteUser(ref user, true, false))
            {
                OnUserDeleted(new UserDeletedEventArgs(id, name));
            }
            else
            {
                OnUserDeleteError(new UserUpdateErrorArgs(id, name, "UserDeleteError"));
            }
        }
Пример #18
0
        private void BindUser()
        {
            if (AddUser)
            {
                ctlUser.ShowUpdate = false;
                CheckQuota();
            }
            ctlUser.User = User;
            ctlUser.DataBind();

            //Bind the Membership
            if ((AddUser || (!IsAdmin && (!ModulePermissionController.CanAdminModule(this.ModuleConfiguration)))))
            {
                membershipRow.Visible = false;
            }
            else
            {
                BindMembership();
            }
        }
Пример #19
0
        private void cboTabs_SelectedIndexChanged(object sender, EventArgs e)
        {
            var objModules = new ModuleController();
            var arrModules = new ArrayList();

            ModuleInfo objModule;
            Dictionary <int, ModuleInfo> arrPortalModules = objModules.GetTabModules(int.Parse(cboTabs.SelectedItem.Value));

            foreach (KeyValuePair <int, ModuleInfo> kvp in arrPortalModules)
            {
                objModule = kvp.Value;
                if (ModulePermissionController.CanAdminModule(objModule) && objModule.IsDeleted == false)
                {
                    arrModules.Add(objModule);
                }
            }
            lblModule.Text        = Localization.GetString("Tab", LocalResourceFile);
            lblTitle.Text         = Localization.GetString("Module", LocalResourceFile);
            cboModules.DataSource = arrModules;
            cboModules.DataBind();
        }
Пример #20
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// cmdUnAuthorize_Click runs when the UnAuthorize User Button is clicked
        /// </summary>
        /// <history>
        ///     [cnurse]	03/01/2006  Created
        /// </history>
        /// -----------------------------------------------------------------------------
        private void cmdUnAuthorize_Click(object sender, EventArgs e)
        {
            if ((IsUserOrAdmin == false) && (!ModulePermissionController.CanAdminModule(this.ModuleConfiguration)))
            {
                return;
            }
            if (Request.IsAuthenticated != true)
            {
                return;
            }

            //Get the Membership Information from the property editors
            User.Membership = (UserMembership)membershipForm.DataSource;

            User.Membership.Approved = false;

            //Update User
            UserController.UpdateUser(PortalId, User);

            OnMembershipUnAuthorized(EventArgs.Empty);
        }
Пример #21
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// cmdUnlock_Click runs when the Unlock Account Button is clicked
        /// </summary>
        /// <history>
        ///     [cnurse]	03/01/2006  Created
        /// </history>
        /// -----------------------------------------------------------------------------
        private void cmdUnLock_Click(Object sender, EventArgs e)
        {
            if ((IsUserOrAdmin == false) && (!ModulePermissionController.CanAdminModule(this.ModuleConfiguration)))
            {
                return;
            }
            if (Request.IsAuthenticated != true)
            {
                return;
            }

            //update the user record in the database
            bool isUnLocked = UserController.UnLockUser(User);

            if (isUnLocked)
            {
                User.Membership.LockedOut = false;

                OnMembershipUnLocked(EventArgs.Empty);
            }
        }
Пример #22
0
        public void SetModuleInfoHelp()
        {
            var returnValue = "";
            var moduleInfo  = ModuleController.Instance.GetModule(this.ModuleId, Null.NullInteger, true);

            if (moduleInfo != null)
            {
                if (moduleInfo.IsDeleted)
                {
                    returnValue = this.LocalizeString("ModuleDeleted.Text");
                }
                else
                {
                    returnValue = ModulePermissionController.CanAdminModule(moduleInfo)
                        ? string.Format(this.LocalizeString("ModuleInfo.Text"),
                                        moduleInfo.ModuleDefinition.FriendlyName, moduleInfo.ModuleTitle, moduleInfo.PaneName)
                        : this.LocalizeString("ModuleInfoForNonAdmins.Text");
                }
            }

            this.ModuleInfoHelp = returnValue;
        }
Пример #23
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// cmdValidate_Click executes when a user selects the Validate link for a username
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <history>
        /// </history>
        /// -----------------------------------------------------------------------------
        private void cmdValidate_Click(object sender, EventArgs e)
        {
            if ((!ModulePermissionController.CanAdminModule(this.ModuleConfiguration)) && (PortalSecurity.IsInRole(PortalSettings.AdministratorRoleName) == false))
            {
                return;
            }

            if (!String.IsNullOrEmpty(txtUsers.Text))
            {
                //validate username
                UserInfo objUser = UserController.GetUserByName(PortalId, txtUsers.Text);
                if (objUser != null)
                {
                    GetDates(objUser.UserID, RoleId);
                    SelectedUserID = objUser.UserID;
                }
                else
                {
                    txtUsers.Text = "";
                }
            }
            BindGrid();
        }
Пример #24
0
        private static Dictionary <int, string> GetTabModules(int tabID)
        {
            var moduleCtrl  = new ModuleController();
            var pageModules = new List <ModuleInfo>();
            var tabModules  = moduleCtrl.GetTabModules(tabID);

            foreach (ModuleInfo m in tabModules.Values)
            {
                if (ModulePermissionController.CanAdminModule(m) && m.IsDeleted == false)
                {
                    pageModules.Add(m);
                }
            }

            var modulesList = new Dictionary <int, string>();

            foreach (var module in pageModules)
            {
                modulesList.Add(module.ModuleID, module.ModuleTitle);
            }

            return(modulesList);
        }
Пример #25
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// CreateUser creates a new user in the Database
        /// </summary>
        /// <history>
        ///     [cnurse]	05/18/2006  Created
        /// </history>
        /// -----------------------------------------------------------------------------
        public void CreateUser()
        {
            //Update DisplayName to conform to Format
            UpdateDisplayName();


            if ((IsRegister) && (!ModulePermissionController.CanAdminModule(this.ModuleConfiguration)))
            {
                User.Membership.Approved = PortalSettings.UserRegistration == (int)Globals.PortalRegistrationType.PublicRegistration;
            }
            else
            {
                //Set the Approved status from the value in the Authorized checkbox
                User.Membership.Approved = chkAuthorize.Checked;
            }
            var user = User;

            // make sure username is set in UseEmailAsUserName" mode
            if (PortalController.GetPortalSettingAsBoolean("Registration_UseEmailAsUserName", PortalId, false))
            {
                user.Username = User.Email;
                User.Username = User.Email;
            }

            var createStatus = UserController.CreateUser(ref user);

            var args = (createStatus == UserCreateStatus.Success)
                                            ? new UserCreatedEventArgs(User)
            {
                Notify = chkNotify.Checked
            }
                                            : new UserCreatedEventArgs(null);

            args.CreateStatus = createStatus;
            OnUserCreated(args);
            OnUserCreateCompleted(args);
        }
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// This routine creates the Installer
        /// </summary>
        /// <history>
        ///     [cnurse]   07/26/2007    Created
        /// </history>
        /// -----------------------------------------------------------------------------
        private void CreateInstaller()
        {
            CheckSecurity();
            _Installer = new Installer(TempInstallFolder, ManifestFile, Request.MapPath("."), false);

            //The Installer is created automatically with a SecurityAccessLevel of Host
            //Check if the User has lowere Security and update as neccessary
            if (!ModuleContext.PortalSettings.UserInfo.IsSuperUser)
            {
                if (ModuleContext.PortalSettings.UserInfo.IsInRole(ModuleContext.PortalSettings.AdministratorRoleName))
                {
                    //Admin User
                    Installer.InstallerInfo.SecurityAccessLevel = SecurityAccessLevel.Admin;
                }
                else if (ModulePermissionController.CanAdminModule(ModuleContext.Configuration))
                {
                    //Has Edit rights
                    Installer.InstallerInfo.SecurityAccessLevel = SecurityAccessLevel.Edit;
                }
                else if (ModulePermissionController.CanViewModule(ModuleContext.Configuration))
                {
                    //Has View rights
                    Installer.InstallerInfo.SecurityAccessLevel = SecurityAccessLevel.View;
                }
                else
                {
                    Installer.InstallerInfo.SecurityAccessLevel = SecurityAccessLevel.Anonymous;
                }
            }
            Installer.InstallerInfo.PortalID = InstallPortalId;

            //Read the manifest
            if (Installer.InstallerInfo.ManifestFile != null)
            {
                Installer.ReadManifest(true);
            }
        }
Пример #27
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// PasswordUpdated runs when the Password has been updated or reset
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <history>
        ///     [cnurse]	3/08/2006	created
        /// </history>
        /// -----------------------------------------------------------------------------
        private void PasswordUpdated(object sender, Password.PasswordUpdatedEventArgs e)
        {
            if ((IsAdmin == false) && (!ModulePermissionController.CanAdminModule(this.ModuleConfiguration)))
            {
                return;
            }
            PasswordUpdateStatus status = e.UpdateStatus;

            if (status == PasswordUpdateStatus.Success)
            {
                //Send Notification to User
                try
                {
                    var accessingUser = (UserInfo)HttpContext.Current.Items["UserInfo"];
                    if (accessingUser.UserID != User.UserID)
                    {
                        //The password was changed by someone else
                        Mail.SendMail(User, MessageType.PasswordUpdated, PortalSettings);
                    }
                    else
                    {
                        //The User changed his own password
                        Mail.SendMail(User, MessageType.UserUpdatedOwnPassword, PortalSettings);
                    }
                    AddModuleMessage("PasswordChanged", ModuleMessage.ModuleMessageType.GreenSuccess, true);
                }
                catch (Exception ex)
                {
                    AddModuleMessage("PasswordMailError", ModuleMessage.ModuleMessageType.YellowWarning, true);
                    Exceptions.LogException(ex);
                }
            }
            else
            {
                AddModuleMessage(status.ToString(), ModuleMessage.ModuleMessageType.RedError, true);
            }
        }
Пример #28
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// cmdPassword_Click runs when the ChangePassword Button is clicked
        /// </summary>
        /// <history>
        ///     [cnurse]	03/15/2006  Created
        /// </history>
        /// -----------------------------------------------------------------------------
        private void cmdPassword_Click(object sender, EventArgs e)
        {
            if ((IsUserOrAdmin == false) && (!ModulePermissionController.CanAdminModule(this.ModuleConfiguration)))
            {
                return;
            }
            if (Request.IsAuthenticated != true)
            {
                return;
            }

            if (MembershipProviderConfig.PasswordRetrievalEnabled || MembershipProviderConfig.PasswordResetEnabled)
            {
                UserController.ResetPasswordToken(User);
            }
            bool canSend = Mail.SendMail(User, MessageType.PasswordReminder, PortalSettings) == string.Empty;
            var  message = String.Empty;

            if (canSend)
            {
                //Get the Membership Information from the property editors
                User.Membership = (UserMembership)membershipForm.DataSource;

                User.Membership.UpdatePassword = true;

                //Update User
                UserController.UpdateUser(PortalId, User);

                OnMembershipPasswordUpdateChanged(EventArgs.Empty);
            }
            else
            {
                message = Localization.GetString("OptionUnavailable", LocalResourceFile);
                UI.Skins.Skin.AddModuleMessage(this, message, ModuleMessage.ModuleMessageType.YellowWarning);
            }
        }
Пример #29
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// MembershipAuthorized runs when the User has been unlocked
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <history>
        ///     [cnurse]	3/01/2006	created
        /// </history>
        /// -----------------------------------------------------------------------------
        private void MembershipAuthorized(object sender, EventArgs e)
        {
            if ((IsAdmin == false) && (!ModulePermissionController.CanAdminModule(this.ModuleConfiguration)))
            {
                return;
            }
            try
            {
                AddModuleMessage("UserAuthorized", ModuleMessage.ModuleMessageType.GreenSuccess, true);

                //Send Notification to User
                if (string.IsNullOrEmpty(User.Membership.Password) && !MembershipProviderConfig.RequiresQuestionAndAnswer && MembershipProviderConfig.PasswordRetrievalEnabled)
                {
                    UserInfo user = User;
                    User.Membership.Password = UserController.GetPassword(ref user, "");
                }

                BindMembership();
            }
            catch (Exception exc) //Module failed to load
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
        }
Пример #30
0
        public void BindAll(int tabID)
        {
            TabID = tabID;
            var currentTab = TabController.Instance.GetTab(tabID, PortalSettings.PortalId, false);

            //Unique id of default language page
            var uniqueId = currentTab.DefaultLanguageGuid != Null.NullGuid ? currentTab.DefaultLanguageGuid : currentTab.UniqueId;

            // get all non admin pages and not deleted
            var allPages = TabController.Instance.GetTabsByPortal(PortalSettings.PortalId).Values.Where(t => t.TabID != PortalSettings.AdminTabId && (Null.IsNull(t.ParentId) || t.ParentId != PortalSettings.AdminTabId));

            allPages = allPages.Where(t => t.IsDeleted == false);
            // get all localized pages of current page
            var tabInfos       = allPages as IList <TabInfo> ?? allPages.ToList();
            var localizedPages = tabInfos.Where(t => t.DefaultLanguageGuid == uniqueId || t.UniqueId == uniqueId).OrderBy(t => t.DefaultLanguageGuid).ToList();
            Dictionary <string, TabInfo> localizedTabs = null;

            // we are going to build up a list of locales
            // this is a bit more involved, since we want the default language to be first.
            // also, we do not want to add any locales the user has no access to
            var locales          = new List <string>();
            var localeController = new LocaleController();
            var localeDict       = localeController.GetLocales(PortalSettings.PortalId);

            if (localeDict.Count > 0)
            {
                if (localizedPages.Count() == 1 && localizedPages.First().CultureCode == "")
                {
                    // locale neutral page
                    locales.Add("");
                }
                else if (localizedPages.Count() == 1 && localizedPages.First().CultureCode != PortalSettings.DefaultLanguage)
                {
                    locales.Add(localizedPages.First().CultureCode);
                    localizedTabs = new Dictionary <string, TabInfo>();
                    localizedTabs.Add(localizedPages.First().CultureCode, localizedPages.First());
                }
                else
                {
                    //force sort order, so first add default language
                    locales.Add(PortalSettings.DefaultLanguage);

                    // build up a list of localized tabs.
                    // depending on whether or not the selected page is in the default langauge
                    // we will add the localized tabs from the current page
                    // or from the defaultlanguage page
                    if (currentTab.CultureCode == PortalSettings.DefaultLanguage)
                    {
                        localizedTabs = currentTab.LocalizedTabs;
                    }
                    else
                    {
                        // selected page is not in default language
                        // add localizedtabs from defaultlanguage page
                        if (currentTab.DefaultLanguageTab != null)
                        {
                            localizedTabs = currentTab.DefaultLanguageTab.LocalizedTabs;
                        }
                    }

                    if (localizedTabs != null)
                    {
                        // only add locales from tabs the user has at least view permissions to.
                        // we will handle the edit permissions at a later stage
                        locales.AddRange(from localizedTab in localizedTabs where TabPermissionController.CanViewPage(localizedTab.Value) select localizedTab.Value.CultureCode);
                    }
                }
            }
            else
            {
                locales.Add("");
            }

            Data = new DnnPages(locales);

            // filter the list of localized pages to only those that have a culture we want to see
            var viewableLocalizedPages = localizedPages.Where(localizedPage => locales.Find(locale => locale == localizedPage.CultureCode) != null).ToList();

            if (viewableLocalizedPages.Count() > 4)
            {
                mainContainer.Attributes.Add("class", "container RadGrid RadGrid_Default overflow");
            }

            foreach (var tabInfo in viewableLocalizedPages)
            {
                var localTabInfo = tabInfo;
                var dnnPage      = Data.Page(localTabInfo.CultureCode);
                if (!TabPermissionController.CanViewPage(tabInfo))
                {
                    Data.RemoveLocale(localTabInfo.CultureCode);
                    Data.Pages.Remove(dnnPage);
                    break;
                }
                dnnPage.TabID             = localTabInfo.TabID;
                dnnPage.TabName           = localTabInfo.TabName;
                dnnPage.Title             = localTabInfo.Title;
                dnnPage.Description       = localTabInfo.Description;
                dnnPage.Path              = localTabInfo.TabPath.Substring(0, localTabInfo.TabPath.LastIndexOf("//", StringComparison.Ordinal)).Replace("//", "");
                dnnPage.HasChildren       = (TabController.Instance.GetTabsByPortal(PortalSettings.PortalId).WithParentId(tabInfo.TabID).Count != 0);
                dnnPage.CanAdminPage      = TabPermissionController.CanAdminPage(tabInfo);
                dnnPage.CanViewPage       = TabPermissionController.CanViewPage(tabInfo);
                dnnPage.LocalResourceFile = LocalResourceFile;

                // calculate position in the form of 1.3.2...
                var SiblingTabs = tabInfos.Where(t => t.ParentId == localTabInfo.ParentId && t.CultureCode == localTabInfo.CultureCode || t.CultureCode == null).OrderBy(t => t.TabOrder).ToList();
                dnnPage.Position = (SiblingTabs.IndexOf(localTabInfo) + 1).ToString(CultureInfo.InvariantCulture);
                int ParentTabId = localTabInfo.ParentId;
                while (ParentTabId > 0)
                {
                    TabInfo ParentTab = tabInfos.Single(t => t.TabID == ParentTabId);
                    int     id        = ParentTabId;
                    SiblingTabs      = tabInfos.Where(t => t.ParentId == id && t.CultureCode == localTabInfo.CultureCode || t.CultureCode == null).OrderBy(t => t.TabOrder).ToList();
                    dnnPage.Position = (SiblingTabs.IndexOf(localTabInfo) + 1).ToString(CultureInfo.InvariantCulture) + "." + dnnPage.Position;
                    ParentTabId      = ParentTab.ParentId;
                }

                dnnPage.DefaultLanguageGuid = localTabInfo.DefaultLanguageGuid;
                dnnPage.IsTranslated        = localTabInfo.IsTranslated;
                dnnPage.IsPublished         = TabController.Instance.IsTabPublished(localTabInfo);
                // generate modules information
                foreach (var moduleInfo in ModuleController.Instance.GetTabModules(localTabInfo.TabID).Values)
                {
                    var guid = moduleInfo.DefaultLanguageGuid == Null.NullGuid ? moduleInfo.UniqueId : moduleInfo.DefaultLanguageGuid;

                    var dnnModules = Data.Module(guid); // modules of each language
                    var dnnModule  = dnnModules.Module(localTabInfo.CultureCode);
                    // detect error : 2 modules with same uniqueId on the same page
                    dnnModule.LocalResourceFile = LocalResourceFile;
                    if (dnnModule.TabModuleID > 0)
                    {
                        dnnModule.ErrorDuplicateModule = true;
                        ErrorExists = true;
                        continue;
                    }

                    dnnModule.ModuleTitle         = moduleInfo.ModuleTitle;
                    dnnModule.DefaultLanguageGuid = moduleInfo.DefaultLanguageGuid;
                    dnnModule.TabId          = localTabInfo.TabID;
                    dnnModule.TabModuleID    = moduleInfo.TabModuleID;
                    dnnModule.ModuleID       = moduleInfo.ModuleID;
                    dnnModule.CanAdminModule = ModulePermissionController.CanAdminModule(moduleInfo);
                    dnnModule.CanViewModule  = ModulePermissionController.CanViewModule(moduleInfo);
                    dnnModule.IsDeleted      = moduleInfo.IsDeleted;
                    if (moduleInfo.DefaultLanguageGuid != Null.NullGuid)
                    {
                        ModuleInfo defaultLanguageModule = ModuleController.Instance.GetModuleByUniqueID(moduleInfo.DefaultLanguageGuid);
                        if (defaultLanguageModule != null)
                        {
                            dnnModule.DefaultModuleID = defaultLanguageModule.ModuleID;
                            if (defaultLanguageModule.ParentTab.UniqueId != moduleInfo.ParentTab.DefaultLanguageGuid)
                            {
                                dnnModule.DefaultTabName = defaultLanguageModule.ParentTab.TabName;
                            }
                        }
                    }
                    dnnModule.IsTranslated = moduleInfo.IsTranslated;
                    dnnModule.IsLocalized  = moduleInfo.IsLocalized;

                    dnnModule.IsShared = TabController.Instance.GetTabsByModuleID(moduleInfo.ModuleID).Values.Count(t => t.CultureCode == moduleInfo.CultureCode) > 1;

                    // detect error : the default language module is on an other page
                    dnnModule.ErrorDefaultOnOtherTab = moduleInfo.DefaultLanguageGuid != Null.NullGuid && moduleInfo.DefaultLanguageModule == null;

                    // detect error : different culture on tab and module
                    dnnModule.ErrorCultureOfModuleNotCultureOfTab = moduleInfo.CultureCode != localTabInfo.CultureCode;

                    ErrorExists = ErrorExists || dnnModule.ErrorDefaultOnOtherTab || dnnModule.ErrorCultureOfModuleNotCultureOfTab;
                }
            }

            rDnnModules.DataSource = Data.Modules;
            rDnnModules.DataBind();
        }