зеркало из https://github.com/nextcloud/desktop.git
Merge pull request #3930 from nextcloud/feature/additional-features-for-initial-setup-config
Pass username from Windows to login page.
This commit is contained in:
Коммит
f575cc1860
|
@ -13,6 +13,7 @@ set( APPLICATION_REV_DOMAIN "com.nextcloud.desktopclient" )
|
|||
set( APPLICATION_VIRTUALFILE_SUFFIX "nextcloud" CACHE STRING "Virtual file suffix (not including the .)")
|
||||
set( APPLICATION_OCSP_STAPLING_ENABLED OFF )
|
||||
set( APPLICATION_FORBID_BAD_SSL OFF )
|
||||
set( APPLICATION_LOGIN_WITH_SYSTEM_USERNAME OFF )
|
||||
|
||||
set( LINUX_PACKAGE_SHORTNAME "nextcloud" )
|
||||
set( LINUX_APPLICATION_ID "${APPLICATION_REV_DOMAIN}.${LINUX_PACKAGE_SHORTNAME}")
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#cmakedefine APPLICATION_VIRTUALFILE_SUFFIX "@APPLICATION_VIRTUALFILE_SUFFIX@"
|
||||
#cmakedefine APPLICATION_OCSP_STAPLING_ENABLED "@APPLICATION_OCSP_STAPLING_ENABLED@"
|
||||
#cmakedefine APPLICATION_FORBID_BAD_SSL "@APPLICATION_FORBID_BAD_SSL@"
|
||||
#cmakedefine APPLICATION_LOGIN_WITH_SYSTEM_USERNAME "@APPLICATION_LOGIN_WITH_SYSTEM_USERNAME@"
|
||||
#define APPLICATION_DOTVIRTUALFILE_SUFFIX "." APPLICATION_VIRTUALFILE_SUFFIX
|
||||
#cmakedefine01 ENFORCE_VIRTUAL_FILES_SYNC_FOLDER
|
||||
|
||||
|
|
|
@ -242,6 +242,11 @@ namespace Utility {
|
|||
*/
|
||||
OCSYNC_EXPORT bool isPathWindowsDrivePartitionRoot(const QString &path);
|
||||
|
||||
/**
|
||||
* @brief Retrieves current logged-in user name from the OS
|
||||
*/
|
||||
OCSYNC_EXPORT QString getCurrentUserName();
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
OCSYNC_EXPORT bool registryKeyExists(HKEY hRootKey, const QString &subKey);
|
||||
OCSYNC_EXPORT QVariant registryGetKeyValue(HKEY hRootKey, const QString &subKey, const QString &valueName);
|
||||
|
|
|
@ -136,4 +136,9 @@ static bool hasDarkSystray_private()
|
|||
return returnValue;
|
||||
}
|
||||
|
||||
QString Utility::getCurrentUserName()
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
} // namespace OCC
|
||||
|
|
|
@ -108,4 +108,9 @@ static inline bool hasDarkSystray_private()
|
|||
return true;
|
||||
}
|
||||
|
||||
QString Utility::getCurrentUserName()
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
} // namespace OCC
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include "utility.h"
|
||||
|
||||
#include <comdef.h>
|
||||
#include <Lmcons.h>
|
||||
#include <shlguid.h>
|
||||
#include <shlobj.h>
|
||||
#include <string>
|
||||
|
@ -380,6 +381,17 @@ QString Utility::formatWinError(long errorCode)
|
|||
return QStringLiteral("WindowsError: %1: %2").arg(QString::number(errorCode, 16), QString::fromWCharArray(_com_error(errorCode).ErrorMessage()));
|
||||
}
|
||||
|
||||
QString Utility::getCurrentUserName()
|
||||
{
|
||||
TCHAR username[UNLEN + 1] = {0};
|
||||
DWORD len = sizeof(username) / sizeof(TCHAR);
|
||||
|
||||
if (!GetUserName(username, &len)) {
|
||||
qCWarning(lcUtility) << "Could not retrieve Windows user name." << formatWinError(GetLastError());
|
||||
}
|
||||
|
||||
return QString::fromWCharArray(username);
|
||||
}
|
||||
|
||||
Utility::NtfsPermissionLookupRAII::NtfsPermissionLookupRAII()
|
||||
{
|
||||
|
|
|
@ -132,6 +132,16 @@ void Flow2Auth::fetchNewToken(const TokenAction action)
|
|||
|
||||
|
||||
_loginUrl = loginUrl;
|
||||
|
||||
if (Theme::instance()->loginWithSystemUserName()) {
|
||||
const auto userName = Utility::getCurrentUserName();
|
||||
if (!userName.isEmpty()) {
|
||||
auto query = QUrlQuery(_loginUrl);
|
||||
query.addQueryItem(QStringLiteral("user"), userName);
|
||||
_loginUrl.setQuery(query);
|
||||
}
|
||||
}
|
||||
|
||||
_pollToken = pollToken;
|
||||
_pollEndpoint = pollEndpoint;
|
||||
|
||||
|
|
|
@ -417,6 +417,15 @@ bool Theme::forbidBadSSL() const
|
|||
#endif
|
||||
}
|
||||
|
||||
bool Theme::loginWithSystemUserName() const
|
||||
{
|
||||
#ifdef APPLICATION_LOGIN_WITH_SYSTEM_USERNAME
|
||||
return true;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
QString Theme::forceConfigAuthType() const
|
||||
{
|
||||
return QString();
|
||||
|
|
|
@ -254,6 +254,13 @@ public:
|
|||
*/
|
||||
virtual bool forbidBadSSL() const;
|
||||
|
||||
/**
|
||||
* Use current logged in username from the system
|
||||
*
|
||||
* When true, the Web login form will be pre-filled with system user name
|
||||
*/
|
||||
bool loginWithSystemUserName() const;
|
||||
|
||||
/**
|
||||
* This is only usefull when previous version had a different overrideServerUrl
|
||||
* with a different auth type in that case You should then specify "http" or "shibboleth".
|
||||
|
|
Загрузка…
Ссылка в новой задаче