Exemplo n.º 1
0
/**
 * Returns true if user can assign the task or an error string if not.
 * @param $user
 * @param $task
 * @param $company_id
 * @param $user_id
 * @return mixed
 */
function can_assign_task_to_company_user(User $user, ProjectTask $task, $company_id, $user_id)
{
    if ($company_id != 0) {
        $workspace = $task->getProject();
        if ($user_id != 0) {
            $assignee = Users::findById($user_id);
            if (!$assignee instanceof User) {
                return lang('error assign task user dnx');
            } else {
                if (!can_assign_task($user, $workspace, $assignee)) {
                    return lang('error assign task permissions user');
                }
            }
        } else {
            $company = Companies::findById($company_id);
            if (!$company instanceof Company) {
                return lang('error assign task company dnx');
            } else {
                if (!can_assign_task($user, $workspace, $company)) {
                    return lang('error assign task permissions company');
                }
            }
        }
    }
    return true;
}
Exemplo n.º 2
0
function allowed_users_to_assign($wsid)
{
    $ws = Projects::findById($wsid);
    $comp_array = array();
    $companies = Companies::findAll();
    if ($companies != null) {
        foreach ($companies as $comp) {
            if ($ws != null) {
                $users = $comp->getUsersOnProject($ws);
            } else {
                continue;
            }
            if (is_array($users)) {
                foreach ($users as $k => $user) {
                    // if logged_user can assign tasks to user and user can read tasks the user is allowed
                    if (!can_assign_task(logged_user(), $ws, $user) || !can_read_type($user, $ws, 'ProjectTasks')) {
                        unset($users[$k]);
                    }
                }
                if (count($users) > 0) {
                    $comp_data = array('id' => $comp->getId(), 'name' => $comp->getName(), 'users' => array());
                    foreach ($users as $user) {
                        $comp_data['users'][] = $user->getArrayInfo();
                    }
                    //if ($ws == null || can_assign_task(logged_user(), $ws, $comp)) {
                    if (count($users) > 0) {
                        $comp_array[] = $comp_data;
                    }
                }
            }
        }
    }
    return $comp_array;
}