Edit in JSFiddle

 (function() {
        'use strict';
        
        var app = angular.module('app', []);
        app.factory('app.svc.auth', [svcAuth]);
        app.directive('authorize', ['app.svc.auth', dirAuth]);       
        app.controller('app.ctrl.grid', ['app.svc.auth', ctrlGrid]);
               
        function svcAuth() {

            //simple claims container for demo purposes
            var claims = { 'Name': 'Ozkary', 'Title': 'Tech', 'app.delete': true, 'app.edit': true, 'app.create': true };

            function hasClaim(key) {
                return claims[key];//todo  handle multiple claims
            }

            return {
                claims: claims,
                hasClaim:hasClaim
            };
        }
      
        function dirAuth($svcAuth) {           
           return {
               restrict: 'A',
               scope: true,
             
               link: function (scope, elem, attrs) {
                   console.log('loading directive - ' + attrs.authorize);
                   var watch = function () {
                       //get the claim value                     
                       var claims = attrs.authorize;                       
                       if (claims) {                          
                           var result = $svcAuth.hasClaim(claims);
                           if (!result) {                             
                               elem.hide();                              
                           } else {
                               elem.show();
                           }
                       }
                   }
                   //watch for the element binding           
                   scope.$watch(watch);                                    
               }
           };
       };
       

       function ctrlGrid($svcAuth) {
           var ctrl = this;
           var storage = angular.copy($svcAuth.claims);
           ctrl.claims = $svcAuth.claims;
           

           ctrl.edit = function(key) {

               if (ctrl.selected === key) {
                   ctrl.selected = null;
               } else {
                   ctrl.selected = key;
               }               
           }

           ctrl.remove = function(key){
               delete ctrl.claims[key];
           }

           ctrl.reset = function () {
               $svcAuth.claims = angular.copy(storage);
               ctrl.claims = $svcAuth.claims
           }
    
       }
})();
<div ng-app="app">
  <div class="body-content panel-body">
    <div class="container-fluid">
    <div class="row">
                <div class="col-lg-12">
                    <h3 class="page-header">Directive Claims Authorization - ozkary.com</h3>
                </div>
                <!-- /.col-lg-12 -->
    </div>
     <div class="row" ng-controller="app.ctrl.grid as ctrl">
                <div class="col-lg-12">
                    <div class="panel panel-default">
                        <div class="panel-heading">
                           My Claims
                        </div>
                        <!-- /.panel-heading -->
                        <div class="panel-body text-center" >                        
                            <ul class="list-group text-left">
                                <li ng-repeat="(key,value) in ctrl.claims" class="list-group-item">
                                    <label style="width:150px;">{{key}}</label>
                                    <input type="text" class="form-control-static form-input" maxlength="25" ng-disabled="key !== ctrl.selected" ng-model="ctrl.claims[key]" />
                                    <span class="pull-right">
                                        <a authorize="app.delete" class="cursor-pointer" title="remove claim" ng-click="ctrl.remove(key)"><i class="fa fa-trash text-danger fa-2x"></i></a>
                                        <a authorize="app.edit" class="cursor-pointer" title="edit claim" ng-click="ctrl.edit(key)"><i class="fa fa-edit fa-2x"></i></a>
                                    </span>                               
                                </li>
                            </ul>                            
                        </div>
                        <!-- /.panel-body -->                      
                    </div>
                    <!-- /.panel -->
                </div>
                <!-- /.col-lg-12 -->               
            </div>
    
    </div>
  </div>
</div>
<br/>