Implements U4-1022: Request: Disable Canvas mode by default

This commit is contained in:
NielsHartvig@UMBRACORATI.localdomain
2012-10-25 13:00:31 -02:00
parent 6ffc231be0
commit c8c4e2437b
7 changed files with 298 additions and 237 deletions

View File

@@ -87,7 +87,7 @@ namespace umbraco
allowedRootActions.Add(ActionSort.Instance);
List<IAction> allowedMenu = GetUserAllowedActions(allowedRootActions, nodeActions);
actions.AddRange(allowedMenu);
if (allowedMenu.Count > 0 )
if (allowedMenu.Count > 0)
actions.Add(ContextMenuSeperator.Instance);
// default actions for all users
@@ -102,7 +102,10 @@ namespace umbraco
{
actions.Clear();
actions.Add(ActionNew.Instance);
actions.Add(ActionLiveEdit.Instance);
if (UmbracoSettings.EnableCanvasEditing)
{
actions.Add(ActionLiveEdit.Instance);
}
actions.Add(ContextMenuSeperator.Instance);
actions.Add(ActionDelete.Instance);
actions.Add(ContextMenuSeperator.Instance);
@@ -124,7 +127,7 @@ namespace umbraco
actions.Add(ActionNotify.Instance);
actions.Add(ActionSendToTranslate.Instance);
actions.Add(ContextMenuSeperator.Instance);
actions.Add(ActionRefresh.Instance);
actions.Add(ActionRefresh.Instance);
}
/// <summary>
@@ -147,7 +150,7 @@ namespace umbraco
}
else
{
rootNode = CreateNode(doc, RootNodeActions);
rootNode = CreateNode(doc, RootNodeActions);
}
}
else

View File

@@ -1,5 +1,6 @@
using System;
using umbraco.BasePages;
using umbraco.businesslogic.Exceptions;
namespace umbraco.presentation
{
@@ -7,7 +8,7 @@ namespace umbraco.presentation
{
protected void Page_Load(object sender, EventArgs e)
{
if (base.getUser() != null)
if ((UmbracoSettings.EnableCanvasEditing || !String.IsNullOrEmpty(UmbracoContext.Current.Request["umbSkinning"]) ) && base.getUser() != null)
{
UmbracoContext.Current.LiveEditingContext.Enabled = true;
@@ -20,6 +21,9 @@ namespace umbraco.presentation
Response.Redirect(redirUrl +
(string.IsNullOrEmpty(UmbracoContext.Current.Request["umbSkinning"]) ? "" : "?umbSkinning=true") + (string.IsNullOrEmpty(UmbracoContext.Current.Request["umbSkinningConfigurator"]) ? "" : "&umbSkinningConfigurator=true"), true);
}
else if (!UmbracoSettings.EnableCanvasEditing)
throw new UserAuthorizationException(
"Canvas editing isn't enabled. It can be enabled via the UmbracoSettings.config");
else
{
throw new Exception("User not logged in");

View File

@@ -25,18 +25,18 @@ namespace umbraco.cms.presentation
{
protected umbWindow treeWindow;
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
ClientLoader.DataBind();
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
ClientLoader.DataBind();
// validate redirect url
string redirUrl = Request["redir"];
string redirUrl = Request["redir"];
if (!String.IsNullOrEmpty(redirUrl))
{
validateRedirectUrl(redirUrl);
}
}
}
protected override void OnPreRender(EventArgs e)
@@ -90,7 +90,7 @@ namespace umbraco.cms.presentation
doLogin(u);
// Check if the user should be redirected to live editing
if (u.DefaultToLiveEditing)
if (UmbracoSettings.EnableCanvasEditing && u.DefaultToLiveEditing)
{
int startNode = u.StartNodeId;
// If the startnode is -1 (access to all content), we'll redirect to the top root node
@@ -110,6 +110,11 @@ namespace umbraco.cms.presentation
string redir = String.Format("{0}/canvas.aspx?redir=/{1}.aspx", SystemDirectories.Umbraco, startNode);
Response.Redirect(redir, true);
}
else if (u.DefaultToLiveEditing)
{
throw new UserAuthorizationException(
"Canvas editing isn't enabled. It can be enabled via the UmbracoSettings.config");
}
if (hf_height.Value != "undefined")
{
@@ -126,7 +131,8 @@ namespace umbraco.cms.presentation
Response.Redirect(redirUrl, true);
}
}
else {
else
{
loginError.Visible = true;
}
}
@@ -158,7 +164,7 @@ namespace umbraco.cms.presentation
return String.Equals(HttpContext.Current.Request.Url.Host, absoluteUri.Host,
StringComparison.OrdinalIgnoreCase);
}
bool isLocal = !url.StartsWith("http:", StringComparison.OrdinalIgnoreCase)
&& !url.StartsWith("https:", StringComparison.OrdinalIgnoreCase)
&& Uri.IsWellFormedUriString(url, UriKind.Relative);

View File

@@ -77,6 +77,9 @@ namespace umbraco.cms.presentation.user
throw new Exception("Admin users can only be edited by admins");
}
// check if canvas editing is enabled
DefaultToLiveEditing.Visible = UmbracoSettings.EnableCanvasEditing;
// Populate usertype list
foreach (UserType ut in UserType.getAll)
{
@@ -152,7 +155,10 @@ namespace umbraco.cms.presentation.user
//Generel umrbaco access
Pane ppAccess = new Pane();
ppAccess.addProperty(ui.Text("user", "defaultToLiveEditing", base.getUser()), DefaultToLiveEditing);
if (UmbracoSettings.EnableCanvasEditing)
{
ppAccess.addProperty(ui.Text("user", "defaultToLiveEditing", base.getUser()), DefaultToLiveEditing);
}
ppAccess.addProperty(ui.Text("user", "noConsole", base.getUser()), NoConsole);
ppAccess.addProperty(ui.Text("user", "disabled", base.getUser()), Disabled);
@@ -183,13 +189,14 @@ namespace umbraco.cms.presentation.user
setupForm();
setupChannel();
ClientTools
.SetActiveTreeType(TreeDefinitionCollection.Instance.FindTree<loadUsers>().Tree.Alias)
ClientTools
.SetActiveTreeType(TreeDefinitionCollection.Instance.FindTree<loadUsers>().Tree.Alias)
.SyncTree(UID.ToString(), IsPostBack);
}
void sectionValidator_ServerValidate(object source, ServerValidateEventArgs args) {
void sectionValidator_ServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = false;
if (lapps.SelectedIndex >= 0)
@@ -382,20 +389,24 @@ namespace umbraco.cms.presentation.user
/// <param name="e">The <see cref="System.Web.UI.ImageClickEventArgs"/> instance containing the event data.</param>
private void saveUser_Click(object sender, ImageClickEventArgs e)
{
if (base.IsValid) {
try {
if (base.IsValid)
{
try
{
MembershipUser user = Membership.Providers[UmbracoSettings.DefaultBackofficeProvider].GetUser(u.LoginName, true);
string tempPassword = ((controls.passwordChanger)passw.Controls[0]).Password;
if (!string.IsNullOrEmpty(tempPassword.Trim())) {
if (!string.IsNullOrEmpty(tempPassword.Trim()))
{
// make sure password is not empty
if (string.IsNullOrEmpty(u.Password)) u.Password = "default";
user.ChangePassword(u.Password, tempPassword);
}
// Is it using the default membership provider
if (Membership.Providers[UmbracoSettings.DefaultBackofficeProvider] is UsersMembershipProvider) {
if (Membership.Providers[UmbracoSettings.DefaultBackofficeProvider] is UsersMembershipProvider)
{
// Save user in membership provider
UsersMembershipUser umbracoUser = user as UsersMembershipUser;
umbracoUser.FullName = uname.Text.Trim();
@@ -406,7 +417,9 @@ namespace umbraco.cms.presentation.user
// Save user details
u.Email = email.Text.Trim();
u.Language = userLanguage.SelectedValue;
} else {
}
else
{
u.Name = uname.Text.Trim();
u.Language = userLanguage.SelectedValue;
u.UserType = UserType.GetUserType(int.Parse(userType.SelectedValue));
@@ -417,11 +430,11 @@ namespace umbraco.cms.presentation.user
u.LoginName = lname.Text;
//u.StartNodeId = int.Parse(startNode.Value);
int startNode;
if(!int.TryParse(contentPicker.Value, out startNode))
if (!int.TryParse(contentPicker.Value, out startNode))
{
//set to default if nothing is choosen
//set to default if nothing is choosen
if (u.StartNodeId > 0)
startNode = u.StartNodeId;
else
@@ -449,18 +462,23 @@ namespace umbraco.cms.presentation.user
u.clearApplications();
foreach (ListItem li in lapps.Items) {
foreach (ListItem li in lapps.Items)
{
if (li.Selected) u.addApplication(li.Value);
}
u.Save();
// save data
if (cName.Text != "") {
if (cName.Text != "")
{
Channel c;
try {
try
{
c = new Channel(u.Id);
} catch {
}
catch
{
c = new Channel();
c.User = u;
}
@@ -484,11 +502,15 @@ namespace umbraco.cms.presentation.user
}
speechBubble(speechBubbleIcon.save, ui.Text("speechBubbles", "editUserSaved", base.getUser()), "");
} catch (Exception ex) {
}
catch (Exception ex)
{
speechBubble(speechBubbleIcon.error, ui.Text("speechBubbles", "editUserError", base.getUser()), "");
Log.Add(LogTypes.Error, 0, ex.Message);
}
} else {
}
else
{
speechBubble(speechBubbleIcon.error, ui.Text("speechBubbles", "editUserError", base.getUser()), "");
}
}