private void CreateTechnicPermissionInfo(Mcmod mod, PermissionPolicy pl, string customPermissionText, string modlink) { string ps = string.Format("{0}({1}) by {2}{3}At {4}{3}Permissions are {5}{3}", mod.Name, mod.Modid, GetAuthors(mod), Environment.NewLine, modlink, pl); if (!string.IsNullOrWhiteSpace(customPermissionText)) { ps += customPermissionText + Environment.NewLine; } File.AppendAllText(_technicPermissionList, ps + Environment.NewLine); }
private void CreateTechnicPermissionInfo(Mcmod mod, PermissionPolicy pl, string customPermissionText = null) { string modlink = _ftbPermsSqLhelper.GetPermissionFromModId(mod.Modid).modAuthors; while (string.IsNullOrWhiteSpace(modlink) || !Uri.IsWellFormedUriString(modlink, UriKind.Absolute)) { modlink = Prompt.ShowDialog("What is the link to " + mod.Name + "?", "Mod link", false, Prompt.ModsLeftString(_totalMods, _currentMod)); if (!Uri.IsWellFormedUriString(modlink, UriKind.Absolute)) { MessageBox.Show("Not a proper url"); } } CreateTechnicPermissionInfo(mod, pl, customPermissionText, modlink); }
public override async Task <AuthorizationPolicy> GetPolicyAsync(string policyName) { var policy = await base.GetPolicyAsync(policyName); if (policy == null && PermissionPolicy.TryGetPermission(policyName, out var permission)) { policy = new AuthorizationPolicyBuilder() .AddRequirements(new PermissionRequirement(permission)) .Build(); _options.AddPolicy(policyName, policy); } return(policy); }
public static void Configure(ConfigurationExpression configuration) { configuration.For <SecurityController>().DenyAnonymousAccess(); configuration.For <PermissionController>().DenyAnonymousAccess(); configuration.For <PasswordController>(x => x.ForgotPasswordAsync(null)).AllowAny(); configuration.For <PasswordController>(x => x.ResetPasswordAsync(null)).AllowAny(); configuration.For <PasswordController>(x => x.ChangeMyPasswordAsync(null)).AddPolicy(new PermissionPolicy(Permissions.userChangePassword)); configuration.For <PasswordController>(x => x.ChangeMyPasswordExpiredAsync(null)).AllowAny(); configuration.For <SettingsController>(t => t.Get(false)).DenyAnonymousAccess(); configuration.For <SettingsController>(t => t.GetLayoutSkin(false)).AllowAny(); configuration.For <SettingsController>(t => t.Set(null)).AddPolicy(new PermissionPolicy(Permissions.manageGeneralSettings)); configuration.For <LogController>().AllowAny(); configuration.For <LogController>(l => l.Get(null)).AllowAny(); configuration.For <RoleController>(t => t.List()).AddPolicy(new PermissionPolicy(Permissions.managerProfile)); var permissionPolicyUserList = new PermissionPolicy(Permissions.manageUser); permissionPolicyUserList.Add(Permissions.managerProfile); configuration.For <UserController>(x => x.GetList(null)).AddPolicy(permissionPolicyUserList); configuration.For <UserController>(x => x.GetItem(0)).AddPolicy(new PermissionPolicy(Permissions.manageUser)); configuration.For <UserController>(x => x.GetEmail(0)).DenyAuthenticatedAccess(); configuration.For <UserController>(x => x.GetMyAccount()).DenyAnonymousAccess(); configuration.For <UserController>(x => x.GetMyAvatar()).DenyAnonymousAccess(); configuration.For <UserController>(x => x.CreateAsync(null)).AddPolicy(new PermissionPolicy(Permissions.manageUser)); configuration.For <UserController>(x => x.UpdateAsync(null)).AddPolicy(new PermissionPolicy(Permissions.manageUser)); configuration.For <UserController>(x => x.UpdateMyAccountAsync(null)).DenyAnonymousAccess(); configuration.For <GroupController>(x => x.List()).AddPolicy(new PermissionPolicy(Permissions.managerProfile)); configuration.For <GroupController>(x => x.CreateAsync(null)).AddPolicy(new PermissionPolicy(Permissions.managerProfile)); configuration.For <GroupController>(x => x.UpdateAsync(null)).AddPolicy(new PermissionPolicy(Permissions.managerProfile)); configuration.For <GroupController>(x => x.UpdatePermissionsAsync(null)).AddPolicy(new PermissionPolicy(Permissions.managerProfile)); configuration.For <GroupController>(x => x.UpdateUsersAsync(null)).AddPolicy(new PermissionPolicy(Permissions.managerProfile)); configuration.For <APIClientController>(p => p.Delete(null)).AddPolicy(new PermissionPolicy(Permissions.manageApiClients)); configuration.For <APIClientController>(p => p.Post(null)).AddPolicy(new PermissionPolicy(Permissions.manageApiClients)); configuration.For <APIClientController>(p => p.Put(null)).AddPolicy(new PermissionPolicy(Permissions.manageApiClients)); configuration.For <APIClientController>(p => p.PutSecret(null)).AddPolicy(new PermissionPolicy(Permissions.manageApiClients)); configuration.For <APIClientController>(t => t.Get(null)).AddPolicy(new PermissionPolicy(Permissions.manageApiClients)); configuration.For <FilesController>(t => t.Index(null)).AllowAny(); }
public virtual IPermission SetPermissionPolicy(PermissionPolicy policy) { PolicyPermission operationPermission = new PolicyPermission(SecurityOperation.NoAccess); switch (policy) { case PermissionPolicy.AllowAllByDefault: operationPermission.Operations = SecurityOperation.FullAccess; break; case PermissionPolicy.ReadOnlyAllByDefault: operationPermission.Operations = SecurityOperation.Read; break; case PermissionPolicy.DenyAllByDefault: break; default: break; } permissions.Add(operationPermission); return(operationPermission); }
private Boolean AreModDone(Mcmod mod) { if (!IsFullyInformed(mod)) { return(false); } OwnPermissionsSqlHelper ownPermissionsSqlHelper = new OwnPermissionsSqlHelper(); bool b = ownPermissionsSqlHelper.DoUserHavePermission(mod.Modid).HasPermission; if (b) { return(true); } if (_solderHelper.CreateTechnicPack.Checked && _solderHelper.TechnicPermissions.Checked) { if (_ftbPermissionsSqlHelper.FindPermissionPolicy(mod.Modid, _solderHelper.TechnicPublicPermissions.Checked) != PermissionPolicy.Open) { return(false); } } if (!_solderHelper.CreateFTBPack.Checked) { return(true); } PermissionPolicy p = _ftbPermissionsSqlHelper.FindPermissionPolicy(mod.Modid, _solderHelper.PublicFTBPack.Checked); if (p == PermissionPolicy.Open || p == PermissionPolicy.FTB) { return(true); } else { return(false); } }
public void CreateFtbPackZip(Mcmod mod, string modfile) { if (mod.IsSkipping) { return; } string fileName = modfile.Substring(modfile.LastIndexOf(Globalfunctions.PathSeperator) + 1); if (IsWierdMod(fileName) == 0) { return; } string modMd5 = SqlHelper.CalculateMd5(modfile); if (!mod.IsIgnore) { if (!mod.UseShortName) { _modsSqLhelper.AddMod(mod.Name, mod.Modid, mod.Version, mod.Mcversion, fileName, modMd5, false); } if (true) { #region Permissions checking PermissionPolicy permLevel = _ftbPermsSqLhelper.FindPermissionPolicy(mod.Modid, PublicFTBPack.Checked); string overwritelink; OwnPermissions ownPermissions; switch (permLevel) { case PermissionPolicy.Open: break; case PermissionPolicy.Notify: ownPermissions = _ownPermsSqLhelper.DoUserHavePermission(mod.Modid); if (!ownPermissions.HasPermission) { overwritelink = Prompt.ShowDialog(string.Format("{0} requires that you notify the author of inclusion.{1}Please provide proof(an imgur link) that you have done this:{1}Enter \"skip\" to skip the mod.", mod.Name, Environment.NewLine), mod.Name).Replace(" ", ""); while (true) { if (overwritelink.ToLower().Equals("skip".ToLower())) { mod.IsSkipping = true; return; } if (Uri.IsWellFormedUriString(overwritelink, UriKind.Absolute)) { if (overwritelink.ToLower().Contains("imgur")) { _ownPermsSqLhelper.AddOwnModPerm(mod.Name, mod.Modid, overwritelink); //Get Author string a = _ftbPermsSqLhelper.GetPermissionFromModId(mod.Modid).modAuthors; CreateFtbPermissionInfo(mod.Name, mod.Modid, a, overwritelink); break; } MessageBox.Show("Not an imgur link"); } else { MessageBox.Show("Invalid url"); } overwritelink = Prompt.ShowDialog(string.Format("{0} requires that you notify the author of inclusion.{1}Please provide proof(an imgur link) that you have done this:{1}Enter \"skip\" to skip the mod.", mod.Name, Environment.NewLine), mod.Name, true, Prompt.ModsLeftString(_totalMods, _currentMod)).Replace(" ", ""); } } else { //Get Author string a = _ftbPermsSqLhelper.GetPermissionFromModId(mod.Modid).modAuthors; CreateFtbPermissionInfo(mod.Name, mod.Modid, a, ownPermissions.PermissionLink); } break; case PermissionPolicy.FTB: break; case PermissionPolicy.Request: ownPermissions = _ownPermsSqLhelper.DoUserHavePermission(mod.Modid); if (!ownPermissions.HasPermission) { overwritelink = Prompt.ShowDialog(string.Format("This mod requires that you request permissions from the Mod Author of {0}{1}Please provide proof(an imgur link) that you have this permission:{1}Enter \"skip\" to skip the mod.", mod.Name, Environment.NewLine), mod.Name, true, Prompt.ModsLeftString(_totalMods, _currentMod)).Replace(" ", ""); while (true) { if (overwritelink.ToLower().Equals("skip".ToLower())) { mod.IsSkipping = true; return; } if (Uri.IsWellFormedUriString(overwritelink, UriKind.Absolute)) { if (overwritelink.ToLower().Contains("imgur")) { _ownPermsSqLhelper.AddOwnModPerm(mod.Name, mod.Modid, overwritelink); //Get Author string a = _ftbPermsSqLhelper.GetPermissionFromModId(mod.Modid).modAuthors; CreateFtbPermissionInfo(mod.Name, mod.Modid, a, overwritelink); break; } MessageBox.Show("Not an imgur link"); } else { MessageBox.Show("Invalid url"); } overwritelink = Prompt.ShowDialog(string.Format("This mod requires that you request permissions from the Mod Author of {0}{1}Please provide proof(an imgur link) that you have this permission:{1}Enter \"skip\" to skip the mod.", mod.Name, Environment.NewLine), mod.Name, true, Prompt.ModsLeftString(_totalMods, _currentMod)).Replace(" ", ""); } } else { //Get Author string a = _ftbPermsSqLhelper.GetPermissionFromModId(mod.Modid).modAuthors; CreateFtbPermissionInfo(mod.Name, mod.Modid, a, ownPermissions.PermissionLink); } break; case PermissionPolicy.Closed: ownPermissions = _ownPermsSqLhelper.DoUserHavePermission(mod.Modid); if (!ownPermissions.HasPermission) { overwritelink = Prompt.ShowDialog(string.Format("The FTB permissionsheet states that permissions for {0} is closed.{1}Please provide proof(an imgur link) that this is not the case:{1}Enter \"skip\" to skip the mod.", mod.Name, Environment.NewLine), mod.Name, true, Prompt.ModsLeftString(_totalMods, _currentMod)).Replace(" ", ""); while (true) { if (overwritelink.ToLower().Equals("skip".ToLower())) { mod.IsSkipping = true; return; } if (Uri.IsWellFormedUriString(overwritelink, UriKind.Absolute)) { if (overwritelink.ToLower().Contains("imgur")) { _ownPermsSqLhelper.AddOwnModPerm(mod.Name, mod.Modid, overwritelink); //Get Author string a = _ftbPermsSqLhelper.GetPermissionFromModId(mod.Modid).modAuthors; CreateFtbPermissionInfo(mod.Name, mod.Modid, a, overwritelink); break; } MessageBox.Show("Not an imgur link"); } else { MessageBox.Show("Invalid url"); } overwritelink = Prompt.ShowDialog(string.Format("The FTB permissionsheet states that permissions for {0} is closed.{1}Please provide proof(an imgur link) that this is not the case:{1}Enter \"skip\" to skip the mod.", mod.Name, Environment.NewLine), mod.Name, true, Prompt.ModsLeftString(_totalMods, _currentMod)).Replace(" ", ""); } } else { //Get Author string a = _ftbPermsSqLhelper.GetPermissionFromModId(mod.Modid).modAuthors; CreateFtbPermissionInfo(mod.Name, mod.Modid, a, ownPermissions.PermissionLink); } break; case PermissionPolicy.Unknown: ownPermissions = _ownPermsSqLhelper.DoUserHavePermission(mod.Modid); if (!ownPermissions.HasPermission) { overwritelink = Prompt.ShowDialog(string.Format("Permissions for {0} is unknown{1}Please provide proof(an imgur link) of permissions:{1}Enter \"skip\" to skip the mod.", mod.Name, Environment.NewLine), mod.Name, true, Prompt.ModsLeftString(_totalMods, _currentMod)).Replace(" ", ""); while (true) { if (overwritelink.ToLower().Equals("skip".ToLower())) { mod.IsSkipping = true; return; } if (Uri.IsWellFormedUriString(overwritelink, UriKind.Absolute)) { if (overwritelink.ToLower().Contains("imgur")) { break; } MessageBox.Show("Not an imgur link"); } else { MessageBox.Show("Invalid url"); } overwritelink = Prompt.ShowDialog(string.Format("Permissions for {0} is unknown{1}Please provide proof(an imgur link) of permissions:{1}Enter \"skip\" to skip the mod.", mod.Name, Environment.NewLine), mod.Name, true, Prompt.ModsLeftString(_totalMods, _currentMod)).Replace(" ", ""); } string modLink; while (true) { modLink = Prompt.ShowDialog(string.Format("Please provide a link to {0}:{1}Enter \"skip\" to skip the mod.", mod.Name, Environment.NewLine), mod.Name).Replace(" ", ""); if (modLink.ToLower().Equals("skip".ToLower())) { mod.IsSkipping = true; return; } if (Uri.IsWellFormedUriString(modLink, UriKind.Absolute)) { _ownPermsSqLhelper.AddOwnModPerm(mod.Name, mod.Modid, overwritelink, modLink); break; } MessageBox.Show("Invalid url"); } string a = GetAuthors(mod); CreateOwnPermissionInfo(mod.Name, mod.Modid, a, overwritelink, modLink); } else { string a = GetAuthors(mod); CreateOwnPermissionInfo(mod.Name, mod.Modid, a, ownPermissions.PermissionLink, ownPermissions.ModLink); } break; } #endregion } } if (string.IsNullOrWhiteSpace(_ftbModpackArchive)) { while (string.IsNullOrWhiteSpace(_modpackName)) { _modpackName = Prompt.ShowDialog("What is the Modpack Name?", "Modpack Name"); } while (string.IsNullOrWhiteSpace(_modpackVersion)) { _modpackVersion = Prompt.ShowDialog("What Version is the modpack?", "Modpack Version"); } if (string.IsNullOrWhiteSpace(_modpackArchive)) { _modpackArchive = Path.Combine(_outputDirectory, string.Format("{0}-{1}.zip", _modpackName, _modpackVersion)); _ftbModpackArchive = Path.Combine(_outputDirectory, _modpackName + "-" + _modpackVersion + "-FTB" + ".zip"); } } string tempModDirectory = Path.Combine(_outputDirectory, "minecraft", "mods"); Directory.CreateDirectory(tempModDirectory); string tempFile = Path.Combine(tempModDirectory, fileName); int index = tempFile.LastIndexOf(Globalfunctions.PathSeperator); string tempFileDirectory = tempFile.Remove(index); Directory.CreateDirectory(tempFileDirectory); File.Copy(modfile, tempFile, true); if (Globalfunctions.IsUnix()) { Environment.CurrentDirectory = _outputDirectory; _startInfo.FileName = "zip"; _startInfo.Arguments = string.Format("-r \"{0}\" \"{1}\"", _ftbModpackArchive, "minecraft"); } else { Environment.CurrentDirectory = _outputDirectory; _startInfo.Arguments = string.Format("a -y \"{0}\" \"{1}\"", _ftbModpackArchive, "minecraft"); } _process.StartInfo = _startInfo; _process.Start(); _process.WaitForExit(); Directory.Delete(tempModDirectory, true); if (mod.HasBeenWritenToModlist) { return; } File.AppendAllText(_modlistTextFile, mod.Name + Environment.NewLine); mod.HasBeenWritenToModlist = true; }
private void ShowPermissions() { textBoxTechnicLicenseLink.Text = String.Empty; textBoxTechnicModLink.Text = String.Empty; textBoxTechnicPermissionLink.Text = String.Empty; textBoxFTBLicenseLink.Text = String.Empty; textBoxFTBModLink.Text = String.Empty; textBoxFTBPermissionLink.Text = String.Empty; if (technicPermissions.Visible) { PermissionPolicy technicPermissionLevel = _ftbPermissionsSqlHelper.FindPermissionPolicy(textBoxModID.Text, _solderHelper.TechnicPublicPermissions.Checked); Debug.WriteLine(technicPermissionLevel); switch (technicPermissionLevel) { case PermissionPolicy.Open: permissionTechnicOpen.Checked = true; break; case PermissionPolicy.Notify: permissionTechnicNotify.Checked = true; break; case PermissionPolicy.FTB: permissionTechnicFTBExclusive.Checked = true; break; case PermissionPolicy.Request: permissionTechnicRequest.Checked = true; break; case PermissionPolicy.Closed: permissionTechnicClosed.Checked = true; break; case PermissionPolicy.Unknown: permissionTechnicUnknown.Checked = true; break; default: throw new ArgumentOutOfRangeException(); } } if (FTBPermissions.Visible) { PermissionPolicy ftbPermissionLevel = _ftbPermissionsSqlHelper.FindPermissionPolicy(textBoxModID.Text, _solderHelper.PublicFTBPack.Checked); Debug.WriteLine(ftbPermissionLevel); switch (ftbPermissionLevel) { case PermissionPolicy.Open: permissionFTBOpen.Checked = true; break; case PermissionPolicy.Notify: permissionFTBNotify.Checked = true; break; case PermissionPolicy.FTB: permissionFTBFTBExclusive.Checked = true; break; case PermissionPolicy.Request: permissionFTBRequest.Checked = true; break; case PermissionPolicy.Closed: permissionFTBClosed.Checked = true; break; case PermissionPolicy.Unknown: permssionFTBUnknown.Checked = true; break; default: throw new ArgumentOutOfRangeException(); } } Permission modlinkPerm = _ftbPermissionsSqlHelper.GetPermissionFromModId(textBoxModID.Text); if (modlinkPerm == null) { if (technicPermissions.Visible) { textBoxTechnicModLink.Text = String.Empty; } if (FTBPermissions.Visible) { textBoxFTBModLink.Text = String.Empty; } } else { if (technicPermissions.Visible) { textBoxTechnicModLink.Text = modlinkPerm.modLink; } if (FTBPermissions.Visible) { textBoxFTBModLink.Text = modlinkPerm.modLink; } } Permission licenseLinkPerm = _ftbPermissionsSqlHelper.GetPermissionFromModId(textBoxModID.Text); if (licenseLinkPerm == null) { if (technicPermissions.Visible) { textBoxTechnicLicenseLink.Text = String.Empty; } if (FTBPermissions.Visible) { textBoxFTBLicenseLink.Text = String.Empty; } } else { if (technicPermissions.Visible) { textBoxTechnicLicenseLink.Text = licenseLinkPerm.licenseLink; } if (FTBPermissions.Visible) { textBoxFTBLicenseLink.Text = licenseLinkPerm.licenseLink; } } OwnPermissionsSqlHelper ownPermissionsSqlHelper = new OwnPermissionsSqlHelper(); OwnPermissions permissions = ownPermissionsSqlHelper.DoUserHavePermission(textBoxModID.Text); if (!permissions.HasPermission) { textBoxTechnicPermissionLink.Text = String.Empty; textBoxFTBPermissionLink.Text = String.Empty; } else { if (!String.IsNullOrWhiteSpace(permissions.PermissionLink)) { textBoxTechnicPermissionLink.Text = permissions.PermissionLink; textBoxFTBPermissionLink.Text = permissions.PermissionLink; } if (!String.IsNullOrWhiteSpace(permissions.ModLink)) { textBoxTechnicModLink.Text = permissions.ModLink; textBoxFTBModLink.Text = permissions.ModLink; } if (!String.IsNullOrWhiteSpace(permissions.LicenseLink)) { textBoxTechnicLicenseLink.Text = permissions.LicenseLink; textBoxFTBLicenseLink.Text = permissions.LicenseLink; } } }