mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-01 09:47:22 +13:00
Allow access level selection for Box shareable link in the Box uploader settings.
This commit is contained in:
parent
ca4e1f0ce6
commit
0aae00c8a3
6 changed files with 100 additions and 4 deletions
|
@ -353,4 +353,14 @@ public enum YouTubeVideoPrivacy // Localized
|
||||||
Unlisted,
|
Unlisted,
|
||||||
Private
|
Private
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum BoxShareAccessLevel
|
||||||
|
{
|
||||||
|
[Description("Public - People with the link")]
|
||||||
|
Open,
|
||||||
|
[Description("Company - People in your company")]
|
||||||
|
Company,
|
||||||
|
[Description("Collaborators - Invited people only")]
|
||||||
|
Collaborators
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -50,7 +50,8 @@ public override GenericUploader CreateUploader(UploadersConfig config, TaskRefer
|
||||||
return new Box(config.BoxOAuth2Info)
|
return new Box(config.BoxOAuth2Info)
|
||||||
{
|
{
|
||||||
FolderID = config.BoxSelectedFolder.id,
|
FolderID = config.BoxSelectedFolder.id,
|
||||||
Share = config.BoxShare
|
Share = config.BoxShare,
|
||||||
|
ShareAccessLevel = config.BoxShareAccessLevel
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,12 +70,14 @@ public sealed class Box : FileUploader, IOAuth2
|
||||||
public OAuth2Info AuthInfo { get; set; }
|
public OAuth2Info AuthInfo { get; set; }
|
||||||
public string FolderID { get; set; }
|
public string FolderID { get; set; }
|
||||||
public bool Share { get; set; }
|
public bool Share { get; set; }
|
||||||
|
public BoxShareAccessLevel ShareAccessLevel { get; set; }
|
||||||
|
|
||||||
public Box(OAuth2Info oauth)
|
public Box(OAuth2Info oauth)
|
||||||
{
|
{
|
||||||
AuthInfo = oauth;
|
AuthInfo = oauth;
|
||||||
FolderID = "0";
|
FolderID = "0";
|
||||||
Share = true;
|
Share = true;
|
||||||
|
ShareAccessLevel = BoxShareAccessLevel.Open;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string GetAuthorizationURL()
|
public string GetAuthorizationURL()
|
||||||
|
@ -189,9 +192,9 @@ public BoxFileInfo GetFiles(string id)
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string CreateSharedLink(string id)
|
public string CreateSharedLink(string id, BoxShareAccessLevel accessLevel)
|
||||||
{
|
{
|
||||||
string response = SendRequest(HttpMethod.PUT, "https://api.box.com/2.0/files/" + id, "{\"shared_link\": {\"access\": \"open\"}}", headers: GetAuthHeaders());
|
string response = SendRequest(HttpMethod.PUT, "https://api.box.com/2.0/files/" + id, "{\"shared_link\": {\"access\": \"" + accessLevel.ToString().ToLower() +"\"}}", headers: GetAuthHeaders());
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(response))
|
if (!string.IsNullOrEmpty(response))
|
||||||
{
|
{
|
||||||
|
@ -234,7 +237,7 @@ public override UploadResult Upload(Stream stream, string fileName)
|
||||||
if (Share)
|
if (Share)
|
||||||
{
|
{
|
||||||
AllowReportProgress = false;
|
AllowReportProgress = false;
|
||||||
result.URL = CreateSharedLink(fileEntry.id);
|
result.URL = CreateSharedLink(fileEntry.id, ShareAccessLevel);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -206,6 +206,8 @@ private void InitializeComponent()
|
||||||
this.tpBox = new System.Windows.Forms.TabPage();
|
this.tpBox = new System.Windows.Forms.TabPage();
|
||||||
this.lblBoxFolderTip = new System.Windows.Forms.Label();
|
this.lblBoxFolderTip = new System.Windows.Forms.Label();
|
||||||
this.cbBoxShare = new System.Windows.Forms.CheckBox();
|
this.cbBoxShare = new System.Windows.Forms.CheckBox();
|
||||||
|
this.cbBoxShareAccessLevel = new System.Windows.Forms.ComboBox();
|
||||||
|
this.lblBoxShareAccessLevel = new System.Windows.Forms.Label();
|
||||||
this.lvBoxFolders = new ShareX.HelpersLib.MyListView();
|
this.lvBoxFolders = new ShareX.HelpersLib.MyListView();
|
||||||
this.chBoxFoldersName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
this.chBoxFoldersName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||||
this.lblBoxFolderID = new System.Windows.Forms.Label();
|
this.lblBoxFolderID = new System.Windows.Forms.Label();
|
||||||
|
@ -1822,6 +1824,8 @@ private void InitializeComponent()
|
||||||
this.tpBox.BackColor = System.Drawing.SystemColors.Window;
|
this.tpBox.BackColor = System.Drawing.SystemColors.Window;
|
||||||
this.tpBox.Controls.Add(this.lblBoxFolderTip);
|
this.tpBox.Controls.Add(this.lblBoxFolderTip);
|
||||||
this.tpBox.Controls.Add(this.cbBoxShare);
|
this.tpBox.Controls.Add(this.cbBoxShare);
|
||||||
|
this.tpBox.Controls.Add(this.cbBoxShareAccessLevel);
|
||||||
|
this.tpBox.Controls.Add(this.lblBoxShareAccessLevel);
|
||||||
this.tpBox.Controls.Add(this.lvBoxFolders);
|
this.tpBox.Controls.Add(this.lvBoxFolders);
|
||||||
this.tpBox.Controls.Add(this.lblBoxFolderID);
|
this.tpBox.Controls.Add(this.lblBoxFolderID);
|
||||||
this.tpBox.Controls.Add(this.btnBoxRefreshFolders);
|
this.tpBox.Controls.Add(this.btnBoxRefreshFolders);
|
||||||
|
@ -1841,6 +1845,19 @@ private void InitializeComponent()
|
||||||
this.cbBoxShare.UseVisualStyleBackColor = true;
|
this.cbBoxShare.UseVisualStyleBackColor = true;
|
||||||
this.cbBoxShare.CheckedChanged += new System.EventHandler(this.cbBoxShare_CheckedChanged);
|
this.cbBoxShare.CheckedChanged += new System.EventHandler(this.cbBoxShare_CheckedChanged);
|
||||||
//
|
//
|
||||||
|
// cbBoxShareAccessLevel
|
||||||
|
//
|
||||||
|
this.cbBoxShareAccessLevel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.cbBoxShareAccessLevel.FormattingEnabled = true;
|
||||||
|
resources.ApplyResources(this.cbBoxShareAccessLevel, "cbBoxShareAccessLevel");
|
||||||
|
this.cbBoxShareAccessLevel.Name = "cbBoxShareAccessLevel";
|
||||||
|
this.cbBoxShareAccessLevel.SelectedIndexChanged += new System.EventHandler(this.cbBoxShareAccessLevel_SelectedIndexChanged);
|
||||||
|
//
|
||||||
|
// lblBoxShareAccessLevel
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.lblBoxShareAccessLevel, "lblBoxShareAccessLevel");
|
||||||
|
this.lblBoxShareAccessLevel.Name = "lblBoxShareAccessLevel";
|
||||||
|
//
|
||||||
// lvBoxFolders
|
// lvBoxFolders
|
||||||
//
|
//
|
||||||
this.lvBoxFolders.AutoFillColumn = true;
|
this.lvBoxFolders.AutoFillColumn = true;
|
||||||
|
@ -5126,6 +5143,8 @@ private void InitializeComponent()
|
||||||
private OAuthControl oauth2GoogleDrive;
|
private OAuthControl oauth2GoogleDrive;
|
||||||
private System.Windows.Forms.Label lblBoxFolderTip;
|
private System.Windows.Forms.Label lblBoxFolderTip;
|
||||||
private System.Windows.Forms.CheckBox cbBoxShare;
|
private System.Windows.Forms.CheckBox cbBoxShare;
|
||||||
|
private System.Windows.Forms.ComboBox cbBoxShareAccessLevel;
|
||||||
|
private System.Windows.Forms.Label lblBoxShareAccessLevel;
|
||||||
private ShareX.HelpersLib.MyListView lvBoxFolders;
|
private ShareX.HelpersLib.MyListView lvBoxFolders;
|
||||||
private System.Windows.Forms.ColumnHeader chBoxFoldersName;
|
private System.Windows.Forms.ColumnHeader chBoxFoldersName;
|
||||||
private System.Windows.Forms.Label lblBoxFolderID;
|
private System.Windows.Forms.Label lblBoxFolderID;
|
||||||
|
|
|
@ -415,6 +415,11 @@ private void LoadFileUploaderSettings()
|
||||||
}
|
}
|
||||||
|
|
||||||
cbBoxShare.Checked = Config.BoxShare;
|
cbBoxShare.Checked = Config.BoxShare;
|
||||||
|
cbBoxShareAccessLevel.Items.Clear();
|
||||||
|
cbBoxShareAccessLevel.Items.AddRange(Helpers.GetEnumDescriptions<BoxShareAccessLevel>());
|
||||||
|
cbBoxShareAccessLevel.SelectedIndex = (int)Config.BoxShareAccessLevel;
|
||||||
|
cbBoxShareAccessLevel.Enabled = Config.BoxShare;
|
||||||
|
lblBoxShareAccessLevel.Enabled = Config.BoxShare;
|
||||||
lblBoxFolderID.Text = Resources.UploadersConfigForm_LoadSettings_Selected_folder_ + " " + Config.BoxSelectedFolder.name;
|
lblBoxFolderID.Text = Resources.UploadersConfigForm_LoadSettings_Selected_folder_ + " " + Config.BoxSelectedFolder.name;
|
||||||
|
|
||||||
#endregion Box
|
#endregion Box
|
||||||
|
@ -1857,6 +1862,13 @@ private void oauth2Box_ClearButtonClicked()
|
||||||
private void cbBoxShare_CheckedChanged(object sender, EventArgs e)
|
private void cbBoxShare_CheckedChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Config.BoxShare = cbBoxShare.Checked;
|
Config.BoxShare = cbBoxShare.Checked;
|
||||||
|
cbBoxShareAccessLevel.Enabled = Config.BoxShare;
|
||||||
|
lblBoxShareAccessLevel.Enabled = Config.BoxShare;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cbBoxShareAccessLevel_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Config.BoxShareAccessLevel = (BoxShareAccessLevel)cbBoxShareAccessLevel.SelectedIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void btnBoxRefreshFolders_Click(object sender, EventArgs e)
|
private void btnBoxRefreshFolders_Click(object sender, EventArgs e)
|
||||||
|
|
|
@ -4121,6 +4121,57 @@ when you made the application key.</value>
|
||||||
<data name=">>cbBoxShare.ZOrder" xml:space="preserve">
|
<data name=">>cbBoxShare.ZOrder" xml:space="preserve">
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="cbBoxShareAccessLevel.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>21, 308</value>
|
||||||
|
</data>
|
||||||
|
<data name="cbBoxShareAccessLevel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>5, 5, 5, 5</value>
|
||||||
|
</data>
|
||||||
|
<data name="cbBoxShareAccessLevel.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>250, 24</value>
|
||||||
|
</data>
|
||||||
|
<data name="cbBoxShareAccessLevel.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cbBoxShareAccessLevel.Name" xml:space="preserve">
|
||||||
|
<value>cbBoxShareAccessLevel</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cbBoxShareAccessLevel.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cbBoxShareAccessLevel.Parent" xml:space="preserve">
|
||||||
|
<value>tpBox</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cbBoxShareAccessLevel.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblBoxShareAccessLevel.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>18, 290</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblBoxShareAccessLevel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>4, 0, 4, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblBoxShareAccessLevel.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>167, 19</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblBoxShareAccessLevel.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblBoxShareAccessLevel.Text" xml:space="preserve">
|
||||||
|
<value>Shared link access level:</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>lblBoxShareAccessLevel.Name" xml:space="preserve">
|
||||||
|
<value>lblBoxShareAccessLevel</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>lblBoxShareAccessLevel.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>lblBoxShareAccessLevel.Parent" xml:space="preserve">
|
||||||
|
<value>tpBox</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>lblBoxShareAccessLevel.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
<data name="chBoxFoldersName.Text" xml:space="preserve">
|
<data name="chBoxFoldersName.Text" xml:space="preserve">
|
||||||
<value>Folder name</value>
|
<value>Folder name</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -217,6 +217,7 @@ public class UploadersConfig : SettingsBase<UploadersConfig>
|
||||||
public OAuth2Info BoxOAuth2Info = null;
|
public OAuth2Info BoxOAuth2Info = null;
|
||||||
public BoxFileEntry BoxSelectedFolder = Box.RootFolder;
|
public BoxFileEntry BoxSelectedFolder = Box.RootFolder;
|
||||||
public bool BoxShare = true;
|
public bool BoxShare = true;
|
||||||
|
public BoxShareAccessLevel BoxShareAccessLevel = BoxShareAccessLevel.Open;
|
||||||
|
|
||||||
#endregion Box
|
#endregion Box
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue