Adding nemo engine.
[nemo.git] / nemo-impl / src / main / java / org / opendaylight / nemo / user / tenantmanager / RegisterUser.java
1 /*\r
2  * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 package org.opendaylight.nemo.user.tenantmanager;\r
9 \r
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;\r
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserRoleName;\r
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.RegisterUserInput;\r
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;\r
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.user.rev151010.user.roles.UserRole;\r
15 \r
16 import java.util.List;\r
17 \r
18 /**\r
19  * Created by z00293636 on 2015/9/20.\r
20  */\r
21 public class RegisterUser {\r
22     private TenantManage tenantManage;\r
23     private List<UserRole> userRoleList;\r
24     private List<User> usersList;\r
25 \r
26     public RegisterUser(TenantManage tenantManage)\r
27     {\r
28         this.tenantManage = tenantManage;\r
29     }\r
30 \r
31     public String registerUser(RegisterUserInput input)\r
32     {\r
33         String errorInfo = null;\r
34 \r
35         tenantManage.fetchUserRoles();\r
36         userRoleList = tenantManage.getUserRoleList();\r
37         tenantManage.fetchUsers();\r
38         usersList = tenantManage.getUsersList();\r
39 \r
40         if (userRoleList == null)\r
41         {\r
42             errorInfo = "There are no roles be defined.";\r
43         }\r
44         else\r
45         {\r
46             if (IfRoleExist(input.getUserRole()))\r
47             {\r
48                 if (usersList != null && IfUserHasRegistered(input.getUserId()))\r
49                 {\r
50                     errorInfo = "The user has been registered.";\r
51                 }\r
52                 else\r
53                 {\r
54                     tenantManage.addUser(input);\r
55                 }\r
56             }\r
57             else\r
58             {\r
59                 errorInfo = "The role is not defined in the data store.";\r
60             }\r
61         }\r
62         return errorInfo;\r
63     }\r
64     private boolean IfRoleExist(UserRoleName userRoleName){\r
65         Boolean roleExist = false;\r
66 \r
67         for (UserRole userRole : userRoleList)\r
68         {\r
69             if (userRole.getRoleName().equals(userRoleName))\r
70             {\r
71                 roleExist = true;\r
72             }\r
73         }\r
74 \r
75         return roleExist;\r
76     }\r
77 \r
78     private boolean IfUserHasRegistered(UserId userId){\r
79         Boolean userHasRegistered = false;\r
80 \r
81         for (User user : usersList)\r
82         {\r
83             if (user.getUserId().equals(userId))\r
84             {\r
85                 userHasRegistered = true;\r
86             }\r
87         }\r
88 \r
89         return userHasRegistered;\r
90     }\r
91 \r
92 }\r