| // Copyright 2012 Citrix Systems, Inc. Licensed under the |
| // Apache License, Version 2.0 (the "License"); you may not use this |
| // file except in compliance with the License. Citrix Systems, Inc. |
| // reserves all rights not expressly granted by 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. |
| // |
| // Automatically generated by addcopyright.py at 04/03/2012 |
| package com.cloud.user; |
| |
| import java.util.List; |
| import java.util.Map; |
| |
| import com.cloud.acl.ControlledEntity; |
| import com.cloud.acl.SecurityChecker.AccessType; |
| import com.cloud.api.commands.DeleteUserCmd; |
| import com.cloud.api.commands.ListAccountsCmd; |
| import com.cloud.api.commands.ListUsersCmd; |
| import com.cloud.api.commands.RegisterCmd; |
| import com.cloud.api.commands.UpdateAccountCmd; |
| import com.cloud.api.commands.UpdateUserCmd; |
| import com.cloud.domain.Domain; |
| import com.cloud.exception.ConcurrentOperationException; |
| import com.cloud.exception.PermissionDeniedException; |
| import com.cloud.exception.ResourceUnavailableException; |
| import com.cloud.utils.Pair; |
| |
| public interface AccountService { |
| |
| /** |
| * Creates a new user and account, stores the password as is so encrypted passwords are recommended. |
| * |
| * @param userName |
| * TODO |
| * @param password |
| * TODO |
| * @param firstName |
| * TODO |
| * @param lastName |
| * TODO |
| * @param email |
| * TODO |
| * @param timezone |
| * TODO |
| * @param accountName |
| * TODO |
| * @param accountType |
| * TODO |
| * @param domainId |
| * TODO |
| * @param networkDomain |
| * TODO |
| * |
| * @return the user if created successfully, null otherwise |
| */ |
| UserAccount createUserAccount(String userName, String password, String firstName, String lastName, String email, String timezone, String accountName, short accountType, Long domainId, String networkDomain, |
| Map<String, String> details); |
| |
| /** |
| * Deletes a user by userId |
| * |
| * @param accountId |
| * - id of the account do delete |
| * |
| * @return true if delete was successful, false otherwise |
| */ |
| boolean deleteUserAccount(long accountId); |
| |
| /** |
| * Disables a user by userId |
| * |
| * @param userId |
| * - the userId |
| * @return UserAccount object |
| */ |
| UserAccount disableUser(long userId); |
| |
| /** |
| * Enables a user |
| * |
| * @param userId |
| * - the userId |
| * @return UserAccount object |
| */ |
| UserAccount enableUser(long userId); |
| |
| /** |
| * Locks a user by userId. A locked user cannot access the API, but will still have running VMs/IP addresses |
| * allocated/etc. |
| * |
| * @param userId |
| * @return UserAccount object |
| */ |
| UserAccount lockUser(long userId); |
| |
| /** |
| * Update a user by userId |
| * |
| * @param userId |
| * @return UserAccount object |
| */ |
| UserAccount updateUser(UpdateUserCmd cmd); |
| |
| /** |
| * Disables an account by accountName and domainId |
| * |
| * @param accountName |
| * TODO |
| * @param domainId |
| * TODO |
| * @param accountId |
| * @param disabled |
| * account if success |
| * @return true if disable was successful, false otherwise |
| */ |
| Account disableAccount(String accountName, Long domainId, Long accountId) throws ConcurrentOperationException, ResourceUnavailableException; |
| |
| /** |
| * Enables an account by accountId |
| * |
| * @param accountName |
| * - the enableAccount command defining the accountId to be deleted. |
| * @param domainId |
| * TODO |
| * @param accountId |
| * @return account object |
| */ |
| Account enableAccount(String accountName, Long domainId, Long accountId); |
| |
| /** |
| * Locks an account by accountId. A locked account cannot access the API, but will still have running VMs/IP |
| * addresses |
| * allocated/etc. |
| * |
| * @param accountName |
| * - the LockAccount command defining the accountId to be locked. |
| * @param domainId |
| * TODO |
| * @param accountId |
| * @return account object |
| */ |
| Account lockAccount(String accountName, Long domainId, Long accountId); |
| |
| /** |
| * Updates an account name |
| * |
| * @param cmd |
| * - the parameter containing accountId |
| * @return updated account object |
| */ |
| |
| Account updateAccount(UpdateAccountCmd cmd); |
| |
| Account getSystemAccount(); |
| |
| User getSystemUser(); |
| |
| User createUser(String userName, String password, String firstName, String lastName, String email, String timeZone, String accountName, Long domainId); |
| |
| boolean deleteUser(DeleteUserCmd deleteUserCmd); |
| |
| boolean isAdmin(short accountType); |
| |
| Account finalizeOwner(Account caller, String accountName, Long domainId, Long projectId); |
| |
| Pair<List<Long>, Long> finalizeAccountDomainForList(Account caller, String accountName, Long domainId, Long projectId); |
| |
| Account getActiveAccountByName(String accountName, Long domainId); |
| |
| Account getActiveAccountById(Long accountId); |
| |
| Account getAccount(Long accountId); |
| |
| User getActiveUser(long userId); |
| |
| User getUserIncludingRemoved(long userId); |
| |
| boolean isRootAdmin(short accountType); |
| |
| User getActiveUserByRegistrationToken(String registrationToken); |
| |
| void markUserRegistered(long userId); |
| |
| public String[] createApiKeyAndSecretKey(RegisterCmd cmd); |
| |
| List<? extends Account> searchForAccounts(ListAccountsCmd cmd); |
| |
| List<? extends UserAccount> searchForUsers(ListUsersCmd cmd) |
| throws PermissionDeniedException; |
| |
| void checkAccess(Account account, Domain domain) throws PermissionDeniedException; |
| |
| void checkAccess(Account account, AccessType accessType, boolean sameOwner, ControlledEntity... entities) throws PermissionDeniedException; |
| |
| } |