Ignore:
Timestamp:
04/26/16 11:30:46 (6 years ago)
Author:
jlodewyc
Message:

#2582 Resource Permissions added

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Hubs/CalendarHub.cs

    r13782 r13795  
    11using HeuristicLab.Clients.Access.Administration;
    22using HeuristicLab.Clients.Hive.WebJobManager.Services;
     3using HeuristicLab.Clients.Hive.WebJobManager.ViewModels.User;
    34using Microsoft.AspNet.SignalR;
    45using Newtonsoft.Json;
     
    1617        private Guid userId;
    1718        private HiveAdminClientWeb adminClient;
     19        private HiveServiceLocatorWeb servloc;
     20        private AccessAdministrationClient accessClient;
    1821        private void loader()
    1922        {
     
    2831                userId = Guid.Parse(uid);
    2932                adminClient = weblog.getAdminClient(userId);
     33                servloc = weblog.getServiceLocator(userId);
     34                accessClient = weblog.getAccessAdminClient(userId);
    3035            }
    3136        }
     
    3439            loader();
    3540            adminClient.Refresh();
    36            
     41            UserViewModel vm = new UserViewModel(accessClient).refreshAll();
     42            var users = JsonConvert.SerializeObject(vm.users);
     43            var groups = JsonConvert.SerializeObject(vm.ugroups);
    3744            var res = JsonConvert.SerializeObject(adminClient.Resources);
    38             Clients.Caller.processData(res);
     45            Clients.Caller.processData(res, users, groups);
    3946        }
    4047        public void requestDownTime(string id)
     
    4754            var down = JsonConvert.SerializeObject(adminClient.Downtimes);
    4855            Clients.Caller.processDowntime(id, down);
     56        }
     57        public void requestPermissions(string id)
     58        {
     59            loader();
     60            Guid r = Guid.Parse(id);
     61            var perm = servloc.CallHiveService(x => x.GetResourcePermissions(r));
     62            Clients.Caller.processPermissions(id, JsonConvert.SerializeObject(perm));
     63        }
     64
     65        public void changePermissions(string[] perms, string idresource)
     66        {
     67            loader();
     68            var res = Guid.Parse(idresource);
     69            var exist = servloc.CallHiveService(x => x.GetResourcePermissions(res));
     70            List<Guid> newPerms = new List<Guid>();
     71            List<Guid> revokePerms = new List<Guid>();
     72            for (var i = 0; i < perms.Length; i++)
     73            {
     74                var p = Guid.Parse(perms[i]);
     75                var elemid = exist.FindIndex(x => x.GrantedUserId == p);
     76                if (elemid != -1)
     77                {
     78                    exist[elemid].GrantedUserId = Guid.Empty;
     79                }
     80                else
     81                {
     82                    newPerms.Add(p);
     83                }
     84            }
     85            servloc.CallHiveService(x => x.GrantResourcePermissions(res, newPerms));
     86            foreach (var ex in exist)
     87            {
     88                if(ex.GrantedUserId != Guid.Empty)
     89                {
     90                    revokePerms.Add(ex.GrantedUserId);
     91                }
     92            }
     93            servloc.CallHiveService(x => x.RevokeResourcePermissions(res, revokePerms));
     94            requestPermissions(idresource);
    4995        }
    5096        public void toggleDisposable(string id)
Note: See TracChangeset for help on using the changeset viewer.