code: def test_rbac_template_patch_config() -> None:
      admin_session = api_utils.determined_test_session(
          conf.ADMIN_CREDENTIALS
      )
      with rbac.create_workspaces_with_users(
          [
              [  # can update
                  (0, ["Editor"]),
                  (1, ["WorkspaceAdmin"]),
              ],
              [  # cannot update
                  (0, ["Viewer"]),
                  (1, ["Viewer"]),
              ],
          ]
      ) as (workspaces, creds):
          _, tpl0 = setup_template_test(admin_session, workspaces[0].id)
          _, tpl1 = setup_template_test(admin_session, workspaces[1].id)
          for uid in creds:
              tpl0.config["description"] = "updated description"
              bindings.patch_PatchTemplateConfig(
                  api_utils.determined_test_session(creds[uid]),
                  body=tpl0.config,
                  templateName=tpl0.name,
              )
              with pytest.raises(errors.ForbiddenException):
                  bindings.patch_PatchTemplateConfig(
                      api_utils.determined_test_session(creds[uid]),
                      body=tpl1.config,
                      templateName=tpl1.name,
                  )
  
imports: from typing import Optional, Tuple
  import pytest
  from determined.common import util
  from determined.common.api import NTSC_Kind, Session, bindings, errors
  from tests import api_utils
  from tests import command
  from tests import config
  from tests import experiment
  from tests import template
  from tests.cluster import test_rbac
  from tests.cluster import test_users
label_desc: Use image node_id 14 for calling a global function with example usage: test_rbac_template_patch_config() without return types