def is_customer_user_allowed_to_login(user_id: UserId) -> bool: if not cmk_version.is_managed_edition(): return True user = config.LoggedInUser(user_id) import cmk.gui.cme.managed as managed # pylint: disable=no-name-in-module if managed.is_global(user.customer_id): return True return managed.is_current_customer(user.customer_id)
def monitoring_user(tmp_path, mocker): """Returns a "Normal monitoring user" object.""" config_dir = tmp_path / 'config_dir' user_dir = config_dir / 'test' user_dir.mkdir(parents=True) user_dir.joinpath('cached_profile.mk').write_text(str(MONITORING_USER_CACHED_PROFILE)) # SITE STATUS snapin settings: user_dir.joinpath('siteconfig.mk').write_text(str(MONITORING_USER_SITECONFIG)) # Ordering of the buttons: user_dir.joinpath('buttoncounts.mk').write_text(str(MONITORING_USER_BUTTONCOUNTS)) # Favorites set in the commands menu: user_dir.joinpath('favorites.mk').write_text(str(MONITORING_USER_FAVORITES)) mocker.patch.object(config, 'config_dir', str(config_dir)) mocker.patch.object(config, 'roles_of_user', lambda user_id: ['user']) assert config.builtin_role_ids == ['user', 'admin', 'guest'] assert 'test' not in config.admin_users return config.LoggedInUser('test')
def load_cached_profile(user_id: UserId) -> Optional[UserSpec]: user = config.LoggedInUser( user_id) if user_id != config.user.id else config.user return user.load_file("cached_profile", None)