69bc1d52508df2ef8df46ce9b33857cddc901494
[moon.git] /
1 /*
2  * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.aaa.authn.mdsal.store;
9
10 import java.util.List;
11 import org.opendaylight.aaa.api.IDMStoreException;
12 import org.opendaylight.aaa.api.IDMStoreUtil;
13 import org.opendaylight.aaa.api.IIDMStore;
14 import org.opendaylight.aaa.api.model.Domain;
15 import org.opendaylight.aaa.api.model.Domains;
16 import org.opendaylight.aaa.api.model.Grant;
17 import org.opendaylight.aaa.api.model.Grants;
18 import org.opendaylight.aaa.api.model.Role;
19 import org.opendaylight.aaa.api.model.Roles;
20 import org.opendaylight.aaa.api.model.User;
21 import org.opendaylight.aaa.api.model.Users;
22
23 /**
24  * @author Sharon Aicler - saichler@cisco.com
25  *
26  */
27 public class IDMStore implements IIDMStore {
28     private final IDMMDSALStore mdsalStore;
29
30     public IDMStore(IDMMDSALStore mdsalStore) {
31         this.mdsalStore = mdsalStore;
32     }
33
34     @Override
35     public Domain writeDomain(Domain domain) throws IDMStoreException {
36         return IDMObject2MDSAL.toIDMDomain(mdsalStore.writeDomain(IDMObject2MDSAL.toMDSALDomain(domain)));
37     }
38
39     @Override
40     public Domain readDomain(String domainid) throws IDMStoreException {
41         return IDMObject2MDSAL.toIDMDomain(mdsalStore.readDomain(domainid));
42     }
43
44     @Override
45     public Domain deleteDomain(String domainid) throws IDMStoreException {
46         return IDMObject2MDSAL.toIDMDomain(mdsalStore.deleteDomain(domainid));
47     }
48
49     @Override
50     public Domain updateDomain(Domain domain) throws IDMStoreException {
51         return IDMObject2MDSAL.toIDMDomain(mdsalStore.updateDomain(IDMObject2MDSAL.toMDSALDomain(domain)));
52     }
53
54     @Override
55     public Domains getDomains() throws IDMStoreException {
56         Domains domains = new Domains();
57         List<org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.Domain> mdSalDomains = mdsalStore.getAllDomains();
58         for (org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.Domain d : mdSalDomains) {
59             domains.getDomains().add(IDMObject2MDSAL.toIDMDomain(d));
60         }
61         return domains;
62     }
63
64     @Override
65     public Role writeRole(Role role) throws IDMStoreException {
66         return IDMObject2MDSAL.toIDMRole(mdsalStore.writeRole(IDMObject2MDSAL.toMDSALRole(role)));
67     }
68
69     @Override
70     public Role readRole(String roleid) throws IDMStoreException {
71         return IDMObject2MDSAL.toIDMRole(mdsalStore.readRole(roleid));
72     }
73
74     @Override
75     public Role deleteRole(String roleid) throws IDMStoreException {
76         return IDMObject2MDSAL.toIDMRole(mdsalStore.deleteRole(roleid));
77     }
78
79     @Override
80     public Role updateRole(Role role) throws IDMStoreException {
81         return IDMObject2MDSAL.toIDMRole(mdsalStore.writeRole(IDMObject2MDSAL.toMDSALRole(role)));
82     }
83
84     @Override
85     public User writeUser(User user) throws IDMStoreException {
86         return IDMObject2MDSAL.toIDMUser(mdsalStore.writeUser(IDMObject2MDSAL.toMDSALUser(user)));
87     }
88
89     @Override
90     public User readUser(String userid) throws IDMStoreException {
91         return IDMObject2MDSAL.toIDMUser(mdsalStore.readUser(userid));
92     }
93
94     @Override
95     public User deleteUser(String userid) throws IDMStoreException {
96         return IDMObject2MDSAL.toIDMUser(mdsalStore.deleteUser(userid));
97     }
98
99     @Override
100     public User updateUser(User user) throws IDMStoreException {
101         return IDMObject2MDSAL.toIDMUser(mdsalStore.writeUser(IDMObject2MDSAL.toMDSALUser(user)));
102     }
103
104     @Override
105     public Grant writeGrant(Grant grant) throws IDMStoreException {
106         return IDMObject2MDSAL.toIDMGrant(mdsalStore.writeGrant(IDMObject2MDSAL.toMDSALGrant(grant)));
107     }
108
109     @Override
110     public Grant readGrant(String grantid) throws IDMStoreException {
111         return IDMObject2MDSAL.toIDMGrant(mdsalStore.readGrant(grantid));
112     }
113
114     @Override
115     public Grant deleteGrant(String grantid) throws IDMStoreException {
116         return IDMObject2MDSAL.toIDMGrant(mdsalStore.readGrant(grantid));
117     }
118
119     @Override
120     public Roles getRoles() throws IDMStoreException {
121         Roles roles = new Roles();
122         List<org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.Role> mdSalRoles = mdsalStore.getAllRoles();
123         for (org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.Role r : mdSalRoles) {
124             roles.getRoles().add(IDMObject2MDSAL.toIDMRole(r));
125         }
126         return roles;
127     }
128
129     @Override
130     public Users getUsers() throws IDMStoreException {
131         Users users = new Users();
132         List<org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.User> mdSalUsers = mdsalStore.getAllUsers();
133         for (org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.User u : mdSalUsers) {
134             users.getUsers().add(IDMObject2MDSAL.toIDMUser(u));
135         }
136         return users;
137     }
138
139     @Override
140     public Users getUsers(String username, String domain) throws IDMStoreException {
141         Users users = new Users();
142         List<org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.User> mdSalUsers = mdsalStore.getAllUsers();
143         for (org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.User u : mdSalUsers) {
144             if (u.getDomainid().equals(domain) && u.getName().equals(username)) {
145                 users.getUsers().add(IDMObject2MDSAL.toIDMUser(u));
146             }
147         }
148         return users;
149     }
150
151     @Override
152     public Grants getGrants(String domainid, String userid) throws IDMStoreException {
153         Grants grants = new Grants();
154         List<org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.Grant> mdSalGrants = mdsalStore.getAllGrants();
155         String currentGrantUserId, currentGrantDomainId;
156         for (org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.Grant g : mdSalGrants) {
157             currentGrantUserId = g.getUserid();
158             currentGrantDomainId = g.getDomainid();
159             if (currentGrantUserId.equals(userid) && currentGrantDomainId.equals(domainid)) {
160                 grants.getGrants().add(IDMObject2MDSAL.toIDMGrant(g));
161             }
162         }
163         return grants;
164     }
165
166     @Override
167     public Grants getGrants(String userid) throws IDMStoreException {
168         Grants grants = new Grants();
169         List<org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.Grant> mdSalGrants = mdsalStore.getAllGrants();
170         for (org.opendaylight.yang.gen.v1.urn.aaa.yang.authn.claims.rev141029.authentication.Grant g : mdSalGrants) {
171             if (g.getUserid().equals(userid)) {
172                 grants.getGrants().add(IDMObject2MDSAL.toIDMGrant(g));
173             }
174         }
175         return grants;
176     }
177
178     @Override
179     public Grant readGrant(String domainid, String userid, String roleid) throws IDMStoreException {
180         return readGrant(IDMStoreUtil.createGrantid(userid, domainid, roleid));
181     }
182 }