gerrit/gerrit-server/src/main/java/com/google/gerrit/server/PluginUser.java
Shawn Pearce 6302ccb2bb Remove CapabilityControl from CurrentUser
Drop the capabilities reference from all user objects.  Most global
capabilities can be checked with the PermissionBackend.

QoS, query limits, and emailing reviewers still require the capability
object.  Bundle its factory into the call sites that need it.

Continue caching the CapabilityControl in an opaque property on the
CurrentUser, and also in the DefaultPermissionBackend.WithUserImpl.
Both of these sites reduce evaluations for critical properties like
"administrateServer".

Change-Id: I5aae8200e0a579ac1295a3fb7005703fd39d2696
2017-06-21 19:51:20 +09:00

43 lines
1.2 KiB
Java

// Copyright (C) 2013 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.gerrit.server;
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
/** User identity for plugin code that needs an identity. */
public class PluginUser extends InternalUser {
public interface Factory {
PluginUser create(String pluginName);
}
private final String pluginName;
@Inject
protected PluginUser(@Assisted String pluginName) {
this.pluginName = pluginName;
}
@Override
public String getUserName() {
return "plugin " + pluginName;
}
@Override
public String toString() {
return "PluginUser[" + pluginName + "]";
}
}