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,
|
||||
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)
|
||||
{
|
||||
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 string FolderID { get; set; }
|
||||
public bool Share { get; set; }
|
||||
public BoxShareAccessLevel ShareAccessLevel { get; set; }
|
||||
|
||||
public Box(OAuth2Info oauth)
|
||||
{
|
||||
AuthInfo = oauth;
|
||||
FolderID = "0";
|
||||
Share = true;
|
||||
ShareAccessLevel = BoxShareAccessLevel.Open;
|
||||
}
|
||||
|
||||
public string GetAuthorizationURL()
|
||||
|
@ -189,9 +192,9 @@ public BoxFileInfo GetFiles(string id)
|
|||
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))
|
||||
{
|
||||
|
@ -234,7 +237,7 @@ public override UploadResult Upload(Stream stream, string fileName)
|
|||
if (Share)
|
||||
{
|
||||
AllowReportProgress = false;
|
||||
result.URL = CreateSharedLink(fileEntry.id);
|
||||
result.URL = CreateSharedLink(fileEntry.id, ShareAccessLevel);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -206,6 +206,8 @@ private void InitializeComponent()
|
|||
this.tpBox = new System.Windows.Forms.TabPage();
|
||||
this.lblBoxFolderTip = new System.Windows.Forms.Label();
|
||||
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.chBoxFoldersName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.lblBoxFolderID = new System.Windows.Forms.Label();
|
||||
|
@ -1822,6 +1824,8 @@ private void InitializeComponent()
|
|||
this.tpBox.BackColor = System.Drawing.SystemColors.Window;
|
||||
this.tpBox.Controls.Add(this.lblBoxFolderTip);
|
||||
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.lblBoxFolderID);
|
||||
this.tpBox.Controls.Add(this.btnBoxRefreshFolders);
|
||||
|
@ -1841,6 +1845,19 @@ private void InitializeComponent()
|
|||
this.cbBoxShare.UseVisualStyleBackColor = true;
|
||||
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
|
||||
//
|
||||
this.lvBoxFolders.AutoFillColumn = true;
|
||||
|
@ -5126,6 +5143,8 @@ private void InitializeComponent()
|
|||
private OAuthControl oauth2GoogleDrive;
|
||||
private System.Windows.Forms.Label lblBoxFolderTip;
|
||||
private System.Windows.Forms.CheckBox cbBoxShare;
|
||||
private System.Windows.Forms.ComboBox cbBoxShareAccessLevel;
|
||||
private System.Windows.Forms.Label lblBoxShareAccessLevel;
|
||||
private ShareX.HelpersLib.MyListView lvBoxFolders;
|
||||
private System.Windows.Forms.ColumnHeader chBoxFoldersName;
|
||||
private System.Windows.Forms.Label lblBoxFolderID;
|
||||
|
|
|
@ -415,6 +415,11 @@ private void LoadFileUploaderSettings()
|
|||
}
|
||||
|
||||
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;
|
||||
|
||||
#endregion Box
|
||||
|
@ -1857,6 +1862,13 @@ private void oauth2Box_ClearButtonClicked()
|
|||
private void cbBoxShare_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
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)
|
||||
|
|
|
@ -4121,6 +4121,57 @@ when you made the application key.</value>
|
|||
<data name=">>cbBoxShare.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</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">
|
||||
<value>Folder name</value>
|
||||
</data>
|
||||
|
|
|
@ -217,6 +217,7 @@ public class UploadersConfig : SettingsBase<UploadersConfig>
|
|||
public OAuth2Info BoxOAuth2Info = null;
|
||||
public BoxFileEntry BoxSelectedFolder = Box.RootFolder;
|
||||
public bool BoxShare = true;
|
||||
public BoxShareAccessLevel BoxShareAccessLevel = BoxShareAccessLevel.Open;
|
||||
|
||||
#endregion Box
|
||||
|
||||
|
|
Loading…
Reference in a new issue