Git Product home page Git Product logo

raincatcher-user's Introduction

FeedHenry WFM user

A module for FeedHenry WFM that manages users, groups and memberships. It provides :

  • Backend services to handle CRUD operations for user, group and membership.
  • Frontend directives and services providing CRUD clients for user, group and membership.

Client-side usage

Client-side usage (via broswerify)

Setup

This module is packaged in a CommonJS format, exporting the name of the Angular namespace. The module can be included in an angular.js as follows:

angular.module('app', [
, require('fh-wfm-user')
...
])

Integration

Angular Services

This module provides 3 injectable CRUDL services :

  • userClient : to create, read, list, update and delete users.
  • groupClient : to create, read, list, update and delete groups.
  • membershipClient : to create, read, list, update and delete groups.

the userClient has these extra functions : auth, hasSession, clearSession, verify and getProfile

Example usage :

resolve: {
        worker: function($stateParams, userClient) {
          return userClient.read($stateParams.workerId);
        }

For a more complete example around CRUD operations, please check the demo portal app.

For a more complete example around user authentication operations, please check the this.

Directives
Name Attributes
worker-list workers, selectedModel
worker worker, group
worker-form value, group
group-list groups, selectedModel
group group, members
group-form value

Usage in an express backend and mbaas service

Setup express backend end

The server-side component of this WFM module exports a function that takes express and mediator instances as parameters, as in:

var express = require('express')
  , app = express()
  , mbaasExpress = mbaasApi.mbaasExpress()
  , mediator = require('fh-wfm-mediator/lib/mediator')
  ;
// Set authServiveGuid
var authServiceGuid = process.env.WFM_AUTH_GUID;

// configure the express app
...

// setup the wfm user router
require('fh-wfm-user/lib/router/cloud')(mediator, app, authServiceGuid);

Setup mbaas service

var express = require('express')
  , app = express()
  , mbaasExpress = mbaasApi.mbaasExpress()
  , mediator = require('fh-wfm-mediator/lib/mediator')
  ;
// Set authServiveGuid
var authServiceGuid = process.env.WFM_AUTH_GUID;

// configure the express app
...

// setup the wfm user router
require('fh-wfm-user/lib/router/mbaas')(mediator, app);

For a more complete example check here

Environment variables

The WFM_AUTH_POLICY_ID env var can be set in the WFM cloud APP to override the default wfm auth policy ID.

Exposed CRUD endpoints

Base url : /api/wfm/[group|user|membership|

resource method returns
/ GET array of users/groups/memberships
/:id GET user/group/membership
/:id PUT updated user/group/membership
/ POST created user/group/membership
/:id DELETE deleted user/group/membership

Exposed Auth endpoints

Base url : /api/wfm/user

resource method returns
/auth all {satus: 'ok', userId: username, sessionToken: sessiontoken, authResponse: profileData}
/verifysession all {isValid: true}
/revokesession all {}

message data structure example

  • user :
  {
    "id" : "156340",
    "username" : "trever",
    "name" : "Trever Smith",
    "position" : "Senior Truck Driver",
    "phone" : "(265) 725 8272",
    "email" : "[email protected]",
    "notes" : "Trever doesn't work during the weekends.",
    "avatar" : "https://s3.amazonaws.com/uifaces/faces/twitter/kolage/128.jpg",
    "banner" : "http://web18.streamhoster.com/pentonmedia/beefmagazine.com/TreverStockyards_38371.jpg"
  }
  • group :
  {
    id: 1010,
    name: 'Drivers',
    role: 'worker'
  }
  • membership :
  {
    id: 0,
    group: 1010,
    user: 156340
  }

raincatcher-user's People

Contributors

bleathem avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.