1// Copyright 2016 The etcd Authors
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package v3rpc
16
17import (
18	"context"
19
20	pb "go.etcd.io/etcd/api/v3/etcdserverpb"
21	"go.etcd.io/etcd/server/v3/etcdserver"
22)
23
24type AuthServer struct {
25	authenticator etcdserver.Authenticator
26}
27
28func NewAuthServer(s *etcdserver.EtcdServer) *AuthServer {
29	return &AuthServer{authenticator: s}
30}
31
32func (as *AuthServer) AuthEnable(ctx context.Context, r *pb.AuthEnableRequest) (*pb.AuthEnableResponse, error) {
33	resp, err := as.authenticator.AuthEnable(ctx, r)
34	if err != nil {
35		return nil, togRPCError(err)
36	}
37	return resp, nil
38}
39
40func (as *AuthServer) AuthDisable(ctx context.Context, r *pb.AuthDisableRequest) (*pb.AuthDisableResponse, error) {
41	resp, err := as.authenticator.AuthDisable(ctx, r)
42	if err != nil {
43		return nil, togRPCError(err)
44	}
45	return resp, nil
46}
47
48func (as *AuthServer) AuthStatus(ctx context.Context, r *pb.AuthStatusRequest) (*pb.AuthStatusResponse, error) {
49	resp, err := as.authenticator.AuthStatus(ctx, r)
50	if err != nil {
51		return nil, togRPCError(err)
52	}
53	return resp, nil
54}
55
56func (as *AuthServer) Authenticate(ctx context.Context, r *pb.AuthenticateRequest) (*pb.AuthenticateResponse, error) {
57	resp, err := as.authenticator.Authenticate(ctx, r)
58	if err != nil {
59		return nil, togRPCError(err)
60	}
61	return resp, nil
62}
63
64func (as *AuthServer) RoleAdd(ctx context.Context, r *pb.AuthRoleAddRequest) (*pb.AuthRoleAddResponse, error) {
65	resp, err := as.authenticator.RoleAdd(ctx, r)
66	if err != nil {
67		return nil, togRPCError(err)
68	}
69	return resp, nil
70}
71
72func (as *AuthServer) RoleDelete(ctx context.Context, r *pb.AuthRoleDeleteRequest) (*pb.AuthRoleDeleteResponse, error) {
73	resp, err := as.authenticator.RoleDelete(ctx, r)
74	if err != nil {
75		return nil, togRPCError(err)
76	}
77	return resp, nil
78}
79
80func (as *AuthServer) RoleGet(ctx context.Context, r *pb.AuthRoleGetRequest) (*pb.AuthRoleGetResponse, error) {
81	resp, err := as.authenticator.RoleGet(ctx, r)
82	if err != nil {
83		return nil, togRPCError(err)
84	}
85	return resp, nil
86}
87
88func (as *AuthServer) RoleList(ctx context.Context, r *pb.AuthRoleListRequest) (*pb.AuthRoleListResponse, error) {
89	resp, err := as.authenticator.RoleList(ctx, r)
90	if err != nil {
91		return nil, togRPCError(err)
92	}
93	return resp, nil
94}
95
96func (as *AuthServer) RoleRevokePermission(ctx context.Context, r *pb.AuthRoleRevokePermissionRequest) (*pb.AuthRoleRevokePermissionResponse, error) {
97	resp, err := as.authenticator.RoleRevokePermission(ctx, r)
98	if err != nil {
99		return nil, togRPCError(err)
100	}
101	return resp, nil
102}
103
104func (as *AuthServer) RoleGrantPermission(ctx context.Context, r *pb.AuthRoleGrantPermissionRequest) (*pb.AuthRoleGrantPermissionResponse, error) {
105	resp, err := as.authenticator.RoleGrantPermission(ctx, r)
106	if err != nil {
107		return nil, togRPCError(err)
108	}
109	return resp, nil
110}
111
112func (as *AuthServer) UserAdd(ctx context.Context, r *pb.AuthUserAddRequest) (*pb.AuthUserAddResponse, error) {
113	resp, err := as.authenticator.UserAdd(ctx, r)
114	if err != nil {
115		return nil, togRPCError(err)
116	}
117	return resp, nil
118}
119
120func (as *AuthServer) UserDelete(ctx context.Context, r *pb.AuthUserDeleteRequest) (*pb.AuthUserDeleteResponse, error) {
121	resp, err := as.authenticator.UserDelete(ctx, r)
122	if err != nil {
123		return nil, togRPCError(err)
124	}
125	return resp, nil
126}
127
128func (as *AuthServer) UserGet(ctx context.Context, r *pb.AuthUserGetRequest) (*pb.AuthUserGetResponse, error) {
129	resp, err := as.authenticator.UserGet(ctx, r)
130	if err != nil {
131		return nil, togRPCError(err)
132	}
133	return resp, nil
134}
135
136func (as *AuthServer) UserList(ctx context.Context, r *pb.AuthUserListRequest) (*pb.AuthUserListResponse, error) {
137	resp, err := as.authenticator.UserList(ctx, r)
138	if err != nil {
139		return nil, togRPCError(err)
140	}
141	return resp, nil
142}
143
144func (as *AuthServer) UserGrantRole(ctx context.Context, r *pb.AuthUserGrantRoleRequest) (*pb.AuthUserGrantRoleResponse, error) {
145	resp, err := as.authenticator.UserGrantRole(ctx, r)
146	if err != nil {
147		return nil, togRPCError(err)
148	}
149	return resp, nil
150}
151
152func (as *AuthServer) UserRevokeRole(ctx context.Context, r *pb.AuthUserRevokeRoleRequest) (*pb.AuthUserRevokeRoleResponse, error) {
153	resp, err := as.authenticator.UserRevokeRole(ctx, r)
154	if err != nil {
155		return nil, togRPCError(err)
156	}
157	return resp, nil
158}
159
160func (as *AuthServer) UserChangePassword(ctx context.Context, r *pb.AuthUserChangePasswordRequest) (*pb.AuthUserChangePasswordResponse, error) {
161	resp, err := as.authenticator.UserChangePassword(ctx, r)
162	if err != nil {
163		return nil, togRPCError(err)
164	}
165	return resp, nil
166}
167