Files
EasySoft-ZenTaoPMS/module/user/test/user.class.php
T

1023 lines
26 KiB
PHP
Executable File

<?php
declare(strict_types = 1);
class userTest
{
public function __construct()
{
global $tester;
$this->objectModel = $tester->loadModel('user');
}
/**
* Test get user list.
*
* @param bool $count
* @access public
* @return void
*/
public function getListTest($params = 'nodeleted', $count = false)
{
$objects = $this->objectModel->getList($params);
if(dao::isError())
{
$error = dao::getError();
return $error[0];
}
else
{
return $count ? count($objects) : $objects;
}
}
/**
* Test get user information by accounts.
*
* @param array $accounts
* @param string $keyField
* @access public
* @return void
*/
public function getListByAccountsTest($accounts = array(), $keyField = 'id')
{
$objects = $this->objectModel->getListByAccounts($accounts, $keyField);
if(!dao::isError()) return $objects;
$error = dao::getError();
return $error[0];
}
/**
* Test user get pairs.
*
* @param string $params
* @param string $usersToAppended
* @param int $maxCount
* @param array $accounts
* @access public
* @return void
*/
public function getPairsTest($params = '', $usersToAppended = '', $maxCount = 0, $accounts = array())
{
$objects = $this->objectModel->getPairs($params, $usersToAppended, $maxCount, $accounts);
if(dao::isError())
{
$error = dao::getError();
return $error[0];
}
else
{
return $objects;
}
}
/**
* Test get avatar pairs.
*
* @param string $params
* @access public
* @return array
*/
public function getAvatarPairsTest($param = 'nodeleted')
{
$objects = $this->objectModel->getAvatarPairs($param);
if(dao::isError())
{
$error = dao::getError();
return $error[0];
}
else
{
return $objects;
}
}
/**
* Test get user commiters.
*
* @access public
* @return void
*/
public function getCommitersTest()
{
$objects = $this->objectModel->getCommiters();
if(dao::isError())
{
$error = dao::getError();
return $error[0];
}
else
{
return $objects;
}
}
/**
* Test get user realname and emails.
*
* @param array $accounts
* @access public
* @return void
*/
public function getRealNameAndEmailsTest($accounts)
{
$objects = $this->objectModel->getRealNameAndEmails($accounts);
if(dao::isError())
{
$error = dao::getError();
return $error[0];
}
else
{
return $objects;
}
}
/**
* Test get user roles.
*
* @param array $accounts
* @param bool $needRole
* @access public
* @return void
*/
public function getUserRolesTest($accounts, $needRole = false)
{
$objects = $this->objectModel->getUserRoles($accounts, $needRole);
if(dao::isError())
{
$error = dao::getError();
return $error[0];
}
else
{
return $objects;
}
}
/**
* Test get user display infos.
*
* @param int $accounts
* @param int $deptID
* @param string $type
* @access public
* @return void
*/
public function getUserDisplayInfosTest($accounts, $deptID = 0, $type = 'inside')
{
$objects = $this->objectModel->getUserDisplayInfos($accounts, $deptID, $type);
if(dao::isError())
{
$error = dao::getError();
return $error[0];
}
else
{
return $objects;
}
}
/**
* Test get user by id.
*
* @param int|string $userID
* @param string $field
* @access public
* @return void
*/
public function getByIdTest($userID, $field = 'account')
{
$objects = $this->objectModel->getById($userID, $field);
if(dao::isError())
{
$error = dao::getError();
return $error[0];
}
else
{
return $objects;
}
}
/**
* Test get user by query.
*
* @param string $browseType
* @param string $query
* @param object $pager
* @param string $orderBy
* @access public
* @return void
*/
public function getByQueryTest($browseType = 'inside', $query = '', $pager = null, $orderBy = 'id')
{
$objects = $this->objectModel->getByQuery($browseType, $query, $pager, $orderBy);
if(dao::isError())
{
$error = dao::getError();
return $error[0];
}
else
{
return $objects;
}
}
/**
* 测试创建一个用户。
* Test create a user.
*
* @param object $user
* @access public
* @return array
*/
public function createTest(object $user): array
{
$result = $this->objectModel->create($user);
$errors = dao::getError();
foreach($errors as $key => $error)
{
if(is_array($error)) $errors[$key] = implode('', $error);
}
return array('result' => (int)$result, 'errors' => $errors);
}
/**
* 测试批量创建用户。
* Test batch create users.
*
* @param array $users
* @param string $verifyPassword
* @access public
* @return array
*/
public function batchCreateTest(array $users, string $verifyPassword): array
{
global $tester;
$tester->config->user->batchCreate = count($users);
$result = $this->objectModel->batchCreate($users, $verifyPassword);
$errors = dao::getError();
foreach($errors as $key => $error)
{
if(is_array($error)) $errors[$key] = implode('', $error);
}
return array('result' => (is_array($result) && !empty($result)) ? implode(',', $result) : (int)$result, 'errors' => $errors);
}
/**
* 测试编辑一个用户。
* Test edit a user.
*
* @param object $user
* @access public
* @return array
*/
public function updateTest(object $user): array
{
$result = $this->objectModel->update($user);
$errors = dao::getError();
foreach($errors as $key => $error)
{
if(is_array($error)) $errors[$key] = implode('', $error);
}
return array('result' => (int)$result, 'errors' => $errors);
}
/**
* 测试批量更新用户。
* Test batch update users.
*
* @param array $users
* @param string $verifyPassword
* @access public
* @return array
*/
public function batchUpdateTest(array $users, string $verifyPassword): array
{
$result = $this->objectModel->batchUpdate($users, $verifyPassword);
$errors = dao::getError();
foreach($errors as $key => $error)
{
if(is_array($error)) $errors[$key] = implode('', $error);
}
return array('result' => (int)$result, 'errors' => $errors);
}
/**
* 测试更新当前用户的密码。
* Test update password of current user.
*
* @param object $user
* @access public
* @return array
*/
public function updatePasswordTest(object $user): array
{
$result = $this->objectModel->updatePassword($user);
$errors = dao::getError();
foreach($errors as $key => $error)
{
if(is_array($error)) $errors[$key] = implode('', $error);
}
return array('result' => (int)$result, 'errors' => $errors);
}
/**
* 重置用户密码。
* Reset user password.
*
* @param object $user
* @access public
* @return array
*/
public function resetPasswordTest(object $user): array
{
$result = $this->objectModel->resetPassword($user);
$errors = dao::getError();
foreach($errors as $key => $error)
{
if(is_array($error)) $errors[$key] = implode('', $error);
}
return array('result' => (int)$result, 'errors' => $errors);
}
/**
* 测试创建或编辑用户前检查提交的数据。
* Test check posted data before creating or editing a user.
*
* @param object $user
* @param bool $canNoPassword
* @access public
* @return array
*/
public function checkBeforeCreateOrEditTest(object $user, bool $canNoPassword = false): array
{
$result = $this->objectModel->checkBeforeCreateOrEdit($user, $canNoPassword);
$errors = dao::getError();
foreach($errors as $key => $error)
{
if(is_array($error)) $errors[$key] = implode('', $error);
}
return array('result' => (int)$result, 'errors' => $errors);
}
/**
* 测试批量创建用户前检查提交的数据。
* Test check posted data before batch creating users.
*
* @param array $users
* @param string $verifyPassword
* @access public
* @return array
*/
public function checkBeforeBatchCreateTest(array $users, string $verifyPassword): array
{
$result = $this->objectModel->checkBeforeBatchCreate($users, $verifyPassword);
$errors = dao::getError();
foreach($errors as $key => $error)
{
if(is_array($error)) $errors[$key] = implode('', $error);
}
return array('result' => (int)$result, 'errors' => $errors);
}
/**
* 测试批量编辑用户前检查提交的数据。
* Test check posted data before batch editing users.
*
* @param array $users
* @param string $verifyPassword
* @access public
* @return array
*/
public function checkBeforeBatchUpdateTest(array $users, string $verifyPassword): array
{
$result = $this->objectModel->checkBeforeBatchUpdate($users, $verifyPassword);
$errors = dao::getError();
foreach($errors as $key => $error)
{
if(is_array($error)) $errors[$key] = implode('', $error);
}
return array('result' => (int)$result, 'errors' => $errors);
}
/**
* 测试检查提交的用户密码。
* Test check posted user password.
*
* @param object $user
* @param bool $canNoPassword
* @access public
* @return void
*/
public function checkPasswordTest(object $user, bool $canNoPassword = false): array
{
$result = $this->objectModel->checkPassword($user, $canNoPassword);
$errors = dao::getError();
foreach($errors as $key => $error)
{
if(is_array($error)) $errors[$key] = implode('', $error);
}
return array('result' => (int)$result, 'errors' => $errors);
}
/**
* 测试验证当前用户登录密码的功能。
* Test check verify password of current user.
*
* @param string $verifyPassword
* @access public
* @return array
*/
public function checkVerifyPasswordTest(string $verifyPassword): array
{
$result = $this->objectModel->checkVerifyPassword($verifyPassword);
$errors = dao::getError();
foreach($errors as $key => $error)
{
if(is_array($error)) $errors[$key] = implode('', $error);
}
return array('result' => (int)$result, 'errors' => $errors);
}
/**
* Identify user.
*
* @param string $account
* @param string $password
* @access public
* @return void
*/
public function identifyTest($account, $password)
{
$user = $this->objectModel->identify($account, $password);
unset($_POST);
return $user;
}
/**
* Test authorize user.
*
* @param string $account
* @access public
* @return void
*/
public function authorizeTest($account)
{
$user = $this->objectModel->authorize($account);
return $user;
}
/**
* 测试用户登录。
* Test login user.
*
* @param object $user
* @param bool $addAction
* @param bool $keepLogin
* @access public
* @return object
*/
public function loginTest(object $user, bool $addAction = true, bool $keepLogin = false): bool|object
{
return $this->objectModel->login($user, $addAction, $keepLogin);
}
/**
* 测试获取某个用户的权限组。
* Test get groups of a user.
*
* @param string $account
* @access public
* @return array
*/
public function getGroupsTest(string $account): array
{
return $this->objectModel->getGroups($account);
}
/**
* 测试获取某些界面下可用的权限组。
* Test get groups by visions.
*
* @param string|array $visions
* @access public
* @return array
*/
public function getGroupsByVisionsTest(string|array $visions): array
{
return $this->objectModel->getGroupsByVisions($visions);
}
/**
* Test get my objects.
*
* @param string $account
* @param string $type
* @param string $status
* @param string $orderBy
* @access public
* @return void
*/
public function getObjectsTest($account, $type, $status, $orderBy)
{
$myObjects = $this->objectModel->getObjects($account, $type, $status, $orderBy);
if(dao::isError()) return dao::getError();
return $myObjects;
}
/**
* 测试清除用户失败次数和锁定时间。
* Test clean user locked time.
*
* @param string $account
* @access public
* @return array
*/
public function cleanLockedTest(string $account): array
{
$result = $this->objectModel->cleanLocked($account);
$errors = dao::getError();
foreach($errors as $key => $error)
{
if(is_array($error)) $errors[$key] = implode('', $error);
}
return array('result' => (int)$result, 'errors' => $errors);
}
/**
* Test unbind Ranzhi.
*
* @param string $account
* @access public
* @return string
*/
public function unbindTest($account)
{
global $tester;
$this->objectModel->unbind($account);
if(dao::isError()) return dao::getError();
$ranzhi = $tester->dao->select('ranzhi')->from(TABLE_USER)->where('account')->eq($account)->fetch('ranzhi');
$result = empty($ranzhi) ? 'success' : 'fail';
return $result;
}
/**
* Test get contact list.
*
* @param string $account
* @param string $params
* @access public
* @return void
*/
public function getContactListsTest($account = '', $params = '')
{
$contacts = $this->objectModel->getContactLists($account, $params);
if(dao::isError()) return dao::getError();
return $contacts ? $contacts : 0;
}
/**
* Test get parent stage authed users.
*
* @param int $stageID
* @access public
* @return void
*/
public function getParentStageAuthedUsersTest($stageID)
{
return $this->objectModel->getParentStageAuthedUsers($stageID);
}
/**
* Test get contact list by id.
*
* @param int $listID
* @access public
* @return void
*/
public function getContactListByIDTest($listID)
{
return $this->objectModel->getContactListByID($listID);
}
/**
* 测试创建联系人列表。
* Test create contact list.
*
* @param object $userContact
* @access public
* @return array
*/
public function createContactListTest(object $userContact): array
{
$result = $this->objectModel->createContactList($userContact);
$errors = dao::getError();
foreach($errors as $key => $error)
{
if(is_array($error)) $errors[$key] = implode('', $error);
}
return array('result' => (int)$result, 'errors' => $errors);
}
/**
* 测试更新联系人列表。
* Test update contact list.
*
* @param object $userContact
* @access public
* @return array
*/
public function updateContactListTest(object $userContact): array
{
$result = $this->objectModel->updateContactList($userContact);
$errors = dao::getError();
foreach($errors as $key => $error)
{
if(is_array($error)) $errors[$key] = implode('', $error);
}
return array('result' => (int)$result, 'errors' => $errors);
}
/**
* 测试删除联系人列表。
* Test delete a contact list.
*
* @param int $listID
* @access public
* @return array
*/
public function deleteContactListTest(int $listID): array
{
$result = $this->objectModel->deleteContactList($listID);
$errors = dao::getError();
foreach($errors as $key => $error)
{
if(is_array($error)) $errors[$key] = implode('', $error);
}
return array('result' => (int)$result, 'errors' => $errors);
}
/**
* 测试获取弱密码用户。
* Test get users with weak password.
*
* @access public
* @return array
*/
public function getWeakUsersTest(): array
{
return $this->objectModel->getWeakUsers();
}
/**
* 测试计算密码强度。
* Test compute password strength.
*
* @param string $password
* @access public
* @return int
*/
public function computePasswordStrengthTest(string $password): int
{
return $this->objectModel->computePasswordStrength($password);
}
/**
* Test compute user view.
*
* @param string $account
* @param bool $force
* @access public
* @return void
*/
public function computeUserViewTest($account, $force = true)
{
$userview = $this->objectModel->computeUserView($account, $force);
if(dao::isError()) return dao::getError();
return $userview;
}
/**
* Test get product members.
*
* @param string $account
* @param bool $force
* @access public
* @return void
*/
public function getProductMembersTest($allProducts)
{
$members = $this->objectModel->getProductMembers($allProducts);
if(dao::isError()) return dao::getError();
return $members;
}
/**
* Test get product members.
*
* @param string $account
* @param bool $force
* @access public
* @return void
*/
public function grantUserViewTest($account = '', $acls = array(), $projects = '')
{
$userView = $this->objectModel->grantUserView($account, $acls, $projects);
if(dao::isError()) return dao::getError();
return $userView;
}
/**
* Test update program view.
*
* @param array $programIdList
* @param array $users
* @access public
* @return void
*/
public function updateProgramViewTest($programIdList = array(), $users = array())
{
$this->objectModel->updateProgramView($programIdList, $users);
if(dao::isError()) return dao::getError();
return $this->objectModel->grantUserView(current($users));
}
/**
* Test get project authed users.
*
* @param int $projectID
* @param array $stakeholders
* @param array $teams
* @param array $whiteList
* @access public
* @return void
*/
public function getProjectAuthedUsersTest($projectID, $stakeholders, $teams, $whiteList)
{
global $tester;
$project = $tester->loadModel('project')->getByID($projectID);
return $this->objectModel->getProjectAuthedUsers($project, $stakeholders, $teams, $whiteList);
}
/**
* Test get program authed users.
*
* @param int $projectID
* @param array $stakeholders
* @param array $whiteList
* @param array $admins
* @access public
* @return array
*/
public function getProgramAuthedUsersTest(int $programID, array $stakeholders, array $whiteList, array $admins): array
{
global $tester;
$program = $tester->loadModel('program')->getByID($programID);
return $this->objectModel->getProgramAuthedUsers($program, $stakeholders, $whiteList, $admins);
}
/**
* getSprintAuthedUsersTest
*
* @param int $sprintID
* @param array $stakeholders
* @param array $teams
* @param array $whiteList
* @param array $admins
* @access public
* @return void
*/
public function getSprintAuthedUsersTest($sprintID, $stakeholders, $teams, $whiteList, $admins)
{
global $tester;
$sprint = $tester->loadModel('execution')->getByID($sprintID);
return $this->objectModel->getSprintAuthedUsers($sprint, $stakeholders, $teams, $whiteList, $admins);
}
/**
* Test get product view list users.
*
* @param int $productID
* @param array $teams
* @param array $stakeholders
* @param array $whiteList
* @access public
* @return void
*/
public function getProductViewListUsersTest($productID, $teams, $stakeholders, $whiteList, $admins)
{
global $tester;
$product = $tester->loadModel('product')->getByID($productID);
return $this->objectModel->getProductViewListUsers($product, $teams, $stakeholders, $whiteList, $admins);
}
/**
* Test get team member pairs of the object.
*
* @param string|array|int $objectIds
* @param string $type project|execution
* @param string $params
* @param string|array $usersToAppended
* @access public
* @return array
*/
public function getTeamMemberPairsTest(string|array|int $objectIds, string $type = 'project', string $params = '', string|array $usersToAppended = '')
{
return $this->objectModel->getTeamMemberPairs($objectIds, $type, $params, $usersToAppended);
}
/**
* 测试保存用户模板。
* Test save user template.
*
* @param object $template
* @access public
* @return array
*/
public function saveUserTemplateTest(object $template): array
{
$result = $this->objectModel->saveUserTemplate($template);
$errors = dao::getError();
foreach($errors as $key => $error)
{
if(is_array($error)) $errors[$key] = implode('', $error);
}
return array('result' => (int)$result, 'errors' => $errors);
}
/**
* 测试获取指定类型的用户模板。
* Test get user templates.
*
* @param string $type
* @access public
* @return array
*/
public function getUserTemplatesTest(string $type): array
{
return $this->objectModel->getUserTemplates($type);
}
/**
* Test get person data.
*
* @param string $account
* @access public
* @return void
*/
public function getPersonalDataTest($account)
{
return $this->objectModel->getPersonalData($account);
}
/**
* Test get user details for api.
*
* @param array $accountList
* @access public
* @return array
*/
public function getListForGitLabAPITest(array $accountList): array
{
return $this->objectModel->getListForGitLabAPI($accountList);
}
/**
* Get users who have authority to create stories.
*
* @access public
* @return array
*/
public function getCanCreateStoryUsersTest()
{
return $this->objectModel->getCanCreateStoryUsers();
}
/**
* 判断用户是否登录。
* Judge a user is logon or not.
*
* @access public
* @return bool
*/
public function isLogonTest(): bool
{
return $this->objectModel->isLogon();
}
/**
* Plus the fail times.
*
* @param string $account
* @access public
* @return int
*/
public function failPlusTest($account)
{
global $tester;
$this->objectModel->failPlus($account);
$failCounts = $tester->dao->select('fails')->from(TABLE_USER)->where('account')->eq($account)->fetch('fails');
return $failCounts;
}
/**
* 测试检查用户是否被锁定。
* Test check user is locked or not.
*
* @param string $account
* @access public
* @return bool
*/
public function checkLockedTest(string $account): bool
{
return $this->objectModel->checkLocked($account);
}
/**
* 测试根据 PHP_AUTH_USER 验证用户。
* Identify user by PHP_AUTH_USER.
*
* @access public
* @return bool
*/
public function identifyByPhpAuthTest(): bool
{
return $this->objectModel->identifyByPhpAuth();
}
/**
* 测试根据 cookie 验证用户。
* Identify user by cookie.
*
* @access public
* @return bool
*/
public function identifyByCookieTest(): bool
{
return $this->objectModel->identifyByCookie();
}
/**
* 测试是否可以针对用户执行某个操作。
* Test whether an action can be performed on the user.
*
* @param object $user
* @param string $action
* @access public
* @return bool
*/
public function isClickableTest(object $user, string $action): bool
{
return $this->objectModel->isClickable($user, $action);
}
}