📄 admin.js
字号:
if(oldPassword.equals(currentPassword)){
if(!newPassword1.equals(currentPassword)){
chpwd(useruri, newPassword1);
var credentials = state.getCredentials(null, config.getCurrentRepository().getHost());
credentials.setPassword(newPassword1);
msg = "cms.dashboard.userinfo.password.changed";
}
else msg = "cms.dashboard.userinfo.password.neweqold";
}
else msg = "cms.dashboard.userinfo.password.wrongpassword";
}
else msg = "cms.dashboard.userinfo.password.new1neqnew2";
}
else msg = "cms.dashboard.userinfo.password.newpassword.tooshort";
}
var status = WebDAVHelper.proppatch(useruri, set, null, state);
var emanager = cocoon.getComponent(EventAwareManager.ROLE);
WebdavRepository.fireEvent(emanager,useruri);
cocoon.sendPage("/slide/admin/result/userinfo", {'status': status, 'userMessage':msg})
}
function edituser() {
var doCancelEditUser = cocoon.request.doCancelEditUser;
var status;
var msg = "";
if (doCancelEditUser == null) {
var username = cocoon.request.username;
var fullname = cocoon.request.fullname;
var email = cocoon.request.email;
var oldPassword = cocoon.request.oldpassword;
var newPassword1 = cocoon.request.newpassword1;
var newPassword2 = cocoon.request.newpassword2;
var users = cocoon.parameters.users;
var state = authentication.getHttpState();
var useruri = users + "/" + username;
var cmsNamespace="http://hippo.nl/cms/1.0";
var slideNamespace="http://jakarta.apache.org/slide/";
var name="fullname";
var value=fullname;
var set = new ArrayList();
set.add(new Property("property", cmsNamespace, name, value));
set.add(new Property("property", cmsNamespace, "emailAddress", email));
var isEditingSelf = username.equals(cocoon.session.username);
if(!isEditingSelf || oldPassword.length()>0){
if(newPassword1.length()>0){
if(newPassword1.equals(newPassword2)){
var currentPassword = WebDAVHelper.propfindAsString(useruri, slideNamespace, "password", state);
if(!isEditingSelf || oldPassword.equals(currentPassword)){
if(!newPassword1.equals(currentPassword)){
chpwd(useruri, newPassword1);
if (isEditingSelf) {
var credentials = state.getCredentials(null, config.getCurrentRepository().getHost());
credentials.setPassword(newPassword1);
}
msg = "cms.dashboard.userinfo.password.changed";
}
else msg = "cms.dashboard.userinfo.password.neweqold";
}
else msg = "cms.dashboard.userinfo.password.wrongpassword";
}
else msg = "cms.dashboard.userinfo.password.new1neqnew2";
}
else if (isEditingSelf) {
msg = "cms.dashboard.userinfo.password.newpassword.tooshort";
}
}
status = WebDAVHelper.proppatch(useruri, set, null, state);
var emanager = cocoon.getComponent(EventAwareManager.ROLE);
WebdavRepository.fireEvent(emanager,useruri,false);
}
else {
status = 200;
}
cocoon.sendPage("/slide/admin/result/dashboardusers", {'status': status, 'userMessage':msg})
}
function addrole () {
var host = cocoon.parameters.host;
var port = cocoon.parameters.port;
var webdavUri = "webdav://" + host + ":" + port;
var rolename = cocoon.request.rolename;
var roles = cocoon.parameters.roles;
var state = authentication.getHttpState();
var roleuri = roles + "/" + rolename;
var status = WebDAVHelper.mkcol(roleuri, state);
checkIfUsersRoleExists();
var namespace = "DAV:";
var ace = null;
var usersPrincipal = roles.substring(webdavUri.length, roles.length) + "/users";
//set read deny for /roles/users
ace = new Ace(usersPrincipal);
ace.setNegative(true);
ace.addPrivilege(new Privilege(namespace, "read", null));
status = WebDAVHelper.addAce(roleuri, ace, state);
//set read/write privilige for role marked as manager
var principal = cocoon.request.roleuri;
ace = new Ace(principal);
ace.addPrivilege(new Privilege(namespace, "read", null));
ace.addPrivilege(new Privilege(namespace, "write", null));
status = WebDAVHelper.addAce(roleuri, ace, state);
// invalidate cache
var emanager = cocoon.getComponent(EventAwareManager.ROLE);
WebdavRepository.fireEvent(emanager,roleuri,false);
cocoon.sendPage("/slide/admin/result/dashboardusers")
}
function addmember() {
var objecturi = cocoon.request.objecturi;
var member = cocoon.request.subjecturi;
var host = cocoon.parameters.host;
var port = cocoon.parameters.port;
var state = authentication.getHttpState();
var uri = "webdav://" + host + ":" + port + objecturi; //path of webdav role
var status = WebDAVHelper.addMember(uri, member, state);
var emanager = cocoon.getComponent(EventAwareManager.ROLE);
WebdavRepository.fireEvent(emanager,uri,false);
cocoon.sendPage("/slide/admin/result/dashboardusers", {status: status})
}
function removemember() {
var objecturi = cocoon.request.objecturi;
var member = cocoon.request.subjecturi;
var host = cocoon.parameters.host;
var port = cocoon.parameters.port;
var state = authentication.getHttpState();
var uri = "webdav://" + host + ":" + port + objecturi;
var status = WebDAVHelper.removeMember(uri, member, state);
var emanager = cocoon.getComponent(EventAwareManager.ROLE);
WebdavRepository.fireEvent(emanager,uri,false);
cocoon.sendPage("/slide/admin/result/dashboardusers", {status: status})
}
function changepwd() {
var username = cocoon.request.username;
var password = cocoon.request.password;
var users = cocoon.parameters.users;
var status = chpwd(users + "/" + username, password);
cocoon.sendPage("/slide/admin/result/dashboardusers", {status: status})
}
function chpwd(useruri, password) {
var state = authentication.getHttpState();
var propsToSet = new ArrayList(1);
propsToSet.add(new Property("s", "http://jakarta.apache.org/slide/", "password", password));
return WebDAVHelper.proppatch(useruri, propsToSet, Collections.EMPTY_LIST, state);
}
function removeobject() {
var objecturi = cocoon.request.objecturi;
var host = cocoon.parameters.host;
var port = cocoon.parameters.port;
var state = authentication.getHttpState();
var uri = "webdav://" + host + ":" + port + objecturi;
var status = WebDAVHelper.remove(uri, state);
var emanager = cocoon.getComponent(EventAwareManager.ROLE);
WebdavRepository.fireEvent(emanager,uri,false);
cocoon.sendPage("/slide/admin/result/dashboardusers", {status: status})
}
function checkIfUsersRoleExists(){
try{
var roles = cocoon.parameters.roles;
var users = cocoon.parameters.users;
var deniedUsers = roles + "/users";
var namespace = "DAV:";
var state = authentication.getHttpState();
var host = cocoon.parameters.host;
var port = cocoon.parameters.port;
var webdavUri = "webdav://" + host + ":" + port;
if(WebDAVHelper.propfindAsString(deniedUsers, namespace, "displayname", state) == null){
//assume users group doesn't exist
var status = WebDAVHelper.mkcol(deniedUsers, state);//create users role
//set deny read on self
var deniedUsersPrincipal = deniedUsers.substring(webdavUri.length, deniedUsers.length);
var ace = new Ace(deniedUsersPrincipal);
ace.setNegative(true);
ace.addPrivilege(new Privilege(namespace, "read", null));
status = WebDAVHelper.addAce(deniedUsers, ace, state);
//set read deny on roles:root
var ace = new Ace(deniedUsersPrincipal);
ace.setNegative(true);
ace.addPrivilege(new Privilege(namespace, "read", null));
status = WebDAVHelper.addAce(roles + "/root", ace, state);
//set read deny on user:root
var ace = new Ace(deniedUsersPrincipal);
ace.setNegative(true);
ace.addPrivilege(new Privilege(namespace, "read", null));
status = WebDAVHelper.addAce(users + "/root", ace, state);
//set read deny on users:siteuser
var ace = new Ace(deniedUsersPrincipal);
ace.setNegative(true);
ace.addPrivilege(new Privilege(namespace, "read", null));
status = WebDAVHelper.addAce(users + "/siteuser", ace, state);
//set read deny on users:systemuser
var ace = new Ace(deniedUsersPrincipal);
ace.setNegative(true);
ace.addPrivilege(new Privilege(namespace, "read", null));
status = WebDAVHelper.addAce(users + "/systemuser", ace, state);
}
}catch(e){
print(e)
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -