Search in sources :

Example 6 with Acl

use of org.bedework.access.Acl in project bw-calendar-engine by Bedework.

the class Restore method createNewSystem.

private void createNewSystem() throws Throwable {
    // Create the public user.
    final BwPrincipal pu = BwPrincipal.makeUserPrincipal();
    pu.setAccount(BwPrincipal.publicUser);
    globals.setPrincipalHref(pu);
    globals.rintf.restorePrincipal(pu);
    // Create the root user.
    final BwPrincipal rootUser = BwPrincipal.makeUserPrincipal();
    rootUser.setAccount(rootId);
    globals.setPrincipalHref(rootUser);
    globals.rintf.restorePrincipal(rootUser);
    // Create the an authuser entry for the root user.
    final BwAuthUser au = new BwAuthUser();
    au.setUserHref(rootUser.getPrincipalRef());
    au.setUsertype(UserAuth.allAuth);
    au.setPrefs(BwAuthUserPrefs.makeAuthUserPrefs());
    globals.rintf.restoreAuthUser(au);
    // Create a group for all public admin groups
    final BwAdminGroup g = new BwAdminGroup();
    final String publicAdminGroupsAccount = // XXX Put into config
    "publicAdminGroups";
    g.setAccount(publicAdminGroupsAccount);
    g.setGroupOwnerHref(pu.getPrincipalRef());
    g.setOwnerHref(pu.getPrincipalRef());
    if (!globals.onlyUsersMap.check(g.getGroupOwnerHref())) {
        g.setGroupOwnerHref(globals.getPublicUser().getPrincipalRef());
    }
    globals.rintf.restoreAdminGroup(g);
    // Create the public root.
    final Collection<Privilege> privs = new ArrayList<>();
    privs.add(Privileges.makePriv(PrivilegeDefs.privRead));
    final Collection<Ace> aces = new ArrayList<>();
    aces.add(Ace.makeAce(AceWho.other, privs, null));
    privs.clear();
    privs.add(Privileges.makePriv(PrivilegeDefs.privRead));
    privs.add(Privileges.makePriv(PrivilegeDefs.privWriteContent));
    final AceWho who = AceWho.getAceWho(publicAdminGroupsAccount, WhoDefs.whoTypeGroup, false);
    aces.add(Ace.makeAce(who, privs, null));
    makeCal(null, pu, BwCalendar.calTypeFolder, RestoreGlobals.getBasicSyspars().getPublicCalendarRoot(), new String(new Acl(aces).encode()));
    // Create the user root.
    privs.clear();
    privs.add(Privileges.makePriv(PrivilegeDefs.privAll));
    aces.clear();
    aces.add(Ace.makeAce(AceWho.owner, privs, null));
    final BwCalendar userRoot = makeCal(null, pu, BwCalendar.calTypeFolder, RestoreGlobals.getBasicSyspars().getUserCalendarRoot(), new String(new Acl(aces).encode()));
    makeUserHome(userRoot, pu);
    makeUserHome(userRoot, rootUser);
}
Also used : BwAuthUser(org.bedework.calfacade.svc.BwAuthUser) Ace(org.bedework.access.Ace) BwPrincipal(org.bedework.calfacade.BwPrincipal) AceWho(org.bedework.access.AceWho) ArrayList(java.util.ArrayList) BwAdminGroup(org.bedework.calfacade.svc.BwAdminGroup) Acl(org.bedework.access.Acl) BwCalendar(org.bedework.calfacade.BwCalendar) Privilege(org.bedework.access.Privilege)

Example 7 with Acl

use of org.bedework.access.Acl in project bw-calendar-engine by Bedework.

the class AccessUtil method changeAccess.

/* (non-Javadoc)
   * @see org.bedework.calcorei.AccessUtilI#changeAccess(org.bedework.calfacade.base.BwShareableDbentity, java.util.Collection, boolean)
   */
@Override
public void changeAccess(final BwShareableDbentity<?> ent, final Collection<Ace> aces, final boolean replaceAll) throws CalFacadeException {
    try {
        Acl acl = checkAccess(ent, privWriteAcl, false).getAcl();
        Collection<Ace> allAces;
        if (replaceAll) {
            allAces = aces;
        } else {
            allAces = acl.getAces();
            allAces.addAll(aces);
        }
        ent.setAccess(new Acl(allAces).encodeStr());
    // pathInfoMap.flush();
    } catch (CalFacadeException cfe) {
        throw cfe;
    } catch (Throwable t) {
        throw new CalFacadeException(t);
    }
}
Also used : Ace(org.bedework.access.Ace) Acl(org.bedework.access.Acl) CalFacadeException(org.bedework.calfacade.exc.CalFacadeException)

Aggregations

Acl (org.bedework.access.Acl)7 CalFacadeException (org.bedework.calfacade.exc.CalFacadeException)6 BwCalendar (org.bedework.calfacade.BwCalendar)5 BwPrincipal (org.bedework.calfacade.BwPrincipal)5 Ace (org.bedework.access.Ace)4 ArrayList (java.util.ArrayList)3 AccessException (org.bedework.access.AccessException)3 Privilege (org.bedework.access.Privilege)3 AceWho (org.bedework.access.AceWho)2 BwAdminGroup (org.bedework.calfacade.svc.BwAdminGroup)2 BwCategory (org.bedework.calfacade.BwCategory)1 BwContact (org.bedework.calfacade.BwContact)1 BwEventProperty (org.bedework.calfacade.BwEventProperty)1 BwLocation (org.bedework.calfacade.BwLocation)1 BwShareableContainedDbentity (org.bedework.calfacade.base.BwShareableContainedDbentity)1 CalFacadeForbidden (org.bedework.calfacade.exc.CalFacadeForbidden)1 BwAuthUser (org.bedework.calfacade.svc.BwAuthUser)1 BwCalSuiteWrapper (org.bedework.calfacade.svc.wrappers.BwCalSuiteWrapper)1 CalendarWrapper (org.bedework.calfacade.wrappers.CalendarWrapper)1