? 521246-extended.patch
? 521246.patch
? profile.patch
? test.patch
Index: mysite.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/mysite/mysite.module,v
retrieving revision 1.98
diff -u -p -r1.98 mysite.module
--- mysite.module	1 Oct 2008 14:01:37 -0000	1.98
+++ mysite.module	16 Jul 2009 21:58:10 -0000
@@ -1859,15 +1859,15 @@ function mysite_edit_form_submit($form_i
   }
   if ($form_values['op'] == $form_values['submit']) {
     if ($uid > 0) {
-      drupal_goto('mysite/'. $form_values['uid'] .'/view/'. $page);
+      return 'mysite/'. $form_values['uid'] .'/view/'. $page;
     }
     else {
-      drupal_goto('admin/settings/mysite');
+      return 'admin/settings/mysite';
     }
   }
   else {
     $goto = 'mysite/'. $form_values['uid'] .'/edit/'. $page .'/'. $form_values['next'];
-    drupal_goto($goto);
+    return $goto;
   }
 
 }
@@ -2283,7 +2283,7 @@ function mysite_confirm_delete_form_subm
     db_query("UPDATE {mysite} SET confirm = %d WHERE uid = %d", $form_values['ignore'], $form_values['uid']);
   }
   // Run the delete sequence.
-  mysite_delete_item($form_values['uid'], $form_values['mid']);
+  return mysite_delete_item($form_values['uid'], $form_values['mid']);
 }
 
 /**
@@ -2310,7 +2310,7 @@ function mysite_delete_form($uid) {
   }
   else {
     drupal_set_message(t('This user does not have a personal page.'));
-    drupal_goto('mysite');
+    return 'mysite';
   }
 }
 
@@ -2330,7 +2330,7 @@ function mysite_delete_form_submit($form
       db_query("DELETE FROM {url_alias} WHERE src = '%s'", "mysite/$uid/view");
     }
     drupal_set_message(t("%user's collection has been deleted.", array('%user' => $owner->name)));
-    drupal_goto('mysite');
+    return 'mysite';
   }
   else {
     drupal_set_message(t("%user's collection could not be found.", array('%user' => $owner->name)));
@@ -2358,7 +2358,7 @@ function mysite_reset_form_submit($form_
     db_query("DELETE FROM {mysite_data} WHERE uid = %d", $owner->uid);
     db_query("DELETE FROM {mysite_page} WHERE uid = %d", $owner->uid);
     mysite_create_account($owner);
-    drupal_goto('mysite/'. $owner->uid .'/view');
+    return 'mysite/'. $owner->uid .'/view';
   }
 }
 
@@ -2600,7 +2600,8 @@ function mysite_content_remove($uid = NU
     return drupal_get_form('mysite_confirm_delete_form', $mysite->uid, $mid, $mysite->name, $dest);
   }
   // this function includes a drupal_goto, so no return is needed.
-  mysite_delete_item($uid, $mid, $dest);
+  $dest = mysite_delete_item($uid, $mid, $dest);
+  drupal_goto($dest);
 }
 
 /**
@@ -2633,9 +2634,9 @@ function mysite_delete_item($uid, $mid, 
     drupal_set_message(t('You are not authorized to delete this item.'), 'error');
   }
   if (empty($dest)) {
-    drupal_goto('mysite/'. $uid .'/content');
+    return 'mysite/'. $uid .'/content';
   }
-  drupal_goto($dest);
+  return $dest;
 }
 
 /**
Index: contrib/refine.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/mysite/contrib/refine.inc,v
retrieving revision 1.7
diff -u -p -r1.7 refine.inc
--- contrib/refine.inc	6 Apr 2008 23:08:26 -0000	1.7
+++ contrib/refine.inc	16 Jul 2009 21:58:11 -0000
@@ -307,7 +307,7 @@ function mysite_type_refine_title_form_s
   $sql = "UPDATE {mysite_content} SET title = '%s' WHERE myid = %d AND type = 'refine'";
   db_query($sql, $form_values['title'], $form_values['myid']);
   drupal_set_message(t('Title changed successfully.'));
-  drupal_goto('admin/settings/mysite/type/refine');
+  return 'admin/settings/mysite/type/refine';
 }
 
 /**
Index: mysite_icon/mysite_icon.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/mysite/mysite_icon/mysite_icon.module,v
retrieving revision 1.3
diff -u -p -r1.3 mysite_icon.module
--- mysite_icon/mysite_icon.module	6 Apr 2008 23:08:26 -0000	1.3
+++ mysite_icon/mysite_icon.module	16 Jul 2009 21:58:12 -0000
@@ -336,7 +336,7 @@ function mysite_icon_add_form_submit($fo
   if (empty($arg)) {
     form_set_error('icon_id', t('You must select an option.'));
   }
-  drupal_goto('admin/settings/mysite/icons/add/'. $arg[0] .'/'. $arg[1]);
+  return 'admin/settings/mysite/icons/add/'. $arg[0] .'/'. $arg[1];
 }
 
 /**
@@ -440,7 +440,7 @@ function mysite_icon_delete_form_submit(
   if ($success = file_delete($path)) {
     db_query("DELETE FROM {mysite_icon} WHERE iid = %d", $icon->iid);
     drupal_set_message(t('Icon successfully deleted.'));
-    drupal_goto('admin/settings/mysite/icons/browse');
+    return 'admin/settings/mysite/icons/browse';
   }
   else {
     form_set_error('submit', t('Failed to delete icon.  Check the server permissions in your MySite icon directory.'));
Index: plugins/types/droplet.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/mysite/plugins/types/droplet.inc,v
retrieving revision 1.22
diff -u -p -r1.22 droplet.inc
--- plugins/types/droplet.inc	6 Apr 2008 23:08:27 -0000	1.22
+++ plugins/types/droplet.inc	16 Jul 2009 21:58:13 -0000
@@ -346,7 +346,7 @@ function mysite_type_droplet_block_creat
   $string = $split[0];
   $title = $split[1];
   $myid = mysite_get_myid($type = 'droplet', $string, $title);
-  drupal_goto('admin/settings/mysite/type/droplet/'. $myid);
+  return 'admin/settings/mysite/type/droplet/'. $myid;
 }
 
 /**
@@ -372,7 +372,7 @@ function mysite_type_droplet_view_create
   $string = $split[0];
   $title = $split[1];
   $myid = mysite_get_myid($type = 'droplet', $string, $title);
-  drupal_goto('admin/settings/mysite/type/droplet/'. $myid);
+  return 'admin/settings/mysite/type/droplet/'. $myid;
 }
 
 /**
@@ -554,7 +554,7 @@ function mysite_type_droplet_settings_fo
   elseif ($form_values['delete'] == $form_values['op']) {
     // DELETE
     if ($form_values['confirm'] == 0) {
-      drupal_goto('admin/settings/mysite/type/droplet/delete/'. $form_values['myid']);
+      return 'admin/settings/mysite/type/droplet/delete/'. $form_values['myid'];
     }
     $sql = "DELETE from {mysite_content} WHERE myid = %d";
     db_query($sql, $form_values['myid']);
Index: plugins/types/profile.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/mysite/plugins/types/profile.inc,v
retrieving revision 1.18
diff -u -p -r1.18 profile.inc
--- plugins/types/profile.inc	6 Apr 2008 23:08:27 -0000	1.18
+++ plugins/types/profile.inc	16 Jul 2009 21:58:13 -0000
@@ -111,11 +111,12 @@ function mysite_type_profile_title($type
  * Implements mysite_type_hook_data().
  */
 function mysite_type_profile_data($type_id = NULL, $settings = NULL) {
+  global $user;
   $profile = mysite_type_profile_get();
   if (!empty($profile->uid)) {
     $mysite = mysite_get($profile->uid);
   }
-  if ($mysite->status == 1) {
+  if ($mysite->status == 1 || $profile->uid == $user->uid) {
     $allowed = variable_get('mysite_profile_settings', mysite_type_profile_defaults());
     if (empty($settings)) {
       $settings = $allowed;
