npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

simple-ngx-policy

v0.0.16

Published

Simple Angular 2+ statement & resource management library

Downloads

2

Readme

simple-ngx-policy - Simple Angular 2+ statement & resource management library

npm version, Build Status Coverage Status dependency Status devDependency Status Greenkeeper Badge

Demo

View all the directives in action at https://jgololicic.github.io/simple-ngx-policy

Dependencies

  • Angular (requires Angular 2 or higher, tested with 2.0.0)

Installation

Install above dependencies via npm.

Now install simple-ngx-policy via:

npm install --save simple-ngx-policy

SystemJS

Note:If you are using SystemJS, you should adjust your configuration to point to the UMD bundle. In your systemjs config file, map needs to tell the System loader where to look for simple-ngx-policy:

map: {
  'simple-ngx-policy': 'node_modules/simple-ngx-policy/bundles/simple-ngx-policy.umd.js',
}

Once installed you need to import the main module:

import { SnpModule } from 'simple-ngx-policy';

The only remaining part is to list the imported module in your application module. The exact method will be slightly different for the root (top-level) module for which you should end up with the code similar to (notice SnpModule .forRoot()):

import { SnpModule } from 'simple-ngx-policy';

@NgModule({
  declarations: [AppComponent, ...],
  imports: [SnpModule.forRoot(), ...],  
  bootstrap: [AppComponent]
})
export class AppModule {
}

Other modules in your application can simply import SnpModule:

import { SnpModule } from 'simple-ngx-policy';

@NgModule({
  declarations: [OtherComponent, ...],
  imports: [SnpModule, ...], 
})
export class OtherModule {
}

Behaviour (output of tests):

  Resource.class
    ✔ parses default parameter into namespace/module/resource
    ✔ parses provided string parameter into namespace/module/resource
    ✔ parses only first three chunks of provided resource string into namespace/module/resource
    ✔ parses provided "namespace:module:" string parameter into namespace/module/resource
    ✔ parses provided "namespace::" string parameter into namespace/module/resource
    ✔ parses provided "::" string parameter into namespace/module/resource
    ✔ parses provided "::employees" string parameter into namespace/module/resource
    ✔ parses provided ":human-resources:employees" string parameter into namespace/module/resource
  SnpStatement.class
    ✔ parses default parameter into module/component/action/ statement members
    ✔ parses provided parameter into module/component/action/ statement members
    ✔ parses provided "one chunk string" parameter into module/component/action/ statement members
    ✔ parses provided "two chunk string" parameter into module/component/action/ statement members
    ✔ parses provided "three chunk string" parameter into module/component/action/ statement members
    ✔ parses provided "one chunk and a colon string" parameter into module/component/action/ statement members
    ✔ parses provided "one chunk and two colons string" parameter into module/component/action/ statement members
    ✔ parses provided "three chunk and two colons string" parameter into module/component/action/ statement members
    ✔ parses provided "two colons and a chunk string" parameter into module/component/action/ statement members
    ✔ parses provided "one colon and two chunks string" parameter into module/component/action/ statement members
  SnpPolicyService
    Has 'providePolicy' static method which
      ✔ Provides 'empty' SnpPolicy when called with no parameters
      ✔ Uses default config 'defaultPolicyConstraint' when no constraint is specified in SnpModule.forRoot(config: SnpConfig)
      ✔ Accepts constraint and provides a policy with given constraint
      ✔ Provides SnpStatement and SnpResource from parameter strings
    Has 'canAccess' static method which compares SnpPolicy against a list of SnpPolicies[]
      When SnpModules' 'defaultPolicyConstraint' is configured to 'ALLOW' (default)
        ✔ Returns TRUE for 'empty' policy and 'empty list'
        ✔ Returns FALSE for 'empty' policy and 'empty list' when policies' constraint is DISALLOW
        ✔ Returns TRUE for 'empty' policy and 'empty list' when policies' constraint is ALLOWED
        ✔ Returns TRUE for empty 'policy' when list is provided (not empty)
        ✔ Returns FALSE for empty 'policy' with constraints set to DISALLOW when list is provided (not empty)
        ✔ Returns TRUE for empty 'policy' with constraints set to ALLOWED when list is provided (not empty)
        ✔ Returns TRUE if the policy is not in the list
        ✔ Returns FALSE if the policy with constraint DISALLOW is not in the list
        ✔ Returns TRUE if the policy's statement is on the list AND policy's resources match
        ✔ Returns TRUE if the policy's statement is on the list AND policy's resources match AND policy's constraint is DISALLOW
        ✔ Returns TRUE if the policy's statement is on the list AND policy's resources match AND policy's constraint is ALLOWED
        ✔ Returns FALSE if the policy's statement is on the list BUT resources does not match
        ✔ Returns FALSE if the policy's statement is on the list BUT resources does not match and policy's constraint is DISALLOW
        ✔ Returns FALSE if the policy's statement is on the list BUT resources does not match and policy's constraint is ALLOWED
      When SnpModule 'defaultPolicyConstraint' is configured to 'DISALLOW' (provided in SnpModule.forRoot(config: SnpConfig))
        ✔ Returns FALSE for 'empty' policy when list is not provided
        ✔ Returns TRUE for 'empty' policy with constraints ALLOW when list is not provided
        ✔ Returns FALSE for empty policy when list is provided (not empty)
        ✔ Returns TRUE for empty with constraint ALLOWED policy when list is provided (not empty)
        ✔ Returns FALSE if policy is not in the list
        ✔ Returns TRUE if policy with constraint ALLOW is not in the list
        ✔ Returns TRUE if policy's statement is on the list AND policy's resources match
        ✔ Returns TRUE if policy's statement is on the list AND policy's resources match AND policy's constraints is DISALLOW 
        ✔ Returns FALSE if the policy's statement is on the list BUT resources does not match
        ✔ Returns FALSE if the policy's statement is on the list BUT resources does not match AND policy's constraint is ALLOWED
  SnpPolicy.module
    ✔ has default configuration

License

Copyright (c) 2017 jgololicic. Licensed under the MIT License (MIT)