You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
313 lines
8.9 KiB
313 lines
8.9 KiB
/* |
|
* Licensed to the Apache Software Foundation (ASF) under one or more |
|
* contributor license agreements. See the NOTICE file distributed with |
|
* this work for additional information regarding copyright ownership. |
|
* The ASF licenses this file to You 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 org.apache.dolphinscheduler.api.service; |
|
|
|
import org.apache.dolphinscheduler.api.utils.Result; |
|
import org.apache.dolphinscheduler.common.enums.UserType; |
|
import org.apache.dolphinscheduler.dao.entity.User; |
|
|
|
import java.io.IOException; |
|
import java.util.List; |
|
import java.util.Map; |
|
|
|
/** |
|
* users service |
|
*/ |
|
public interface UsersService { |
|
|
|
/** |
|
* create user, only system admin have permission |
|
* |
|
* @param loginUser login user |
|
* @param userName user name |
|
* @param userPassword user password |
|
* @param email email |
|
* @param tenantId tenant id |
|
* @param phone phone |
|
* @param queue queue |
|
* @return create result code |
|
* @throws Exception exception |
|
*/ |
|
Map<String, Object> createUser(User loginUser, String userName, String userPassword, String email, |
|
int tenantId, String phone, String queue, int state) throws Exception; |
|
|
|
User createUser(String userName, String userPassword, String email, |
|
int tenantId, String phone, String queue, int state); |
|
|
|
/*** |
|
* create User for ldap login |
|
*/ |
|
User createUser(UserType userType, String userId, String email); |
|
|
|
/** |
|
* get user by user name |
|
* |
|
* @param userName user name |
|
* @return exist user or null |
|
*/ |
|
User getUserByUserName(String userName); |
|
|
|
/** |
|
* query user by id |
|
* |
|
* @param id id |
|
* @return user info |
|
*/ |
|
User queryUser(int id); |
|
|
|
/** |
|
* query user by ids |
|
* |
|
* @param ids id list |
|
* @return user list |
|
*/ |
|
List<User> queryUser(List<Integer> ids); |
|
|
|
/** |
|
* query user |
|
* |
|
* @param name name |
|
* @return user info |
|
*/ |
|
User queryUser(String name); |
|
|
|
/** |
|
* query user |
|
* |
|
* @param name name |
|
* @param password password |
|
* @return user info |
|
*/ |
|
User queryUser(String name, String password); |
|
|
|
/** |
|
* get user id by user name |
|
* |
|
* @param name user name |
|
* @return if name empty 0, user not exists -1, user exist user id |
|
*/ |
|
int getUserIdByName(String name); |
|
|
|
/** |
|
* query user list |
|
* |
|
* @param loginUser login user |
|
* @param pageNo page number |
|
* @param searchVal search avlue |
|
* @param pageSize page size |
|
* @return user list page |
|
*/ |
|
Result queryUserList(User loginUser, String searchVal, Integer pageNo, Integer pageSize); |
|
|
|
User updateUser(User loginUser, |
|
Integer userId, |
|
String userName, |
|
String userPassword, |
|
String email, |
|
Integer tenantId, |
|
String phone, |
|
String queue, |
|
int state, |
|
String timeZone) throws IOException; |
|
|
|
/** |
|
* delete user |
|
* |
|
* @param loginUser login user |
|
* @param id user id |
|
* @return delete result code |
|
* @throws Exception exception when operate hdfs |
|
*/ |
|
Map<String, Object> deleteUserById(User loginUser, int id) throws IOException; |
|
|
|
/** |
|
* grant project |
|
* |
|
* @param loginUser login user |
|
* @param userId user id |
|
* @param projectIds project id array |
|
* @return grant result code |
|
*/ |
|
Map<String, Object> grantProject(User loginUser, int userId, String projectIds); |
|
|
|
/** |
|
* grant project with read permission |
|
* |
|
* @param loginUser login user |
|
* @param userId user id |
|
* @param projectIds project id array |
|
* @return grant result code |
|
*/ |
|
Map<String, Object> grantProjectWithReadPerm(User loginUser, int userId, String projectIds); |
|
|
|
/** |
|
* grant project by code |
|
* |
|
* @param loginUser login user |
|
* @param userId user id |
|
* @param projectCode project code |
|
* @return grant result code |
|
*/ |
|
Map<String, Object> grantProjectByCode(User loginUser, int userId, long projectCode); |
|
|
|
/** |
|
* revoke the project permission for specified user by id |
|
* @param loginUser Login user |
|
* @param userId User id |
|
* @param projectIds project id array |
|
* @return |
|
*/ |
|
Map<String, Object> revokeProjectById(User loginUser, int userId, String projectIds); |
|
|
|
/** |
|
* revoke the project permission for specified user. |
|
* @param loginUser Login user |
|
* @param userId User id |
|
* @param projectCode Project Code |
|
* @return |
|
*/ |
|
Map<String, Object> revokeProject(User loginUser, int userId, long projectCode); |
|
|
|
/** |
|
* grant udf function |
|
* |
|
* @param loginUser login user |
|
* @param userId user id |
|
* @param udfIds udf id array |
|
* @return grant result code |
|
*/ |
|
Map<String, Object> grantUDFFunction(User loginUser, int userId, String udfIds); |
|
|
|
/** |
|
* grant namespace |
|
* |
|
* @param loginUser login user |
|
* @param userId user id |
|
* @param namespaceIds namespace id array |
|
* @return grant result code |
|
*/ |
|
Map<String, Object> grantNamespaces(User loginUser, int userId, String namespaceIds); |
|
|
|
/** |
|
* grant datasource |
|
* |
|
* @param loginUser login user |
|
* @param userId user id |
|
* @param datasourceIds data source id array |
|
* @return grant result code |
|
*/ |
|
Map<String, Object> grantDataSource(User loginUser, int userId, String datasourceIds); |
|
|
|
/** |
|
* query user info |
|
* |
|
* @param loginUser login user |
|
* @return user info |
|
*/ |
|
Map<String, Object> getUserInfo(User loginUser); |
|
|
|
/** |
|
* query user list |
|
* |
|
* @param loginUser login user |
|
* @return user list |
|
*/ |
|
Map<String, Object> queryAllGeneralUsers(User loginUser); |
|
|
|
/** |
|
* query user list |
|
* |
|
* @param loginUser login user |
|
* @return user list |
|
*/ |
|
Map<String, Object> queryUserList(User loginUser); |
|
|
|
/** |
|
* verify user name exists |
|
* |
|
* @param userName user name |
|
* @return true if user name not exists, otherwise return false |
|
*/ |
|
Result<Object> verifyUserName(String userName); |
|
|
|
/** |
|
* unauthorized user |
|
* |
|
* @param loginUser login user |
|
* @param alertGroupId alert group id |
|
* @return unauthorize result code |
|
*/ |
|
Map<String, Object> unauthorizedUser(User loginUser, Integer alertGroupId); |
|
|
|
/** |
|
* authorized user |
|
* |
|
* @param loginUser login user |
|
* @param alertGroupId alert group id |
|
* @return authorized result code |
|
*/ |
|
Map<String, Object> authorizedUser(User loginUser, Integer alertGroupId); |
|
|
|
/** |
|
* registry user, default state is 0, default tenant_id is 1, no phone, no queue |
|
* |
|
* @param userName user name |
|
* @param userPassword user password |
|
* @param repeatPassword repeat password |
|
* @param email email |
|
* @return registry result code |
|
* @throws Exception exception |
|
*/ |
|
Map<String, Object> registerUser(String userName, String userPassword, String repeatPassword, String email); |
|
|
|
/** |
|
* activate user, only system admin have permission, change user state code 0 to 1 |
|
* |
|
* @param loginUser login user |
|
* @param userName user name |
|
* @return create result code |
|
*/ |
|
Map<String, Object> activateUser(User loginUser, String userName); |
|
|
|
/** |
|
* activate user, only system admin have permission, change users state code 0 to 1 |
|
* |
|
* @param loginUser login user |
|
* @param userNames user name |
|
* @return create result code |
|
*/ |
|
Map<String, Object> batchActivateUser(User loginUser, List<String> userNames); |
|
|
|
/** |
|
* Make sure user with given name exists, and create the user if not exists |
|
* <p> |
|
* ONLY for python gateway server, and should not use this in web ui function |
|
* |
|
* @param userName user name |
|
* @param userPassword user password |
|
* @param email user email |
|
* @param phone user phone |
|
* @param tenantCode tenant code |
|
* @param queue queue |
|
* @param state state |
|
* @return create result code |
|
*/ |
|
User createUserIfNotExists(String userName, String userPassword, String email, String phone, String tenantCode, |
|
String queue, |
|
int state) throws IOException; |
|
}
|
|
|