public ActionResult Update(int?id)
        {
            EPermission permissions = sectionRpstry.GetPermissions(sectionName, loggedUser.UserId);

            if (permissions.CanUpdate)
            {
                ViewBag.Permissions = permissions;
                id = (id != null) ? id : loggedUser.UserId;
                var         userEntry = dc.UserProfiles.FirstOrDefault(d => d.UserId == id);
                UpdateModel model     = new UpdateModel();
                ViewBag.Customers = new SelectList(cutomerRepo.GetAll(), "id", "fullName", userEntry != null ? userEntry.customerId : 0);
                if (userEntry != null)
                {
                    model.Roles = Roles.GetRolesForUser(userEntry.UserName);
                }
                else
                {
                    model.Roles = new string[0];
                }
                model.UserName = userEntry.UserName;
                ViewBag.Role   = Roles.GetRolesForUser(loggedUser.UserName).First();
                ViewBag.Roles  = roleRpstry.GetAll();
                ViewBag.UserId = id.ToString();
                return(View(model));
            }
            else
            {
                return(View("Error", "You do not have permissions to access this section."));
            }
        }
        public void RequestPermission(EPermission permission)
        {
            try
            {
                var    activity           = MainActivity.Instance;
                string permissionManifest = GetManifestPermission(permission);

                if (permissionManifest == null)
                {
                    return;
                }

                ActivityCompat.RequestPermissions(activity, new String[] { permissionManifest }, 1);

                OnExecuteResponseRequestPermission = (namePermission, allowed) =>
                {
                    if (permissionManifest == namePermission)
                    {
                        OnPermissionRequest?.Invoke(permission, allowed);
                    }
                };
            }
            catch (Exception)
            {
            }
        }
Esempio n. 3
0
        public static void Execute(EPermission permission, Action actionAllowed, Action actionDenied)
        {
            var permissionDependency = DependencyService.Get <IPermissionDependency>();

            if (permissionDependency == null)
            {
                return;
            }

            if (Check(permission))
            {
                actionAllowed();
            }
            else
            {
                permissionDependency.RequestPermission(permission);
                permissionDependency.OnPermissionRequest = (per, allowed) =>
                {
                    if (allowed)
                    {
                        actionAllowed();
                    }
                    else
                    {
                        actionDenied();
                    }
                };
            }
        }
Esempio n. 4
0
        public ActionResult Create()
        {
            EPermission permissions = sectionRpstry.GetPermissions(sectionName, loggedUser.UserId);

            if (permissions.CanCreate)
            {
                var resultsToSearchFrom = rpstryService.GetAll();
                ViewBag.LoggedUser = loggedUser;
                var currentRoles = Roles.GetRolesForUser(loggedUser.UserName);
                if (!currentRoles.Contains(ConfigurationManager.AppSettings["SuperAdminRoleName"]) && !currentRoles.Contains(ConfigurationManager.AppSettings["AdminRoleName"]))
                {
                    resultsToSearchFrom = loggedUser.customerId != null?db.CustomerServices.Where(d => d.customerId == loggedUser.customerId).Select(d => d.Service).AsQueryable() : new List <Service>().AsQueryable();
                }
                else
                {
                    ViewBag.Customers = new SelectList(rpstryCustomer.GetAll(), "id", "fullName");
                }
                var resultsToGroupFrom = db.DeviceGroups.AsQueryable();
                ViewBag.DeviceGroups = new SelectList(resultsToGroupFrom, "id", "title");
                ViewBag.Services     = new SelectList(resultsToSearchFrom, "id", "title");

                ViewBag.Permissions = permissions;
                return(View("Details"));
            }
            else
            {
                return(View("Error", "You do not have Orders to access this section."));
            }
        }
Esempio n. 5
0
 /// <summary>
 /// 判断用户是否拥有某权限
 /// </summary>
 /// <param name="permissionid">权限编号</param>
 /// <returns>是否拥有某权限</returns>
 public bool IsPermission(EPermission permissionid)
 {
     if (permissionid == EPermission.Any)
     {
         return(true);
     }
     return(_PermissionList.Contains(permissionid));
 }
Esempio n. 6
0
        public async Task <IActionResult> Post([FromForm] AuthenticateUserCommand command)
        {
            if (command == null)
            {
                return(await Response(null, new List <Notification> {
                    new Notification("User", "Usuário ou senha inválidos")
                }));
            }

            var identity = await GetClaims(command);

            if (identity == null)
            {
                return(await Response(null, new List <Notification> {
                    new Notification("User", "Usuário ou senha inválidos")
                }));
            }

            var claims = new[]
            {
                new Claim(JwtRegisteredClaimNames.UniqueName, command.Email),
                new Claim(JwtRegisteredClaimNames.NameId, command.Email),
                new Claim(JwtRegisteredClaimNames.Email, command.Email),
                new Claim(JwtRegisteredClaimNames.Sub, command.Email),
                new Claim(JwtRegisteredClaimNames.Jti, await _tokenOptions.JtiGenerator()),
                new Claim(JwtRegisteredClaimNames.Iat, ToUnixEpochDate(_tokenOptions.IssuedAt).ToString(), ClaimValueTypes.Integer64),
                identity.FindFirst("LuizaEMAPI")
            };

            var jwt = new JwtSecurityToken(
                issuer: _tokenOptions.Issuer,
                audience: _tokenOptions.Audience,
                claims: claims.AsEnumerable(),
                notBefore: _tokenOptions.NotBefore,
                expires: _tokenOptions.Expiration,
                signingCredentials: _tokenOptions.SiniginCredential);

            var         encodedJwt = new JwtSecurityTokenHandler().WriteToken(jwt);
            EPermission permission = (EPermission)_user.Permission;
            var         response   = new
            {
                token   = encodedJwt,
                expires = (int)_tokenOptions.ValidFor.TotalSeconds,
                user    = new
                {
                    id       = _user.Id,
                    name     = _user.Username.ToString(),
                    email    = _user.Email.ToString(),
                    username = _user.Username.ToString(),
                    role     = permission.ToString()
                }
            };
            var json = JsonConvert.SerializeObject(response, _serializerSettings);

            return(new OkObjectResult(json));
        }
Esempio n. 7
0
        public static bool Check(EPermission permission)
        {
            var permissionDependency = DependencyService.Get <IPermissionDependency>();

            if (permissionDependency == null)
            {
                return(false);
            }
            return(permissionDependency.CheckPermission(permission));
        }
        public bool CheckPermission(EPermission permission)
        {
            string permissionManifest = GetManifestPermission(permission);

            if (permissionManifest == null)
            {
                return(false);
            }

            return(ContextCompat.CheckSelfPermission(Application.Context.ApplicationContext, permissionManifest) == (int)Permission.Granted);
        }
Esempio n. 9
0
        public User(int id, string email, string password, string nickname, EPermission permission, bool enabled)
        {
            Id         = id;
            Email      = email;
            Password   = password;
            Nickname   = nickname;
            Permission = permission;
            Enabled    = enabled;

            Validate();
            Password = ValidationPassword.Encrypt(Password);
        }
Esempio n. 10
0
        public User(int id, string username, string email, string password, EPermission permission, bool active)
        {
            Id         = id;
            Username   = username;
            Email      = email.ToLower();
            Password   = password;
            Permission = permission;
            Active     = active;

            Validate();

            Password = ValidationPassword.Encrypt(password);
        }
Esempio n. 11
0
        public ActionResult Create()
        {
            EPermission permissions = sectionRpstry.GetPermissions(sectionName, loggedUser.UserId);

            if (permissions.CanCreate)
            {
                ViewBag.Permissions = permissions;
                return(View("Details", new Contact()));
            }
            else
            {
                return(View("Error", "You do not have Orders to access this section."));
            }
        }
Esempio n. 12
0
        public ActionResult Index()
        {
            EPermission permissions = sectionRpstry.GetPermissions(sectionName, loggedUser.UserId);

            if (permissions.CanRead)
            {
                ViewBag.Permissions = permissions;
                return(View());
            }
            else
            {
                return(View("Error", "You do not have Orders to access this section."));
            }
        }
Esempio n. 13
0
        public ActionResult Create()
        {
            EPermission permissions = sectionRpstry.GetPermissions(sectionName, loggedUser.UserId);

            if (permissions.CanCreate)
            {
                ViewBag.Permissions = permissions;
                ViewBag.Types       = new SelectList(rpstryType.GetAll(), "id", "name");
                return(View("Details"));
            }
            else
            {
                return(View("Error", "You do not have Orders to access this section."));
            }
        }
        private string GetManifestPermission(EPermission permission)
        {
            switch (permission)
            {
            case EPermission.Camera:
                return(Manifest.Permission.Camera);

            case EPermission.WriteExternalStorage:
                return(Manifest.Permission.WriteExternalStorage);

            case EPermission.AccessFineLocation:
                return(Manifest.Permission.AccessFineLocation);
            }
            return(null);
        }
Esempio n. 15
0
        public ActionResult Update(int id)
        {
            EPermission permissions = sectionRpstry.GetPermissions(sectionName, loggedUser.UserId);

            if (permissions.CanUpdate)
            {
                ViewBag.Permissions = permissions;
                var entry = rpstry.GetBiId(id);
                return(View("Details", entry));
            }
            else
            {
                return(View("Error", "You do not have Orders to access this section."));
            }
        }
Esempio n. 16
0
        public ActionResult Create()
        {
            EPermission permissions = sectionRpstry.GetPermissions(sectionName, loggedUser.UserId);

            if (permissions.CanCreate)
            {
                ViewBag.Permissions     = permissions;
                ViewBag.Sections        = sectionRpstry.GetAllOnMenu();
                ViewBag.PermissionTypes = permissionTypeRpstry.GetAll();
                return(View());
            }
            else
            {
                return(View("Error", "You do not have permissions to access this section."));
            }
        }
Esempio n. 17
0
        public ActionResult Create()
        {
            EPermission permissions = sectionRpstry.GetPermissions(sectionName, loggedUser.UserId);

            if (permissions.CanCreate)
            {
                ViewBag.Permissions = permissions;
                ViewBag.Roles       = new MultiSelectList(roleRpstry.GetAll(), "RoleName", "RoleName");
                ViewBag.Customers   = new SelectList(cutomerRepo.GetAll(), "id", "fullName");
                return(View());
            }
            else
            {
                return(View("Error", "You do not have permissions to access this section."));
            }
        }
Esempio n. 18
0
        public ActionResult Update(int id)
        {
            EPermission permissions = sectionRpstry.GetPermissions(sectionName, loggedUser.UserId);

            if (permissions.CanUpdate)
            {
                ViewBag.Permissions     = permissions;
                ViewBag.Roles           = roleRpstry.GetAll();
                ViewBag.PermissionTypes = permissionTypeRpstry.GetAll();
                var entry = rpstry.GetBiId(id);
                return(View(entry));
            }
            else
            {
                return(View("Error", "You do not have permissions to access this section."));
            }
        }
Esempio n. 19
0
        public ActionResult Create()
        {
            EPermission permissions = sectionRpstry.GetPermissions(sectionName, loggedUser.UserId);

            if (permissions.CanCreate)
            {
                var resultsToSearchFrom = rpstryService.GetAll();
                ViewBag.LoggedUser  = loggedUser;
                ViewBag.Customers   = new SelectList(rpstryCustomer.GetAll(), "id", "fullName");
                ViewBag.Services    = new SelectList(resultsToSearchFrom, "id", "title");
                ViewBag.Permissions = permissions;
                return(View("Details"));
            }
            else
            {
                return(View("Error", "You do not have Orders to access this section."));
            }
        }
Esempio n. 20
0
        public ActionResult Update(int id)
        {
            EPermission permissions = sectionRpstry.GetPermissions(sectionName, loggedUser.UserId);

            if (permissions.CanUpdate)
            {
                ViewBag.Permissions = permissions;
                var entry = rpstry.GetBiId(id);

                if (entry.RoleName == ConfigurationManager.AppSettings["SuperAdminRoleName"] || entry.RoleName == ConfigurationManager.AppSettings["AdminRoleName"])
                {
                    return(RedirectToAction("index"));
                }

                ViewBag.Sections        = sectionRpstry.GetAllOnMenu();
                ViewBag.PermissionTypes = permissionTypeRpstry.GetAll();
                return(View(entry));
            }
            else
            {
                return(View("Error", "You do not have permissions to access this section."));
            }
        }
Esempio n. 21
0
 public bool HasPermission(EPermission permission)
 {
     return(_permissions.Contains(permission));
 }
 public ValidateHubAttribute(EPermission minimumPermission)
 {
     _minimumPermission = minimumPermission;
 }
 bool IPermissionDependency.CheckPermission(EPermission permission)
 {
     return(true);
 }
Esempio n. 24
0
 public bool PermissionFeature(EFeatures efeature, EPermission ePermission, List <Features> features)
 {
     return(features.Any(feature => (feature.Permission.Equals(ePermission)) && (StringValue.GetStringValue(efeature).Equals(feature.Description))));
 }
Esempio n. 25
0
 public void ChangePermission(EPermission permission)
 {
     Permission = permission;
     Validate();
 }
 void IPermissionDependency.RequestPermission(EPermission permission)
 {
     OnPermissionRequest?.Invoke(permission, true);
 }
Esempio n. 27
0
        public ActionResult Update(int?id, UpdateModel model)
        {
            bool hasPermissions = sectionRpstry.GetPermission(sectionName, loggedUser.UserId, canUpdate);

            if (hasPermissions)
            {
                if (ModelState.IsValid)
                {
                    // Attempt to register the user
                    try
                    {
                        id = (id != null) ? id : loggedUser.UserId;
                        var userEntry = dc.UserProfiles.FirstOrDefault(d => d.UserId == id);
                        if (userEntry != null)
                        {
                            var customerentity = cutomerRepo.GetBiId(Convert.ToInt32(model.customerId));
                            userEntry.customerId   = customerentity.id;
                            userEntry.customername = customerentity.fullName;
                            userEntry.UserName     = model.UserName;
                            dc.SubmitChanges();
                        }
                        if (userEntry != null)
                        {
                            if (Roles.GetRolesForUser(userEntry.UserName).Any())
                            {
                                Roles.RemoveUserFromRoles(userEntry.UserName, Roles.GetRolesForUser(userEntry.UserName));
                            }
                            if (model.Roles != null && model.Roles.Any())
                            {
                                Roles.AddUserToRoles(userEntry.UserName, model.Roles);
                            }

                            if (!string.IsNullOrEmpty(model.OldPassword) && !string.IsNullOrEmpty(model.NewPassword))
                            {
                                if (WebSecurity.ChangePassword(userEntry.UserName, model.OldPassword, model.NewPassword))
                                {
                                }
                                else
                                {
                                    ModelState.AddModelError("", "Old password is incorrect, password does not changed");
                                    var userEntry2 = dc.UserProfiles.FirstOrDefault(d => d.UserId == id);
                                    ViewBag.Customers = new SelectList(cutomerRepo.GetAll(), "id", "fullName", userEntry2 != null ? userEntry2.customerId : 0);
                                    if (userEntry2 != null)
                                    {
                                        model.Roles = Roles.GetRolesForUser(userEntry2.UserName);
                                    }
                                    else
                                    {
                                        model.Roles = new string[0];
                                    }
                                    EPermission permissions2 = sectionRpstry.GetPermissions(sectionName, loggedUser.UserId);
                                    ViewBag.Permissions = permissions2;
                                    ViewBag.Roles       = roleRpstry.GetAll();
                                    return(View(model));
                                }
                            }
                        }
                        return(RedirectToAction("Index", new { thisid = id }));
                    }
                    catch (MembershipCreateUserException e)
                    {
                        ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
                        return(View(model));
                    }
                }
                ModelState.AddModelError("", "Make sure you assigned a role");
                // If we got this far, something failed, redisplay form
                var userEntry1 = dc.UserProfiles.FirstOrDefault(d => d.UserId == id);
                ViewBag.Customers = new SelectList(cutomerRepo.GetAll(), "id", "fullName", userEntry1 != null ? userEntry1.customerId : 0);
                if (userEntry1 != null)
                {
                    model.Roles = Roles.GetRolesForUser(userEntry1.UserName);
                }
                else
                {
                    model.Roles = new string[0];
                }
                EPermission permissions1 = sectionRpstry.GetPermissions(sectionName, loggedUser.UserId);
                ViewBag.Permissions = permissions1;
                ViewBag.Roles       = roleRpstry.GetAll();
                return(View(model));
            }
            else
            {
                return(View("Error", "You do not have permissions to access this section."));
            }
        }
Esempio n. 28
0
 public void ChangePermission(EPermission permission)
 {
     Permission = permission;
 }
        public static bool CurrentUserHasPermission(this IUserPrincipalProvider provider, EPermission permission)
        {
            // Check if userPrincipal == null
            if (provider.CurrentUserId < 0)
            {
                return(false);
            }

            return(provider.HasPermission(permission));
        }