summaryrefslogtreecommitdiff
path: root/cli/permissions.rs
AgeCommit message (Collapse)Author
2020-12-13refactor: deno_runtime crate (#8640)Bartek Iwańczuk
This commit moves Deno JS runtime, ops, permissions and inspector implementation to new "deno_runtime" crate located in "runtime/" directory. Details in "runtime/README.md". Co-authored-by: Ryan Dahl <ry@tinyclouds.org>
2020-11-16refactor(cli): rename fs module to fs_util (#8380)Bartek Iwańczuk
This commit renames "fs" module in "cli/" to "fs_util". This is purely cosmetic change; there were a few places which aliased "crate::fs" to "deno_fs" which was very confusing with "fs" module in ops.
2020-11-09refactor(cli): remove unnecessary format! calls (#8315)KNnut
2020-10-31refactor(cli/permissions): Cleanup Flags to Permissions conversion (#8213)Nayeem Rahman
2020-10-27fix(cli): restore permission check on workers (#8123)Kitson Kelly
Fixes #8120
2020-10-13refactor(cli): rename GlobalState to ProgramState (#7914)Bartek Iwańczuk
2020-10-12chore(cli): remove dead code (#7941)Kitson Kelly
2020-10-08Fix typos (#7882)crowlKats
2020-09-21refactor: use futures and serde_json from deno_core (#7614)Bartek Iwańczuk
2020-09-20refactor: remove CliState, use OpState, add CliModuleLoader (#7588)Bartek Iwańczuk
- remove "CliState.workers" and "CliState.next_worker_id", instead store them on "OpState" using type aliases. - remove "CliState.global_timer" and "CliState.start_time", instead store them on "OpState" using type aliases. - remove "CliState.is_internal", instead pass it to Worker::new - move "CliState::permissions" to "OpState" - move "CliState::main_module" to "OpState" - move "CliState::global_state" to "OpState" - move "CliState::check_unstable()" to "GlobalState" - change "cli_state()" to "global_state()" - change "deno_core::ModuleLoader" trait to pass "OpState" to callbacks - rename "CliState" to "CliModuleLoader"
2020-09-16Re-export deno_core::url (#7525)Ryan Dahl
Also re-exports deno_core::futures and deno_core::serde_json but these are not yet used in the CLI.
2020-09-15refactor: use the 'anyhow' crate instead of 'ErrBox' (#7476)Bert Belder
2020-09-06Move JSON ops to deno_core (#7336)Bert Belder
2020-08-26refactor: remove OpError, use ErrBox everywhere (#7187)Bert Belder
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2020-08-18refactor: permissions (#7074)Nayeem Rahman
2020-08-10Remove unnecessary drop calls (#7007)Ryan Dahl
2020-08-07Encode op errors as strings instead of numbers (#6977)Bartek Iwańczuk
2020-07-02fix: net permissions didn't account for default ports (#6606)Jacob Gee-Clarke
2020-06-29refactor: util functions take slices instead of heap values (#6547)Valentin Anger
2020-06-26fix(cli/permissions): panic on hostless URLs (#6500)Maayan Hanin
2020-06-13Move to allowlist and blocklist (#6282)Luca Casonato
2020-06-06Add "fork" method on DenoPermissions, PermissionState (#5693)Akshat Agarwal
2020-05-29fix(cli/permissions): Fix CWD and exec path leaks (#5642)Nayeem Rahman
2020-05-29feat(cli): deserialize Permissions from JSON (#5779)Akshat Agarwal
2020-05-11refactor: check permissions in SourceFileFetcher (#5011)Bartek Iwańczuk
This PR hot-fixes permission escapes in dynamic imports, workers and runtime compiler APIs. "permissions" parameter was added to public APIs of SourceFileFetcher and appropriate permission checks are performed during loading of local and remote files.
2020-05-04Rename DenoPermissions, add abs path asserts (#5076)Ryan Dahl
2020-04-03clippy (#4618)Kitson Kelly
2020-03-24 remove extra dot in Permission request output (#4471)Kevin (Kun) "Kassimo" Qian
2020-03-10Add global "quiet" flag (#4135)Florian Häglsperger
2020-02-26DenoFlags -> Flags (#4136)Ryan Dahl
2020-02-24Remove ansi_term dependency (#4116)João Souto
2020-02-24Revert "Remove ansi_term dependency"Ryan Dahl
Broke colors https://github.com/denoland/deno/issues/4112#issuecomment-590545385 This reverts commit c250778704a4e0065e54e6bf6ca6c39d556a6d8d.
2020-02-24Remove ansi_term dependency (#4106)João Souto
2020-02-24fix: add mutex guard for permission_prompt tests (#4105)Yoshiya Hinosawa
This PR introduces the mutex guard for the test cases which depends on the permission prompt mocking utility. permission_request test cases depend on the mocked (dummy) value of the permission_prompt result. The value is stored at static STUB_PROMPT_VALUE: AtomicBool and these test cases share this value. So we should lock at the start of these test cases. Before this change cargo test permission failed 6 times out of 20. After this change, 0 times out of 20 (on my mac).
2020-02-23refactor: use OpError instead of ErrBox for errors in ops (#4058)Bartek Iwańczuk
To better reflect changes in error types in JS from #3662 this PR changes default error type used in ops from "ErrBox" to "OpError". "OpError" is a type that can be sent over to JSON; it has all information needed to construct error in JavaScript. That made "GetErrorKind" trait useless and so it was removed altogether. To provide compatibility with previous use of "ErrBox" an implementation of "From<ErrBox> for OpError" was added, however, it is an escape hatch and ops implementors should strive to use "OpError" directly.
2020-02-23fetch: proper error for unsupported protocol (#4085)Kevin (Kun) "Kassimo" Qian
2020-02-11refactor: Use PathBuf for paths in flag parsing and whitelists (#3955)Nayeem Rahman
* Use PathBuf for DenoSubcommand::Bundle's out_file * Use PathBuf for DenoSubcommand::Format's files * Use PathBuf for DenoSubcommand::Install's dir * Use PathBuf for read/write whitelists
2020-01-27dx: descriptive permission errors (#3808)Bartek Iwańczuk
Before: ``` ▶ target/debug/deno https://deno.land/std/examples/echo_server.ts error: Uncaught PermissionDenied: run again with the --allow-net flag ► $deno$/dispatch_json.ts:40:11 at DenoError ($deno$/errors.ts:20:5) at unwrapResponse ($deno$/dispatch_json.ts:40:11) at sendSync ($deno$/dispatch_json.ts:67:10) at listen ($deno$/net.ts:170:15) at https://deno.land/std/examples/echo_server.ts:4:23 ``` ``` ▶ target/debug/deno --allow-read=/usr https://deno.land/std/examples/cat.ts /etc/passwd error: Uncaught PermissionDenied: run again with the --allow-read flag ► $deno$/dispatch_json.ts:40:11 at DenoError ($deno$/errors.ts:20:5) at unwrapResponse ($deno$/dispatch_json.ts:40:11) at sendAsync ($deno$/dispatch_json.ts:91:10) ``` After: ``` ▶ target/debug/deno https://deno.land/std/examples/echo_server.ts error: Uncaught PermissionDenied: network access to "0.0.0.0:8080", run again with the --allow-net flag ► $deno$/dispatch_json.ts:40:11 at DenoError ($deno$/errors.ts:20:5) at unwrapResponse ($deno$/dispatch_json.ts:40:11) at sendSync ($deno$/dispatch_json.ts:67:10) at listen ($deno$/net.ts:170:15) at https://deno.land/std/examples/echo_server.ts:4:23 ``` ``` ▶ target/debug/deno --allow-read=/usr https://deno.land/std/examples/cat.ts /etc/passwd error: Uncaught PermissionDenied: read access to "/etc/passwd", run again with the --allow-read flag ► $deno$/dispatch_json.ts:40:11 at DenoError ($deno$/errors.ts:20:5) at unwrapResponse ($deno$/dispatch_json.ts:40:11) at sendAsync ($deno$/dispatch_json.ts:91:10) ```
2020-01-20refactor: reduce number of ErrorKind variants (#3662)Bartek Iwańczuk
2020-01-20refactor: Improve path handling in permission checks (#3714)Nayeem Rahman
2020-01-05Rename crates: 'deno' to 'deno_core' and 'deno_cli' to 'deno' (#3600)Ry Dahl
2020-01-02Happy new year! (#3578)Ry Dahl
2019-12-23Upgrades rust to 1.40.0 (#3542)Axetroy
2019-12-05feat: first pass at native plugins (#3372)Andy Finch
2019-12-03fix some typos in permissions (#3436)Andy Finch
2019-11-24refactor: Elevate DenoPermissions lock to top level (#3398)Kevin (Kun) "Kassimo" Qian
2019-11-11Add permissions.request (#3296)Yoshiya Hinosawa
2019-11-04Refactor Worker and ThreadSafeState (#3242)Bartek Iwańczuk
* Split ThreadSafeState into State and GlobalState. State is a "local" state belonging to "Worker" while "GlobalState" is state shared by whole program. * Update "Worker" and ops to use "GlobalState" where applicable * Move and refactor "WorkerChannels" resource
2019-10-27Use web standard Permissions API (#3200)Yoshiya Hinosawa
2019-10-23refactor DenoPermissions.check_net & resolve_addr (#3182)EnokMan