⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 admin.js

📁 Hippo CMS是一个以信息为中心的开源内容管理系统。Hippo CMS目标是供中,大型企业来管理其发布在互连网
💻 JS
📖 第 1 页 / 共 2 页
字号:
        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 + -