/** * @param privilege a light administrator privilege * @return the string value of the given privilege as recorded in {@code Experimenter.config.name} */ public String getConfigNameForPrivilege(AdminPrivilege privilege) { return USER_CONFIG_NAME_PREFIX + privilege.getValue(); }
/** * @param privileges the privileges that are expected to be among those of the {@link AdminPrivilege} enumeration values * @throws ApiUsageException if passed an unknown privilege */ private void assertKnownPrivileges(Iterable<AdminPrivilege> privileges) { for (final AdminPrivilege privilege : privileges) { if (adminPrivileges.getPrivilege(privilege.getValue()) == null) { throw new ApiUsageException("unknown light administrator privilege: " + privilege.getValue()); } } }
@Override public Object retrieve(String field) { if (field == null) { return null; } else if (field.equals(ID)) { return getId(); } else if (field.equals(VALUE)) { return getValue(); } else if (field.equals(DETAILS)) { return getDetails(); } else { if (_dynamicFields != null) { return _dynamicFields.get(field); } return null; } }
@Override public void insertCurrentAdminPrivileges(Iterable<AdminPrivilege> privileges) { final List<Object[]> batchArguments = new ArrayList<>(); for (final AdminPrivilege privilege : privileges) { batchArguments.add(new String[] {privilege.getValue()}); } _jdbc().batchUpdate(_lookup("curr_privileges_insert"), batchArguments, new int[] {Types.VARCHAR}); }
@Override public void enable(Session session, EventContext ec) { final List<String> privilegeValues = new ArrayList<String>(); for (final AdminPrivilege adminPrivilege : ec.getCurrentAdminPrivileges()) { privilegeValues.add(adminPrivilege.getValue()); } Long realOwner = ec.getCurrentSudoerId(); if (realOwner == null) { realOwner = ec.getCurrentUserId(); } final int isAdmin01 = ec.isCurrentUserAdmin() ? 1 : 0; final Filter filter = session.enableFilter(getName()); filter.setParameter("real_owner", realOwner); if (privilegeValues.isEmpty()) { filter.setParameterList("privileges", Collections.singletonList("none")); } else { filter.setParameterList("privileges", privilegeValues); } enableBaseFilters(session, isAdmin01, ec.getCurrentUserId()); } }
public static EventContext convert(ome.system.EventContext ctx) { if (ctx == null) { return null; } EventContext ec = new EventContext(); Long event = ctx.getCurrentEventId(); ec.eventId = event == null ? -1 : event; Long shareId = ctx.getCurrentShareId(); ec.shareId = shareId == null ? -1 : shareId; ec.sessionId = ctx.getCurrentSessionId(); ec.sessionUuid = ctx.getCurrentSessionUuid(); ec.eventType = ctx.getCurrentEventType(); ec.groupId = ctx.getCurrentGroupId(); ec.groupName = ctx.getCurrentGroupName(); ec.userId = ctx.getCurrentUserId(); ec.userName = ctx.getCurrentUserName(); ec.sudoerId = ctx.getCurrentSudoerId() == null ? null : rlong(ctx.getCurrentSudoerId()); ec.sudoerName = ctx.getCurrentSudoerName() == null ? null : rstring(ctx.getCurrentSudoerName()); ec.leaderOfGroups = ctx.getLeaderOfGroupsList(); ec.memberOfGroups = ctx.getMemberOfGroupsList(); ec.isAdmin = ctx.isCurrentUserAdmin(); ec.adminPrivileges = new ArrayList<>(ctx.getCurrentAdminPrivileges().size()); for (final AdminPrivilege privilege : ctx.getCurrentAdminPrivileges()) { ec.adminPrivileges.add(privilege.getValue()); } // ticket:2265 Removing from public interface // ec.isReadOnly = ctx.isReadOnly(); ec.groupPermissions = convert(ctx.getCurrentGroupPermissions()); return ec; }