-
Notifications
You must be signed in to change notification settings - Fork 2.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ZEPPELIN-6075] Configuration for global Roles #4808
base: master
Are you sure you want to change the base?
Conversation
f929c4c
to
5c70491
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Our team needed this feature too. thank you for contributing. I've left a few simple comments for your review.
zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/AuthorizationService.java
Outdated
Show resolved
Hide resolved
switch (confvar) { | ||
case ZEPPELIN_OWNER_ROLES: | ||
case ZEPPELIN_WRITER_ROLES: | ||
case ZEPPELIN_READER_ROLES: | ||
case ZEPPELIN_RUNNER_ROLES: | ||
defaultRolesConf = zConf.getString(confvar); | ||
break; | ||
default: | ||
LOGGER.warn("getDefaultRoles is used with {}, which is not valid", confvar); | ||
break; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about using a collection like EnumSet instead of a switch statement to manage valid roles? IMO, this simplifies the code and makes it easier to add or modify roles in the future.
private static final Set<ZeppelinConfiguration.ConfVars> VALID_CONF_VARS = EnumSet.of(
ZeppelinConfiguration.ConfVars.ZEPPELIN_OWNER_ROLES,
ZeppelinConfiguration.ConfVars.ZEPPELIN_WRITER_ROLES,
ZeppelinConfiguration.ConfVars.ZEPPELIN_READER_ROLES,
ZeppelinConfiguration.ConfVars.ZEPPELIN_RUNNER_ROLES
);
private Set<String> getDefaultRoles(ZeppelinConfiguration.ConfVars confvar) {
if (!VALID_CONF_VARS.contains(confvar)) {
LOGGER.warn("getDefaultRoles is used with {}, which is not valid", confvar);
return Collections.emptySet();
}
...
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for your review. I have adapted the code and agree with your statements.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍
I am using the feature in my company and have come across a bug that should be fixed with the latest commit. |
The users of my company report that the error found has now been fixed. |
What is this PR for?
This PR adds global roles, which can be stored in the Zeppelin configuration.
What type of PR is it?
Feature
Todos
What is the Jira issue?
How should this be tested?
Questions: