分布式调度框架。
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

/*
* 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;
}