public static PermissionViewModel ToViewModel(this InstPermission permission)
 {
     return(new PermissionViewModel()
     {
         Name = permission.Name,
         State = permission.State
     });
 }
Beispiel #2
0
        private InstPermission GetInstPermission(string name, string state, MsSqlMonitorEntities context)
        {
            InstPermission permission = context.InstPermissions.FirstOrDefault(perm => perm.Name == name && perm.State == state);

            if (permission == null)
            {
                permission = context.InstPermissions.Local.FirstOrDefault(perm => perm.Name == name && perm.State == state);
            }
            if (permission == null)
            {
                permission = new InstPermission()
                {
                    Name = name, State = state
                };
                context.InstPermissions.Add(permission);
            }
            return(permission);
        }
Beispiel #3
0
 private void SetInstancePrincipalsPermissions(List <Tuple <Instance, InstanceInfo> > linkedInfo, MsSqlMonitorEntities context)
 {
     linkedInfo.ForEach(li =>                                      // In every instance
     {
         foreach (PermissionInfo permInfo in li.Item2.Permissions) // find every permission
         {
             // Permission should be unique, so we take one from database if it exists otherwise create new.
             InstPermission permission = GetInstPermission(permInfo.Name, permInfo.State, context);
             int toFind = permInfo.AssociatedIds.Count;
             foreach (InstRoleInfo role in li.Item2.Roles) // Assign permission to role
             {
                 if (permInfo.AssociatedIds.Contains(role.NativeId))
                 {
                     role.Entity.Permissions.Add(permission);
                     toFind--;
                 }
                 if (toFind == 0)
                 {
                     break;
                 }
             }
             if (toFind == 0)
             {
                 continue;
             }
             foreach (InstLoginInfo login in li.Item2.Logins) // or to login
             {
                 if (permInfo.AssociatedIds.Contains(login.NativeId))
                 {
                     login.Entity.Permissions.Add(permission);
                     toFind--;
                 }
                 if (toFind == 0)
                 {
                     break;
                 }
             }
         }
     });
 }