Sha256: e281719244213a68799a19f91c0d8ed72fda922a5bb6dfd76a2b9a960d77d64b

Contents?: true

Size: 841 Bytes

Versions: 1

Compression:

Stored size: 841 Bytes

Contents

calculateAccess = (comp, props) ->

    model = _.result(comp, 'modelForAccess') ||
        comp.commands?.getModel()?.modelForAccess() ||
        comp.model?.modelForAccess()

    accessRight = if props.readonly or comp.context?.readonly
        'r'
    else if props.writable or comp.context?.writable or Lanes.current_user.canWrite(model, props.name)
        'w'
    else if props.readable or Lanes.current_user.canRead(model, props.name)
        'r'
    comp.setState({accessRight}) if accessRight

Lanes.React.Mixins.Access = {
    getInitialState: -> {}
    componentDidMount: ->
        calculateAccess(this, @props)

    componentWillReceiveProps: (newProps) ->
        calculateAccess(this, newProps)

    hasReadAccess: ->
        !!@state.accessRight

    hasWriteAccess: ->
        _.includes(['w', 'd'], @state.accessRight)


}

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lanes-0.5.0 client/lanes/react/mixins/Access.coffee