Skip to content

Commit cc954be

Browse files
committed
Automate use of WAC system and fallback to universal system for setting permissions
1 parent 55ef4b0 commit cc954be

File tree

1 file changed

+13
-21
lines changed

1 file changed

+13
-21
lines changed

src/shell/commands/perms.ts

Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ export default class PermsCommand extends SolidCommand {
5050
return;
5151
}
5252
} catch (e) {
53-
if (options.verbose) writeErrorString('Unable to list permissions for Universal Access', e, options)
53+
if (options.verbose) writeErrorString('Unable to list permissions for ACP', e, options)
5454
}
5555
if (this.mayExit) process.exit(0)
5656
})
@@ -88,13 +88,8 @@ export default class PermsCommand extends SolidCommand {
8888
let id = splitPerm[0]
8989
const permissionOptions = splitPerm[1].split('')
9090
let type;
91-
const acl = options.acl
9291

9392
if (options.group) {
94-
if (!acl) {
95-
writeErrorString('Cannot set group permissions outside of --acl mode.', options);
96-
process.exit(0)
97-
}
9893
type = 'group'
9994
} else if (id === 'p') {
10095
type = 'public'
@@ -111,23 +106,20 @@ export default class PermsCommand extends SolidCommand {
111106
const append = permissionOptions.indexOf('a') !== -1
112107
const control = permissionOptions.indexOf('c') !== -1
113108
const def = options.default
114-
if (options.default && !options.acl) {
115-
writeErrorString('Cannot set default permissions outside of --acl mode.', options);
116-
process.exit(0)
117-
}
118-
return ({ type, id, read, write, append, control, default: def, acl } as IPermissionOperation)
109+
return ({ type, id, read, write, append, control, default: def } as IPermissionOperation)
119110
})
120-
try {
121-
for (let permission of parsedPermissions) {
122-
if (permission.acl) {
123-
await acl_perms.changePermissions(url, parsedPermissions, options)
124-
} else {
125-
await setPermission(url, parsedPermissions, options)
126-
}
127-
111+
for (let permission of parsedPermissions) {
112+
try {
113+
await acl_perms.changePermissions(url, [permission], options)
114+
} catch (e) {
115+
if (options.verbose) writeErrorString(`Could not set permissions for ${permission.id} using WAC`, e, options)
116+
}
117+
try {
118+
if (options.group || options.default) throw new Error("Cannot set WAC-specific options such as group and default for non-WAC environments ")
119+
await setPermission(url, [permission], options)
120+
} catch (e) {
121+
if (options.verbose) writeErrorString(`Could not set permissions for ${permission.id} using ACP`, e, options)
128122
}
129-
} catch (e) {
130-
if (options.verbose) writeErrorString(`Could not update permissions for resource at ${url}`, e, options)
131123
}
132124
}
133125
catch (e) {

0 commit comments

Comments
 (0)