* Fixed reference to parent site in Archive

* Fixed _children.filter in Archive
 * Added missing permission checks
 * Modified global defineConstants() method to return the getter function instead of automatically defining it with given argument
 * Added HopObject.macro_macro() method to display userland macro code
 * Removed colorpicker (will be replaced by third-party library)
 * Removed obsolete global constants and functions
 * Overhauled and tested global userland macros like story_macro(), image_macro() etc.
 * Implemented global list_macro() to replace any special listFoobar_macro() methods
 * Moved global autoLogin() method into User prototype
 * Overhauled global randomize_macro()
 * Renamed global evalURL() method to validateUrl() as well as evalEmail() to validateEmail()
 * Re-added accidentally removed subskins to Members.skin
 * Fixed some skin names which were changed recently
 * Remove delete_action() from Membership
 * Fixed foreign key of images collection in Membership
 * Removed global username_macro() and replaced it with appropriate membership macros
 * Moved contents of systemscripts.skin into javascript.skin in Root prototype
 * Removed main_css_action(), main_js_action() and sitecounter_macro() methods from Root
 * Added accessname to sites collection in Root
 * Upgraded jQuery to version 1.2.1
 * Replaced call for global history_macro() with corresponding list_macro() call
 * Renamed "public" collection of Stories prototype to "featured"
 * Moved a lot of styles from Root's style.skin to the one in Site
 * Added comments collection to Site
 * Moved embed.skin as subskin #embed into Site.skin
 * Fixed some minor issues in Story.js (removed check for creator before setting the story's mode)
 * Defined cookie names as constants of User which can be overriden via app.properties userCookie and hashCookie
 * Moved a lot of code into compatibility module
This commit is contained in:
Tobi Schäfer 2007-10-11 23:03:17 +00:00
parent ded7f5fcea
commit df9017ab77
38 changed files with 1154 additions and 1736 deletions

View file

@ -22,7 +22,7 @@
// $URL$
//
defineConstants(Membership, "getRoles", "Subscriber", "Contributor",
Membership.getRoles = defineConstants(Membership, "Subscriber", "Contributor",
"Manager", "Owner");
Membership.prototype.constructor = function(user, role) {
@ -50,21 +50,6 @@ Membership.prototype.getPermission = function(action) {
return true;
};
Membership.prototype.update = function(data) {
if (!data.role) {
throw Error(gettext("Please choose a role for this member."));
} else if (this.user === session.user) {
throw Error(gettext("Sorry, you are not allowed to edit your own membership."));
} else if (data.role !== this.role) {
this.role = data.role;
this.touch();
/* FIXME: sendMail(root.sys_email, this.user.email,
getMessage("mail.statusChange", this.site.title),
this.renderSkinAsString("mailstatuschange"));*/
}
return;
};
Membership.prototype.edit_action = function() {
if (req.postParams.save) {
try {
@ -84,6 +69,29 @@ Membership.prototype.edit_action = function() {
return;
};
Membership.prototype.getFormOptions = function(name) {
switch (name) {
case "role":
return Membership.getRoles();
}
return;
};
Membership.prototype.update = function(data) {
if (!data.role) {
throw Error(gettext("Please choose a role for this member."));
} else if (this.user === session.user) {
throw Error(gettext("Sorry, you are not allowed to edit your own membership."));
} else if (data.role !== this.role) {
this.role = data.role;
this.touch();
/* FIXME: sendMail(root.sys_email, this.user.email,
getMessage("mail.statusChange", this.site.title),
this.renderSkinAsString("mailstatuschange"));*/
}
return;
};
Membership.prototype.contact_action = function() {
if (req.postParams.send) {
try {
@ -109,28 +117,6 @@ Membership.prototype.contact_action = function() {
return;
};
Membership.prototype.delete_action = function() {
if (req.postParams.proceed) {
try {
var url = this._parent.href();
Membership.remove(this);
res.message = gettext("Successfully deleted the membership.");
res.redirect(url);
} catch(ex) {
res.message = ex;
app.log(ex);
}
}
res.data.action = this.href(req.action);
res.data.title = gettext("Delete membership: {0}", this.name);
res.data.body = this.renderSkinAsString("delete", {
text: gettext('You are about to delete the membership {0}', this.name)
});
this.site.renderSkin("page");
return;
};
Membership.prototype.getMacroHandler = function(name) {
switch (name) {
case "creator":
@ -138,18 +124,71 @@ Membership.prototype.getMacroHandler = function(name) {
}
};
Membership.prototype.link_filter = function(value, param) {
return HopObject.prototype.link_filter.call(this, value,
param, this.creator.url);
};
Membership.prototype.email_macro = function(param) {
throw Error("Due to privacy reasons the display of e-mail addresses is disabled.")
};
Membership.prototype.getFormOptions = function(name) {
switch (name) {
case "role":
return Membership.getRoles();
}
Membership.prototype.status_macro = function() {
this.role || (res.handlers.members = {});
this.renderSkin(session.user ? "Membership#status" : "Membership#login");
return;
};
Membership.getByName = function(name) {
var site = res.handlers.site;
if (site) {
return site.members.get(name);
}
return null;
};
Membership.require = function(role) {
var roles = [Membership.SUBSCRIBER, Membership.CONTRIBUTOR,
Membership.MANAGER, Membership.OWNER];
if (role && res.handlers.membership) {
return roles.indexOf(res.handlers.membership.role) >= roles.indexOf(role);
}
return false;
};
Membership.remove = function(membership) {
/*if (!membership) {
throw Error(gettext("Please specify a membership you want to be removed."));
} else if (membership.role === Membership.OWNER) {
throw Error(gettext("Sorry, an owner of a site cannot be removed."));
}*/
membership.remove();
return;
};
/*
MAY_ADD_STORY = 1;
MAY_VIEW_ANYSTORY = 2;
MAY_EDIT_ANYSTORY = 4;
MAY_DELETE_ANYSTORY = 8;
MAY_ADD_COMMENT = 16;
MAY_EDIT_ANYCOMMENT = 32;
MAY_DELETE_ANYCOMMENT = 64;
MAY_ADD_IMAGE = 128;
MAY_EDIT_ANYIMAGE = 256;
MAY_DELETE_ANYIMAGE = 512;
MAY_ADD_FILE = 1024;
MAY_EDIT_ANYFILE = 2048;
MAY_DELETE_ANYFILE= 4096;
MAY_VIEW_STATS = 8192;
MAY_EDIT_PREFS = 16384;
MAY_EDIT_LAYOUTS = 32768;
MAY_EDIT_MEMBERS = 65536;
EDITABLEBY_ADMINS = 0;
EDITABLEBY_CONTRIBUTORS = 1;
EDITABLEBY_SUBSCRIBERS = 2;
Membership.getLevel = function(role) {
if (!role) {
var membership = User.getMembership();
@ -168,45 +207,6 @@ Membership.getLevel = function(role) {
}
};
Membership.getByName = function(name) {
var site = res.handlers.site;
if (site) {
return site.members.get(name);
}
return null;
};
Membership.require = function(role) {
var roles = [Membership.SUBSCRIBER, Membership.CONTRIBUTOR,
Membership.MANAGER, Membership.OWNER];
if (role && res.handlers.membership) {
return roles.indexOf(res.handlers.membership.role) >= roles.indexOf(role);
}
return false;
/* if (role && res.handlers.membership) {
return Membership.getLevel(res.handlers.membership.role) -
Membership.getLevel(role) >= 0;
}
return false; */
};
Membership.remove = function(membership) {
/*if (!membership) {
throw Error(gettext("Please specify a membership you want to be removed."));
} else if (membership.role === Membership.OWNER) {
throw Error(gettext("Sorry, an owner of a site cannot be removed."));
}*/
membership.remove();
return;
};
Membership.prototype.status_macro = function() {
this.role || (res.handlers.members = {});
this.renderSkin(session.user ? "Membership#status" : "Membership#login");
return;
};
/*
Membership.getRoles = function() {
return [{
display: Membership.SUBSCRIBER,

View file

@ -16,9 +16,9 @@
## See the License for the specific language governing permissions and
## limitations under the License.
##
## $Revision$
## $LastChangedBy$
## $LastChangedDate$
## $Revision:3355 $
## $LastChangedBy:piefke3000 $
## $LastChangedDate:2007-10-11 15:38:29 +0200 (Thu, 11 Oct 2007) $
## $URL$
##
@ -61,7 +61,7 @@ polls.order = created desc
images = collection(Image)
images.local = site_id
images.foreign = site_id
images.foreign = parent_id
images.local.1 = creator_id
images.foreign.1 = creator_id
images.filter = prototype = 'Image' and parent_type = 'Site'

View file

@ -2,7 +2,7 @@
You're not logged in <% site.members.link login prefix="... " %>
<% #status %>
Logged in as <% username as="link" %><br />
Logged in as <% membership.name | membership.link %><br />
<% membership.role prefix="(" suffix=")<br />" %>
<% members.link edit "edit your profile" prefix="...&nbsp;" suffix="<br />" %>
<% site.link subscribe text="subscribe to this site" prefix="...&nbsp;" suffix="<br />" %>