Merge
This commit is contained in:
commit
232895f621
42 changed files with 2627 additions and 126 deletions
|
@ -4543,6 +4543,69 @@ namespace WebsitePanel.EnterpriseServer
|
|||
);
|
||||
}
|
||||
|
||||
public static void DeleteAllEnterpriseFolderOwaUsers(int itemId, int folderId)
|
||||
{
|
||||
SqlHelper.ExecuteNonQuery(
|
||||
ConnectionString,
|
||||
CommandType.StoredProcedure,
|
||||
"DeleteAllEnterpriseFolderOwaUsers",
|
||||
new SqlParameter("@ItemID", itemId),
|
||||
new SqlParameter("@FolderID", folderId)
|
||||
);
|
||||
}
|
||||
|
||||
public static int AddEnterpriseFolderOwaUser(int itemId, int folderId, int accountId)
|
||||
{
|
||||
SqlParameter id = new SqlParameter("@ESOwsaUserId", SqlDbType.Int);
|
||||
id.Direction = ParameterDirection.Output;
|
||||
|
||||
SqlHelper.ExecuteNonQuery(
|
||||
ConnectionString,
|
||||
CommandType.StoredProcedure,
|
||||
"AddEnterpriseFolderOwaUser",
|
||||
id,
|
||||
new SqlParameter("@ItemID", itemId),
|
||||
new SqlParameter("@FolderID", folderId),
|
||||
new SqlParameter("@AccountId", accountId)
|
||||
);
|
||||
|
||||
// read identity
|
||||
return Convert.ToInt32(id.Value);
|
||||
}
|
||||
|
||||
public static IDataReader GetEnterpriseFolderOwaUsers(int itemId, int folderId)
|
||||
{
|
||||
return SqlHelper.ExecuteReader(
|
||||
ConnectionString,
|
||||
CommandType.StoredProcedure,
|
||||
"GetEnterpriseFolderOwaUsers",
|
||||
new SqlParameter("@ItemID", itemId),
|
||||
new SqlParameter("@FolderID", folderId)
|
||||
);
|
||||
}
|
||||
|
||||
public static IDataReader GetEnterpriseFolderId(int itemId, string folderName)
|
||||
{
|
||||
return SqlHelper.ExecuteReader(
|
||||
ConnectionString,
|
||||
CommandType.StoredProcedure,
|
||||
"GetEnterpriseFolderId",
|
||||
new SqlParameter("@ItemID", itemId),
|
||||
new SqlParameter("@FolderName", folderName)
|
||||
);
|
||||
}
|
||||
|
||||
public static IDataReader GetUserEnterpriseFolderWithOwaEditPermission(int itemId, int accountId)
|
||||
{
|
||||
return SqlHelper.ExecuteReader(
|
||||
ConnectionString,
|
||||
CommandType.StoredProcedure,
|
||||
"GetUserEnterpriseFolderWithOwaEditPermission",
|
||||
new SqlParameter("@ItemID", itemId),
|
||||
new SqlParameter("@AccountID", accountId)
|
||||
);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Support Service Levels
|
||||
|
|
|
@ -152,6 +152,16 @@ namespace WebsitePanel.EnterpriseServer
|
|||
StartESBackgroundTaskInternal("SET_ENTERPRISE_FOLDER_SETTINGS", itemId, folder, permissions, directoyBrowsingEnabled, quota, quotaType);
|
||||
}
|
||||
|
||||
public static void SetESGeneralSettings(int itemId, SystemFile folder, bool directoyBrowsingEnabled, int quota, QuotaType quotaType)
|
||||
{
|
||||
SetESGeneralSettingsInternal("SET_ENTERPRISE_FOLDER_GENERAL_SETTINGS", itemId, folder, directoyBrowsingEnabled, quota, quotaType);
|
||||
}
|
||||
|
||||
public static void SetESFolderPermissionSettings(int itemId, SystemFile folder, ESPermission[] permissions)
|
||||
{
|
||||
SetESFolderPermissionSettingsInternal("SET_ENTERPRISE_FOLDER_GENERAL_SETTINGS", itemId, folder, permissions);
|
||||
}
|
||||
|
||||
public static int AddWebDavAccessToken(WebDavAccessToken accessToken)
|
||||
{
|
||||
return DataProvider.AddWebDavAccessToken(accessToken);
|
||||
|
@ -257,6 +267,69 @@ namespace WebsitePanel.EnterpriseServer
|
|||
return rootFolders;
|
||||
}
|
||||
|
||||
protected static void SetESGeneralSettingsInternal(string taskName, int itemId, SystemFile folder, bool directoyBrowsingEnabled, int quota, QuotaType quotaType)
|
||||
{
|
||||
// load organization
|
||||
var org = OrganizationController.GetOrganization(itemId);
|
||||
|
||||
try
|
||||
{
|
||||
TaskManager.StartTask("ENTERPRISE_STORAGE", taskName, org.PackageId);
|
||||
|
||||
EnterpriseStorageController.SetFRSMQuotaOnFolder(itemId, folder.Name, quota, quotaType);
|
||||
EnterpriseStorageController.SetDirectoryBrowseEnabled(itemId, folder.Url, directoyBrowsingEnabled);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// log error
|
||||
TaskManager.WriteError(ex, "Error executing enterprise storage background task");
|
||||
}
|
||||
finally
|
||||
{
|
||||
// complete task
|
||||
try
|
||||
{
|
||||
TaskManager.CompleteTask();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected static void SetESFolderPermissionSettingsInternal(string taskName, int itemId, SystemFile folder, ESPermission[] permissions)
|
||||
{
|
||||
// load organization
|
||||
var org = OrganizationController.GetOrganization(itemId);
|
||||
|
||||
new Thread(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
TaskManager.StartTask("ENTERPRISE_STORAGE", taskName, org.PackageId);
|
||||
|
||||
EnterpriseStorageController.SetFolderPermission(itemId, folder.Name, permissions);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// log error
|
||||
TaskManager.WriteError(ex, "Error executing enterprise storage background task");
|
||||
}
|
||||
finally
|
||||
{
|
||||
// complete task
|
||||
try
|
||||
{
|
||||
TaskManager.CompleteTask();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
}).Start();
|
||||
}
|
||||
|
||||
protected static void StartESBackgroundTaskInternal(string taskName, int itemId, SystemFile folder, ESPermission[] permissions, bool directoyBrowsingEnabled, int quota, QuotaType quotaType)
|
||||
{
|
||||
// load organization
|
||||
|
@ -1265,6 +1338,87 @@ namespace WebsitePanel.EnterpriseServer
|
|||
return null;
|
||||
}
|
||||
|
||||
public static OrganizationUser[] GetFolderOwaAccounts(int itemId, string folderName)
|
||||
{
|
||||
try
|
||||
{
|
||||
var folderId = GetFolderId(itemId, folderName);
|
||||
|
||||
var users = ObjectUtils.CreateListFromDataReader<OrganizationUser>(DataProvider.GetEnterpriseFolderOwaUsers(itemId, folderId));
|
||||
|
||||
return users.ToArray();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw ex;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetFolderOwaAccounts(int itemId, string folderName, OrganizationUser[] users)
|
||||
{
|
||||
try
|
||||
{
|
||||
var folderId = GetFolderId(itemId, folderName);
|
||||
|
||||
DataProvider.DeleteAllEnterpriseFolderOwaUsers(itemId, folderId);
|
||||
|
||||
foreach (var user in users)
|
||||
{
|
||||
DataProvider.AddEnterpriseFolderOwaUser(itemId, folderId, user.AccountId);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw ex;
|
||||
}
|
||||
}
|
||||
|
||||
protected static int GetFolderId(int itemId, string folderName)
|
||||
{
|
||||
try
|
||||
{
|
||||
GetFolder(itemId, folderName);
|
||||
|
||||
var dataReader = DataProvider.GetEnterpriseFolderId(itemId, folderName);
|
||||
|
||||
while (dataReader.Read())
|
||||
{
|
||||
return (int)dataReader[0];
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw ex;
|
||||
}
|
||||
}
|
||||
|
||||
public static List<string> GetUserEnterpriseFolderWithOwaEditPermission(int itemId, List<int> accountIds)
|
||||
{
|
||||
try
|
||||
{
|
||||
var result = new List<string>();
|
||||
|
||||
|
||||
foreach (var accountId in accountIds)
|
||||
{
|
||||
var reader = DataProvider.GetUserEnterpriseFolderWithOwaEditPermission(itemId, accountId);
|
||||
|
||||
while (reader.Read())
|
||||
{
|
||||
result.Add(Convert.ToString(reader["FolderName"]));
|
||||
}
|
||||
}
|
||||
|
||||
return result.Distinct().ToList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw ex;
|
||||
}
|
||||
}
|
||||
|
||||
#region WebDav portal
|
||||
|
||||
public static string GetWebDavPortalUserSettingsByAccountId(int accountId)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue