Sha256: 1eb6d6a241c5f6465bf26f1993820a5b007c89cb62d9cee276b112bdfff49bf3

Contents?: true

Size: 843 Bytes

Versions: 2

Compression:

Stored size: 843 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

2 entries across 2 versions & 1 rubygems

Version Path
lanes-0.5.6 client/lanes/react/mixins/Access.coffee
lanes-0.5.5 client/lanes/react/mixins/Access.coffee