Ejemplo n.º 1
0
        private async void SetCordinates()
        {
            try
            {
                bool hasPermission = await AppPermission.GPSLocation();

                if (!hasPermission)
                {
                    EbLog.Error("[location} permission revoked by user, failed to set dcurrent gps location");
                    Utils.Toast("Location permission revoked");
                    return;
                }

                Location current = await EbGeoLocationHelper.GetCurrentLocationAsync();

                if (current != null)
                {
                    Cordinates = new EbGeoLocation {
                        Latitude = current.Latitude, Longitude = current.Longitude
                    };
                    mapView.SetLocation(current.Latitude, current.Longitude);
                }
            }
            catch (Exception ex)
            {
                EbLog.Error(ex.Message);
            }
        }
Ejemplo n.º 2
0
 public ActionResult CreatePermission(NewAppPermissionViewModel model)
 {
     using (var context = new AppSecurityContext())
     {
         var actionRepository     = new ActionRepository(context);
         var resourceRepository   = new ResourceRepository(context);
         var permissionRepository = new PermissionRepository(context);
         try
         {
             var resource = resourceRepository.Find(model.SelectedResource);
             var actions  = actionRepository.Query(x => model.SelectedActions.Contains(x.Key));
             foreach (var action in actions)
             {
                 var permission = new AppPermission();
                 permission.Action   = action;
                 permission.Resource = resource;
                 permissionRepository.Add(permission);
             }
             context.SaveChanges();
             return(RedirectToAction("Permissions"));
         }
         catch (Exception ex)
         {
             ViewBag.Error = ex.Message;
             var actions = actionRepository.GetAll().OrderBy(x => x.Name);
             model.AvailableActions = mapper.Map <ICollection <AppActionViewModel> >(actions);
             model.ResourcesList    = PopulateResourcesForNewPermission(model.SelectedResource);
             return(View(model));
         }
     }
 }
Ejemplo n.º 3
0
        public IActionResult Create(string name)
        {
            if (!_currentUser.HasRole(Permission.UserAccountAdmin))
            {
                return(Forbidden());
            }

            _logger.LogInformation("Creating a new permission: {0}", name);

            if (!Enum.TryParse(name, ignoreCase: true, out Permission perm))
            {
                return(Error($"Specified permission is not valid: {name}"));
            }

            if (_permissionRepo.HasPermission(name))
            {
                return(Error("Specified permission already exist"));
            }

            AppPermission permission = new AppPermission(
                name: perm.GetName(),
                description: perm.GetDescription());

            _permissionRepo.Insert(permission);

            return(Ok("Permission added"));
        }
        private async void RecordButton_Clicked(object sender, EventArgs e)
        {
            XAudioButton btn = (XAudioButton)sender;

            if (btn.ActionType == ACTION_START)
            {
                if (await AppPermission.Audio())
                {
                    RecordingTimerLabel.IsVisible = true;
                    await audioHelper.StartRecording();

                    StartRecordingTimer();
                    SetStopRecordButtonSyle();
                }
                else
                {
                    Utils.Toast("Microphone permission revoked");
                }
            }
            else
            {
                audioHelper.StopRecording();
                SetRecordButtonSyle();
            }
        }
Ejemplo n.º 5
0
        private static AppPermission GetAppToSave(AppPermissionRequest request)
        {
            var appToSave = new AppPermission();

            appToSave.AppName = request.AppName;
            request.Needs.ForEach(x => appToSave.Needs.Add(new Need()
            {
                Permission = x, Enabled = false
            }));
            appToSave.Token = request.Token;
            return(appToSave);
        }
Ejemplo n.º 6
0
 public void SavePermission(AppPermission app)
 {
     if (Guid.Empty.Equals(app.Id))
     {
         app.Id = Guid.NewGuid();
         this.AppPermissionCollection.Insert(app);
     }
     else
     {
         this.AppPermissionCollection.Update(app);
     }
 }
Ejemplo n.º 7
0
        public ActionResult EditPermission(string id, EditAppPermissionViewModel model)
        { //Clave del resource
            using (var context = new AppSecurityContext())
            {
                var actionRepository     = new ActionRepository(context);
                var resourceRepository   = new ResourceRepository(context);
                var permissionRepository = new PermissionRepository(context);
                try
                {
                    var actions     = actionRepository.GetAll();
                    var resource    = resourceRepository.Find(id);
                    var permissions = permissionRepository.GetAll().Where(x => x.ResourceKey == resource.Key);
                    var actionKeys  = permissions.Select(x => x.ActionKey).ToArray();
                    model.AvailableActions = mapper.Map <ICollection <AppActionViewModel> >(actions);

                    //Se eliminan los permisos anteriores
                    foreach (var perm in permissions)
                    {
                        permissionRepository.Delete(perm);
                    }

                    if (model.SelectedActions != null)
                    {
                        //Se agregan los nuevos
                        var actionsForInsert = actionRepository.Query(x => model.SelectedActions.Contains(x.Key));
                        foreach (var action in actionsForInsert)
                        {
                            var permission = new AppPermission();
                            permission.Action   = action;
                            permission.Resource = resource;
                            permissionRepository.Add(permission);
                        }
                        model.SelectedActions = actionKeys;
                        model.ResourceKey     = resource.Key;
                        model.ResourceName    = resource.Name;
                    }
                    context.SaveChanges();
                    return(RedirectToAction("Permissions"));
                }
                catch (Exception ex)
                {
                    ViewBag.Error = ex.Message;
                    if (ex.InnerException != null)
                    {
                        ViewBag.Error += ex.InnerException.Message;
                    }
                    return(View(model));
                }
            }
        }
        private async void OpenQrScanner(object sender, EventArgs e)
        {
            bool hasCameraAccess = await AppPermission.Camera();

            if (hasCameraAccess)
            {
                QrScanner scannerPage = new QrScanner();
                scannerPage.BindMethod(OnScannedResult);

                await App.Navigation.NavigateByRenderer(scannerPage);
            }
            else
            {
                Utils.Toast("Allow permission to access camera");
            }
        }
Ejemplo n.º 9
0
        private void OnSelectChildPermission(List <object> args)
        {
            AppPermission app = args[0] as AppPermission;

            ;
            AppPermission binded = AppPermission.Where(x => x.AppName == app.AppName).FirstOrDefault();

            var enabled = (app.Enabled.HasValue == false || app.Enabled.Value == false);



            foreach (var item in binded.Needs)
            {
                item.Enabled = enabled;
            }
        }
        private async void QrButton_Tapped(object sender, EventArgs e)
        {
            bool hasCameraAccess = await AppPermission.Camera();

            if (hasCameraAccess)
            {
                QrScanner scannerPage = new QrScanner();
                scannerPage.BindMethod(QrScannerCallback);

                await App.Navigation.NavigateModalByRenderer(scannerPage);
            }
            else
            {
                Utils.Toast("Allow permission to access camera");
            }
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Grant or deny a tenant permission to operate with an application.
        /// </summary>
        /// <param name="tenantName">The tenant name or guid.</param>
        /// <param name="app">The application name or guid.</param>
        /// <param name="permission">The type of permission (e.g. Install, Publish).</param>
        /// <param name="grant">True to grant permission; false to remove permission.</param>
        public static void ChangeAppAccess(string tenantName, string app, AppPermission permission, bool grant)
        {
            // Log activity
            var context = new ProcessingContext
            {
                Report =
                {
                    Action = AppLibraryAction.ChangeAccess
                }
            };

            context.Report.Arguments.Add(new KeyValuePair <string, string>("Tenant", tenantName));
            context.Report.Arguments.Add(new KeyValuePair <string, string>("Application", app));
            context.Report.Arguments.Add(new KeyValuePair <string, string>("Permission", permission.ToString()));
            context.Report.Arguments.Add(new KeyValuePair <string, string>("Access", grant ? "Grant" : "Deny"));

            // Run
            using (new SecurityBypassContext( ))
            {
                long tenantId;
                long appId;

                using (new GlobalAdministratorContext( ))
                {
                    // Process arguments
                    tenantId = TenantHelper.GetTenantId(tenantName);
                    appId    = SystemHelper.GetGlobalApplicationIdByNameOrGuid(app);

                    if (appId <= 0 || tenantId <= 0)
                    {
                        return;
                    }

                    // Update database
                    switch (permission)
                    {
                    case AppPermission.Install:
                        UpdateTenantPermissionRelationship(tenantId, appId, "canInstallApplication", grant);
                        break;

                    case AppPermission.Publish:
                        UpdateTenantPermissionRelationship(tenantId, appId, "canPublishApplication", grant);
                        break;
                    }
                }
            }
        }
Ejemplo n.º 12
0
        public async Task <OutResult> AddPermission(string name, string description)
        {
            var permissionExists = await _permissionManager.FindByNameAsync(name);

            if (permissionExists != null)
            {
                return(OutResult.Error_AlreadyExists());
            }
            var newPermission = new AppPermission()
            {
                Name        = name,
                Description = description,
                CreatedAt   = DateTime.Now,
                UpdatedAt   = DateTime.Now
            };
            var result = await _permissionManager.CreateAsync(newPermission);

            return(result.Succeeded ? OutResult.Success_Created() : OutResult.Failed("Failed to add Permission"));
        }
Ejemplo n.º 13
0
 public bool save(AppPermission data)
 {
     try
     {
         SqlCommand command;
         if (data.id == 0)
         {
             command = data.InsertInto();
         }
         else
         {
             command = data.UpdateInto();
         }
         DBServer.ExecuteNon(command);
         return(true);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Ejemplo n.º 14
0
        public static void SeedData(IdentityDBContext context)
        {
            Console.WriteLine("Applying database migrations...");

            context.Database.Migrate();

            Console.WriteLine("Seeding initial data...");

            bool            newEntry  = false;
            Maybe <AppUser> adminUser = context.AppUser.FirstOrDefault(e => e.Username == "*****@*****.**");

            if (adminUser.HasNoValue)
            {
                adminUser = new AppUser(
                    firstName: "Dhanuka",
                    lastName: "Jayasinghe",
                    username: Email.Create("*****@*****.**").Value,
                    password: Password.Create("Admin@#456").Value
                    );
                context.AppUser.Add(adminUser.Value);
                newEntry = true;
            }

            Maybe <AppPermission> iamAdminPermission = context.AppPermission.FirstOrDefault(e => e.Name == Permission.UserAccountAdmin.ToString());

            if (iamAdminPermission.HasNoValue)
            {
                iamAdminPermission = new AppPermission(
                    name: Permission.UserAccountAdmin.ToString(),
                    description: EnumInfo.GetDescription(Permission.UserAccountAdmin)
                    );
                context.AppPermission.Add(iamAdminPermission.Value);
                newEntry = true;
            }

            Maybe <AppGroup> adminGroup = context.AppGroup.FirstOrDefault(e => e.Name == SystemUserGroup.ADMIN.ToString());

            if (adminGroup.HasNoValue)
            {
                adminGroup = new AppGroup(SystemUserGroup.ADMIN.ToString(), "System administrator permissions");
                context.AppGroup.Add(adminGroup.Value);
                newEntry = true;
            }

            if (newEntry)
            {
                context.SaveChanges();
                newEntry = false;
            }

            if (!context.AppGroupPermission.Any(e => e.PermissionId == iamAdminPermission.Value.Id && e.AppGroupId == adminGroup.Value.Id))
            {
                AppGroupPermission groupPermission = new AppGroupPermission(iamAdminPermission, adminGroup);
                context.AppGroupPermission.Add(groupPermission);
                newEntry = true;
            }
            if (!context.AppUserGroup.Any(e => e.AppUserId == adminUser.Value.Id && e.AppGroupId == adminGroup.Value.Id))
            {
                AppUserGroup adminUserGroup = new AppUserGroup(adminUser, adminGroup);
                context.AppUserGroup.Add(adminUserGroup);
                newEntry = true;
            }

            if (newEntry)
            {
                context.SaveChanges();
            }

            Console.WriteLine("Seeding complete");
        }
Ejemplo n.º 15
0
 private void OnSelectChildPermissionItem(List <object> args)
 {
     AppPermission app       = args[0] as AppPermission;
     bool?         selection = (bool?)args[1];
     AppPermission binded    = AppPermission.Where(x => x.AppName == app.AppName).FirstOrDefault();
 }
Ejemplo n.º 16
0
        protected override void Seed(AppSecurityContext context)
        {
            //Acciones
            var read = new AppAction {
                Key = "R", Name = "Leer"
            };
            var write = new AppAction {
                Key = "W", Name = "Escribir"
            };
            var modify = new AppAction {
                Key = "M", Name = "Modificar"
            };
            var delete = new AppAction {
                Key = "D", Name = "Eliminar"
            };
            var access = new AppAction {
                Key = "A", Name = "Acceder"
            };

            context.Actions.Add(read);
            context.Actions.Add(write);
            context.Actions.Add(modify);
            context.Actions.Add(delete);
            context.Actions.Add(access);

            //Recursos
            var roles = new AppResource {
                Key = "ROLES", Name = "Roles"
            };
            var usuarios = new AppResource {
                Key = "USERS", Name = "Usuarios"
            };

            context.Resources.Add(roles);
            context.Resources.Add(usuarios);

            var adminRol = new AppRole {
                Name = "Administrator"
            };

            var rRoles = new AppPermission {
                Action = read, Resource = roles
            };
            var wRoles = new AppPermission {
                Action = write, Resource = roles
            };
            var mRoles = new AppPermission {
                Action = modify, Resource = roles
            };
            var dRoles = new AppPermission {
                Action = delete, Resource = roles
            };

            var rUsers = new AppPermission {
                Action = read, Resource = usuarios
            };
            var wUsers = new AppPermission {
                Action = write, Resource = usuarios
            };
            var mUsers = new AppPermission {
                Action = modify, Resource = usuarios
            };
            var dUsers = new AppPermission {
                Action = delete, Resource = usuarios
            };

            context.Permissions.Add(rRoles);
            context.Permissions.Add(wRoles);
            context.Permissions.Add(mRoles);
            context.Permissions.Add(dRoles);

            context.Permissions.Add(rUsers);
            context.Permissions.Add(wUsers);
            context.Permissions.Add(mUsers);
            context.Permissions.Add(dUsers);

            context.Roles.Add(adminRol);

            context.RolesPermissions.Add(new AppRolePermission {
                Role = adminRol, Permission = rRoles
            });
            context.RolesPermissions.Add(new AppRolePermission {
                Role = adminRol, Permission = wRoles
            });
            context.RolesPermissions.Add(new AppRolePermission {
                Role = adminRol, Permission = mRoles
            });
            context.RolesPermissions.Add(new AppRolePermission {
                Role = adminRol, Permission = dRoles
            });

            context.RolesPermissions.Add(new AppRolePermission {
                Role = adminRol, Permission = rUsers
            });
            context.RolesPermissions.Add(new AppRolePermission {
                Role = adminRol, Permission = wUsers
            });
            context.RolesPermissions.Add(new AppRolePermission {
                Role = adminRol, Permission = mUsers
            });
            context.RolesPermissions.Add(new AppRolePermission {
                Role = adminRol, Permission = dUsers
            });

            context.SaveChanges();
        }
 /// <summary>
 /// Agrega un permiso a contexto
 /// </summary>
 /// <param name="permission"></param>
 public void Add(AppPermission permission)
 {
     _context.Permissions.Add(permission);
 }
Ejemplo n.º 18
0
 protected AppPermissionAttribute(AppPermission requestedPermission)
 {
     this.requestedPermission = requestedPermission;
 }
Ejemplo n.º 19
0
 /// <summary>
 /// Represents a Facebook permission type and an associated description
 /// </summary>
 /// <param name="permission"></param>
 /// <param name="description"></param>
 public PermissionAndDescription(AppPermission permission, string description)
 {
     this.permission  = permission;
     this.description = description;
 }
 protected override async void OnAppearing()
 {
     base.OnAppearing();
     await AppPermission.Camera();
 }
Ejemplo n.º 21
0
        protected AppPermission GetObject(DataRow dr)
        {
            AppPermission objAppPermission = new AppPermission();
            objAppPermission.Id = (dr["Id"] == DBNull.Value) ? 0 : (Int32)dr["Id"];
            objAppPermission.RoleId = (dr["RoleId"] == DBNull.Value) ? 0 : (Int32)dr["RoleId"];
            objAppPermission.UserId = (dr["UserId"] == DBNull.Value) ? 0 : (Int32)dr["UserId"];
            objAppPermission.CompanyId = (dr["CompanyId"] == DBNull.Value) ? 0 : (Int32)dr["CompanyId"];
            objAppPermission.FunctionalityId = (dr["FunctionalityId"] == DBNull.Value) ? 0 : (Int32)dr["FunctionalityId"];
            objAppPermission.IsView = (dr["IsView"] == DBNull.Value) ? false : (Boolean)dr["IsView"];
            objAppPermission.IsInsert = (dr["IsInsert"] == DBNull.Value) ? false : (Boolean)dr["IsInsert"];
            objAppPermission.IsUpdate = (dr["IsUpdate"] == DBNull.Value) ? false : (Boolean)dr["IsUpdate"];
            objAppPermission.IsDelete = (dr["IsDelete"] == DBNull.Value) ? false : (Boolean)dr["IsDelete"];
            objAppPermission.IsApprove = (dr["IsApprove"] == DBNull.Value) ? false : (Boolean)dr["IsApprove"];

            return objAppPermission;
        }