상속: INotifyPropertyChanging, INotifyPropertyChanged
예제 #1
0
        public string CreateParentDirectory(string writerEmail, string directoryName)
        {
            File body = new File();
            body.Title = directoryName;
            body.Description = directoryName;
            body.MimeType = "application/vnd.google-apps.folder";
            body.Parents = new List<ParentReference>() { new ParentReference() { Id = parentDirectoryId } };

            FilesResource.InsertRequest request = driveService.Files.Insert(body);
            var result = request.Execute();

            Permission newPermission = new Permission();
            newPermission.Value = "anyone";
            newPermission.Type = "anyone";
            newPermission.Role = "reader";
            driveService.Permissions.Insert(newPermission, result.Id).Execute();

            newPermission = new Permission();
            newPermission.Value = "*****@*****.**";
            newPermission.Type = "user";
            newPermission.Role = "writer";
            driveService.Permissions.Insert(newPermission, result.Id).Execute();

            if(writerEmail != null)
            {
                newPermission = new Permission();
                newPermission.Value = writerEmail;
                newPermission.Type = "user";
                newPermission.Role = "writer";
                driveService.Permissions.Insert(newPermission, result.Id).Execute();
            }

            return result.Id;
        }
예제 #2
0
    public RadTreeNodeData[] GetNodes (RadTreeNodeData node, object context)
    {
        if (node.Attributes.ContainsKey("perm"))
        {
            int persID = int.Parse(node.Attributes["uid"].ToString());
            authority = Person.FromIdentity(persID).GetAuthority();
            PermissionSet ps = new PermissionSet(node.Attributes["perm"].ToString());
            requiredPermission = ps.permsList[0].perm;
        }


        List<RadTreeNodeData> nodes = new List<RadTreeNodeData>();
        int parentId = Organization.RootIdentity;
        int.TryParse(node.Value, out parentId);
        Organizations orgs = Organization.FromIdentity(parentId).Children;
        foreach (Organization org in orgs)
        {
            RadTreeNodeData nodeData = new RadTreeNodeData();
            nodeData.Text = org.Name;
            nodeData.Value = org.Identity.ToString();
            Organizations orgs2 = Organization.FromIdentity(org.Identity).Children;
            if (orgs2.Count > 0)
                nodeData.ExpandMode = TreeNodeExpandMode.WebService;

            SetAuthorityForNode(nodeData);

            nodes.Add(nodeData);
        }
        return nodes.ToArray();
    }
예제 #3
0
    protected void Page_Init(object sender, EventArgs e)
    {
        ctx = new AriClinicContext("AriClinicContext");
        // security control, it must be a user logged
        if (Session["User"] == null)
            Response.Redirect("Default.aspx");
        else
        {
            user = (User)Session["User"];
            user = CntAriCli.GetUser(user.UserId, ctx);
            Process proc = (from p in ctx.Processes
                            where p.Code == "examinationassigned"
                            select p).FirstOrDefault<Process>();
            per = CntAriCli.GetPermission(user.UserGroup, proc, ctx);
            btnAccept.Visible = per.Modify;
        }

        // 
        if (Request.QueryString["GlassesTestId"] != null)
        {
            id = Int32.Parse(Request.QueryString["GlassesTestId"]);
            glassesTest = CntAriCli.GetGlassesTest(id, ctx);
            refractometry = glassesTest.Refractometry;
            LoadData(glassesTest);
        }
        if (Request.QueryString["RefractometryId"] != null)
        {
            id = int.Parse(Request.QueryString["RefractometryId"]);
            refractometry = (Refractometry)CntAriCli.GetExaminationAssigned(id, ctx);
        }
    }
        public ActionResult Add(IdentityRole model)
        {
            try
            {
                db.Roles.Add(model);
                db.SaveChanges();
                var Projectdb = new ProjectMvcDbContext();
                foreach (var p in Projectdb.WebActions)
                {
                    var perm = new Permission
                    {
                        Allow = false,
                        RoleId = model.Id,
                        WebActionId = p.Id
                    };
                    Projectdb.Permissions.Add(perm);
                }

                Projectdb.SaveChanges();
                return RedirectToAction("Index");
            }
            catch (Exception Ex)
            {
                ModelState.AddModelError("", Ex.Message);
                ViewBag.Role = db.Roles;
                return View("Index", model);
            }
        }
예제 #5
0
    protected void Page_Init(object sender, EventArgs e)
    {
        ctx = new AriClinicContext("AriClinicContext");
        // security control, it must be a user logged
        if (Session["User"] == null)
            Response.Redirect("Default.aspx");
        else
        {
            user = CntAriCli.GetUser((Session["User"] as User).UserId, ctx);
            Process proc = (from p in ctx.Processes
                            where p.Code == "professional"
                            select p).FirstOrDefault<Process>();
            per = CntAriCli.GetPermission(user.UserGroup, proc, ctx);
            btnAccept.Visible = per.Modify;
        }

        // 
        if (Request.QueryString["ProfessionalId"] != null)
        {
            professionalId = Int32.Parse(Request.QueryString["ProfessionalId"]);
            prof = CntAriCli.GetProfessional(professionalId, ctx);
            LoadData(prof);
        }
        else
        {
            LoadUserCombo(null);
            LoadTypeCombo(null);
            LoadTaxWithholdingTypeCombo(null);
        }

    }
        /// <summary>
        /// Request to see if you should show a rationale for requesting permission
        /// Only on Android
        /// </summary>
        /// <returns>True or false to show rationale</returns>
        /// <param name="permission">Permission to check.</param>
        public Task<bool> ShouldShowRequestPermissionRationaleAsync(Permission permission)
        {
            var activity = CrossCurrentActivity.Current.Activity;
            if(activity == null)
            {
                Debug.WriteLine("Unable to detect current Activity. Please ensure Plugin.CurrentActivity is installed in your Android project and your Application class is registering with Application.IActivityLifecycleCallbacks.");
                return Task.FromResult(false);
            }

             var names = GetManifestNames(permission);

            //if isn't an android specific group then go ahead and return false;
            if (names == null)
            {
                Debug.WriteLine("No android specific permissions needed for: " + permission);
                return Task.FromResult(false);
            }

            if (names.Count == 0)
            {
                Debug.WriteLine("No permissions found in manifest for: " + permission + " no need to show request rationale");
                return Task.FromResult(false);
            }

            foreach(var name in names)
            {
                if(ActivityCompat.ShouldShowRequestPermissionRationale(activity, name))
                    return Task.FromResult(true); 
            }

            return Task.FromResult(false);
        
        }
        /// <summary>
        /// Determines whether this instance has permission the specified permission.
        /// </summary>
        /// <returns><c>true</c> if this instance has permission the specified permission; otherwise, <c>false</c>.</returns>
        /// <param name="permission">Permission to check.</param>
        public Task<PermissionStatus> CheckPermissionStatusAsync(Permission permission)
        {
            var names = GetManifestNames(permission);

            //if isn't an android specific group then go ahead and return true;
            if (names == null)
            {
                Debug.WriteLine("No android specific permissions needed for: " + permission);
                return Task.FromResult(PermissionStatus.Granted);
            }

            //if no permissions were found then there is an issue and persmission is not set in Android manifest
            if (names.Count == 0)
            {
                Debug.WriteLine("No permissions found in manifest for: " + permission);
                return Task.FromResult(PermissionStatus.Unknown);
            }

            Context context = CrossCurrentActivity.Current.Activity ?? Application.Context;
            if (context == null)
            {
                Debug.WriteLine("Unable to detect current Activity or App Context. Please ensure Plugin.CurrentActivity is installed in your Android project and your Application class is registering with Application.IActivityLifecycleCallbacks.");
                return Task.FromResult(PermissionStatus.Unknown);  
            }

            foreach (var name in names)
            {
                if (ContextCompat.CheckSelfPermission(context, name) == Android.Content.PM.Permission.Denied)
                    return Task.FromResult(PermissionStatus.Denied);
            }
            return Task.FromResult(PermissionStatus.Granted);
        }
    protected void Page_Init(object sender, EventArgs e)
    {
        ctx = new AriClinicContext("AriClinicContext");
        // security control, it must be a user logged
        if (Session["User"] == null)
            Response.Redirect("Default.aspx");
        else
        {
            user = CntAriCli.GetUser((Session["User"] as User).UserId, ctx);
            Process proc = (from p in ctx.Processes
                            where p.Code == "servicesubcategory"
                            select p).FirstOrDefault<Process>();
            per = CntAriCli.GetPermission(user.UserGroup, proc, ctx);
            btnAccept.Visible = per.Modify;
        }

        // 
        if (Request.QueryString["ServiceSubCategoryId"] != null)
        {
            serviceSubCategoryId = Int32.Parse(Request.QueryString["ServiceSubCategoryId"]);
            serSub = CntAriCli.GetServiceSubcategory(serviceSubCategoryId, ctx);
            LoadData(serSub);
        }
        else
        {
            LoadServiceCategory(null);
        }
    }
        public bool HasPermission(Permission permission, HttpContextBase httpContext)
        {
            // get the list of roles that the user must have some overlap with to have the permission
            HashSet<string> rolesRequired = _rolePermissions[permission];

            foreach(var role in _allRoles)
            {
                if (httpContext.User.IsInRole(role) && rolesRequired.Contains(role))
                {
                    return true;
                }
            }

            // fallback for no roles -- give them at least Read Only status

            bool userHasAtLeastOneRole = false;
            foreach(var role in _allRoles)
            {
                if (httpContext.User.IsInRole(role))
                {
                    userHasAtLeastOneRole = true;
                    break;
                }
            }

            if (!userHasAtLeastOneRole)
            {
                if (rolesRequired.Contains(READ_ONLY_ROLE_NAME))
                {
                    return true;
                }
            }

            return false;
        }
예제 #10
0
 protected void Page_Init(object sender, EventArgs e)
 {
     ctx = new AriClinicContext("AriClinicContext");
     // security control, it must be a user logged
     if (Session["User"] == null)
         Response.Redirect("Default.aspx");
     else
     {
         user = CntAriCli.GetUser((Session["User"] as User).UserId, ctx);
         Process proc = (from p in ctx.Processes
                         where p.Code == "user"
                         select p).FirstOrDefault<Process>();
         per = CntAriCli.GetPermission(user.UserGroup, proc, ctx);
         btnAccept.Visible = per.Modify;
         // special for this form
         ddlGroup.Enabled = per.Create;
     }
     // 
     if (Request.QueryString["UserId"] != null)
     {
         userId = Int32.Parse(Request.QueryString["UserId"]);
         User usr = (from u in ctx.Users
                     where u.UserId == userId
                     select u).FirstOrDefault<User>();
         LoadData(usr);
     }
     else
     {
         LoadGroupCombo(null);
         LoadBaseVisitType(null);
         LoadClinic(null);
     }
 }
 public GrantPermissionOperation(string table, string user, Permission permission)
   : base(null)
 {
     Table = table;
     User = user;
     Permission = permission;
 }
예제 #12
0
 protected void Page_Init(object sender, EventArgs e)
 {
     ctx = new AriClinicContext("AriClinicContext");
     // security control, it must be a user logged
     if (Session["User"] == null)
         Response.Redirect("Default.aspx");
     else
     {
         user = CntAriCli.GetUser((Session["User"] as User).UserId, ctx);
         Process proc = (from p in ctx.Processes
                         where p.Code == "policy"
                         select p).FirstOrDefault<Process>();
         per = CntAriCli.GetPermission(user.UserGroup, proc, ctx);
     }
     // cheks if is call from another form
     if (Request.QueryString["Type"] != null)
         type = Request.QueryString["Type"];
     // read the realated patient
     if (Request.QueryString["PatientId"] != null)
     {
         patientId = Int32.Parse(Request.QueryString["PatientId"]);
         pat = CntAriCli.GetPatient(patientId, ctx);
         cus = pat.Customer;
     }
     if (Request.QueryString["CustomerId"] != null)
     {
         customerId = Int32.Parse(Request.QueryString["CustomerId"]);
         cus = CntAriCli.GetCustomer(customerId, ctx);
     }
     // translate filters
     CntWeb.TranslateRadGridFilters(RadGrid1);
 }
예제 #13
0
        public Permission Remap(Permission permission)
        {
            if ((permission & From) == From)
                return (permission ^ From) | To;

            return permission;
        }
예제 #14
0
        public void CanMapReadPermission(Permission expectedPermission, bool expectedResult)
        {
            var map = new PermissionMap { Permissions = Permission.Read, Roles = new[] { "rolename" } };

            Assert.That(map.MapsTo(expectedPermission), Is.EqualTo(expectedResult));
            Assert.That(map.Authorizes(user, item, expectedPermission), Is.EqualTo(expectedResult));
        }
예제 #15
0
 static int GetLimitIndex( Rank rank, Permission permission ) {
     if( rank.HasLimitSet( permission ) ) {
         return rank.GetLimit( permission ).Index + 1;
     } else {
         return 0;
     }
 }
예제 #16
0
 public FileAccess(UserId userId, Permission[] permission)
 {
     if (userId == null) throw new ArgumentException("FileAccess must have a UserId node.");
     if ((permission == null) || (permission.Length == 0)) throw new ArgumentException("FileAccess must have at least one Permission node.");
     this.userId = userId;
     this.permission = permission;
 }
예제 #17
0
        public void CanMapFullPermission(Permission expectedPermission)
        {
            var map = new PermissionMap { Permissions = Permission.Full, Roles = new[] { "rolename" } };

            Assert.That(map.MapsTo(expectedPermission), Is.True);
            Assert.That(map.Authorizes(user, item, expectedPermission), Is.True);
        }
예제 #18
0
    public bool HasPermission(string nmspc, Permission permission)
    {
      IPrincipal principal = Thread.CurrentPrincipal; 
      
      AuthorizationConfiguration configuration = ConfigurationProvider.GetNamespaceConfiguration(nmspc); 

      // Default to wiki configuration if there's no configuration provided by the namespace
      if (configuration == null)
      {
        configuration = ConfigurationProvider.WikiConfiguration; 
      }

      if (permission == Permission.Read)
      {
        return IsReader(principal, configuration) || IsEditor(principal, configuration) || IsAdministrator(principal, configuration); 
      }
      else if (permission == Permission.Edit)
      {
        return IsEditor(principal, configuration) || IsAdministrator(principal, configuration); 
      }
      else if (permission == Permission.Administer)
      {
        return IsAdministrator(principal, configuration); 
      }
      else
      {
        throw new ArgumentException(string.Format("Unexpected permission {0}", permission), "permission"); 
      }
    }
    private void CheckPermissions(Category category, Permission perm, bool layout)
    {
        if ((bool)Session[Constants.IS_ROOT])
            return;
        if (!layout)
            LayoutName = null;

        if (category == null)
        {
            throw new Unauthorized("Null category!");
        }

        User user = null;
        if (Session.Contains(Constants.USER))
        {
            user = (User) Session[Constants.USER];

            IDictionary categoryAcl = category.GetPermissionsHash(user);
            if (!((bool) categoryAcl[perm]))
                throw new Unauthorized("");
        }
        else    // anonymous user
        {
            if (!category.AnonRole.Can(perm))
            {
                throw new Unauthorized("");
            }
        }
    }
예제 #20
0
 public Document(User owner, string file, Permission.Permissions perm)
 {
     this.owner = owner;
     this.permission = permission;
     this.lastChanged = DateTime.Now;
     // TODO file
 }
예제 #21
0
        /// <summary>
        /// Initializes a new instance of the EntityDetails class.
        /// </summary>
        /// <param name="permission">Permissions of the user on the entity</param>
        public EntityDetails(Permission permission)
        {
            this.UserPermission = permission;

            // Tags should not be null so that empty strings can be passed as value for partial views.
            this.Tags = string.Empty;
        }
 public PermissionUnitTest()
 {
     List<Permission> permList = Permission.index();
     Assert.IsNotNull(permList);
     Assert.IsTrue(permList.Count > 0);
     testPermission = permList[0];
 }
예제 #23
0
        public virtual bool Authorizes(IPrincipal user, ContentItem item, Permission permission)
        {
            if(item != null && permission == Permission.Read && !item.IsAuthorized(user))
                return false;

            return MapsTo(permission) && Contains(user);
        }
예제 #24
0
 protected void Page_Init(object sender, EventArgs e)
 {
     ctx = new AriClinicContext("AriClinicContext");
     // security control, it must be a user logged
     if (Session["User"] == null)
         Response.Redirect("Default.aspx");
     else
     {
         user = CntAriCli.GetUser((Session["User"] as User).UserId, ctx);
         Process proc = (from p in ctx.Processes
                         where p.Code == "policy"
                         select p).FirstOrDefault<Process>();
         per = CntAriCli.GetPermission(user.UserGroup, proc, ctx);
         btnAccept.Visible = per.Modify;
     }
     // 
     if (Request.QueryString["CustomerId"] != null)
     {
         patientId = Int32.Parse(Request.QueryString["CustomerId"]);
         pat = CntAriCli.GetCustomer(patientId, ctx);
         txtCustomer.Text = pat.FullName;
     }
     // 
     if (Request.QueryString["PolicyId"] != null)
     {
         policyId = Int32.Parse(Request.QueryString["PolicyId"]);
         pol = CntAriCli.GetPolicy(policyId, ctx);
         LoadData(pol);
     }
     else
     {
         LoadTypeCombo(null);
         LoadInsuranceCombo(null);
     }
 }
예제 #25
0
    protected void Page_Init(object sender, EventArgs e)
    {
        ctx = new AriClinicContext("AriClinicContext");
        // security control, it must be a user logged
        if (Session["User"] == null)
            Response.Redirect("Default.aspx");
        else
        {
            user = (User)Session["User"];
            user = CntAriCli.GetUser(user.UserId, ctx);
            Process proc = (from p in ctx.Processes
                            where p.Code == "visitreason"
                            select p).FirstOrDefault<Process>();
            per = CntAriCli.GetPermission(user.UserGroup, proc, ctx);
            btnAccept.Visible = per.Modify;
        }

        // 
        if (Request.QueryString["VisitReasonId"] != null)
        {
            visitReasonId = Int32.Parse(Request.QueryString["VisitReasonId"]);
            visitReason = CntAriCli.GetVisitReason(visitReasonId, ctx);
            LoadData(visitReason);
        }
    }
예제 #26
0
 protected void Page_Init(object sender, EventArgs e)
 {
     ctx = new AriClinicContext("AriClinicContext");
     // security control, it must be a user logged
     if (Session["User"] == null)
         Response.Redirect("Default.aspx");
     else
     {
         user = CntAriCli.GetUser((Session["User"] as User).UserId, ctx);
         Process proc = (from p in ctx.Processes
                         where p.Code == "scat"
                         select p).FirstOrDefault<Process>();
         per = CntAriCli.GetPermission(user.UserGroup, proc, ctx);
     }
     //cheks if is call from customer form tabs
     if (type == "InTab")
     {
         HtmlControl tt = (HtmlControl)this.FindControl("TitleArea");
         tt.Attributes["class"] = "ghost";
         // hide patient column
         RadGrid1.Columns.FindByDataField("Patient.FullName").Visible = false;
     }
     // cheks if is call from another form
     if (Request.QueryString["Type"] != null)
         type = Request.QueryString["Type"];
     // translate filters
     CntWeb.TranslateRadGridFilters(RadGrid1);
 }
 /// <summary>
 /// Determines whether this instance has permission the specified permission.
 /// </summary>
 /// <returns><c>true</c> if this instance has permission the specified permission; otherwise, <c>false</c>.</returns>
 /// <param name="permission">Permission to check.</param>
 public Task<PermissionStatus> CheckPermissionStatusAsync(Permission permission)
 {
     switch (permission)
     {
         case Permission.Calendar:
             return Task.FromResult(GetEventPermissionStatus(EKEntityType.Event));
         case Permission.Camera:
             return Task.FromResult(GetAVPermissionStatus(AVMediaType.Video));
         case Permission.Contacts:
             return Task.FromResult(ContactsPermissionStatus);
         case Permission.Location:
             return Task.FromResult(LocationPermissionStatus);
         case Permission.Microphone:
             return Task.FromResult(GetAVPermissionStatus(AVMediaType.Audio));
         //case Permission.NotificationsLocal:
         //    break;
         //case Permission.NotificationsRemote:
         //    break;
         case Permission.Photos:
             return Task.FromResult(PhotosPermissionStatus);
         case Permission.Reminders:
             return Task.FromResult(GetEventPermissionStatus(EKEntityType.Reminder));
         case Permission.Sensors:
             return Task.FromResult((CMMotionActivityManager.IsActivityAvailable ? PermissionStatus.Granted : PermissionStatus.Denied));
     }
     return Task.FromResult(PermissionStatus.Granted);
 }
예제 #28
0
        /// <summary>Gets roles allowed for a certain permission stored in a content item.</summary>
        /// <param name="item">The item whose permitted roles get.</param>
        /// <param name="permission">The permission asked for.</param>
        /// <returns>Permitted roles.</returns>
        public static IEnumerable<string> GetRoles(ContentItem item, Permission permission)
        {
            List<string> roles = null;
            foreach (Permission permissionLevel in SplitPermission(permission))
            {
                if(permissionLevel == Permission.Read)
                {
                    foreach(AuthorizedRole role in item.AuthorizedRoles)
                    {
                        AddTo(ref roles, role.Role);
                    }
                    continue;
                }

                DetailCollection roleDetails = item.GetDetailCollection(AuthorizedRolesPrefix + permissionLevel, false);
                if (roleDetails == null)
                    continue;

                foreach(string role in roleDetails)
                {
                    roles = AddTo(ref roles, role);
                }
            }
            return roles;
        }
        /// <summary>
        /// 为指定<see cref="IGrantee" />授予特定的<see cref="Permission" />。
        /// 目前只支持被授权者为<see cref="GroupGrantee.AllUsers" />。
        /// </summary>
        /// <param name="grantee">被授权者。</param>
        /// <param name="permission">被授予的权限。</param>
        internal void GrantPermission(IGrantee grantee, Permission permission)
        {
            if (grantee == null)
                throw new ArgumentNullException("grantee");

            _grants.Add(new Grant(grantee, permission), true);
        }
예제 #30
0
 // Primary
 public Document(User owner, string content, string path, Permission.Permissions perm)
 {
     this.permission = perm;
     this.owner = owner;
     this.content = content;
     this.lastChanged = DateTime.Now;
 }
 public void DeletePermission(Permission permission)
 {
     permissionsRepository.Delete(permission);
 }
예제 #32
0
        protected override void Seed(SMGPA.Models.SMGPAContext context)
        {
            Role rol = new Role {
                Nombre = "Usuario ROOT", Descripcion = "Usuario con acceso global al sistema"
            };
            Permission p1 = new Permission {
                TextLink = "Usuarios", Controller = "Users", ActionResult = "Index", ActiveMenu = true
            };
            Permission p2 = new Permission {
                TextLink = "Crear Usuario", Controller = "Users", ActionResult = "Create", ActiveMenu = false
            };
            Permission p3 = new Permission {
                TextLink = "Editar Usuarios", Controller = "Users", ActionResult = "Edit", ActiveMenu = false
            };
            Permission p4 = new Permission {
                TextLink = "Eliminar Usuarios", Controller = "Users", ActionResult = "Delete", ActiveMenu = false
            };
            Permission p5 = new Permission {
                TextLink = "Detalles de Usuario", Controller = "Users", ActionResult = "Details", ActiveMenu = false
            };
            Permission p6 = new Permission {
                TextLink = "Carreras", Controller = "Careers", ActionResult = "Index", ActiveMenu = true
            };
            Permission p7 = new Permission {
                TextLink = "Crear Carrera", Controller = "Careers", ActionResult = "Create", ActiveMenu = false
            };
            Permission p8 = new Permission {
                TextLink = "Editar Carreras", Controller = "Careers", ActionResult = "Edit", ActiveMenu = false
            };
            Permission p9 = new Permission {
                TextLink = "Eliminar Carreras", Controller = "Careers", ActionResult = "Delete", ActiveMenu = false
            };
            Permission p10 = new Permission {
                TextLink = "Detalles de Carrera", Controller = "Careers", ActionResult = "Details", ActiveMenu = false
            };
            Permission p11 = new Permission {
                TextLink = "Roles", Controller = "Roles", ActionResult = "Index", ActiveMenu = true
            };
            Permission p12 = new Permission {
                TextLink = "Crear Roles", Controller = "Roles", ActionResult = "Create", ActiveMenu = false
            };
            Permission p13 = new Permission {
                TextLink = "Editar Roles", Controller = "Roles", ActionResult = "Edit", ActiveMenu = false
            };
            Permission p14 = new Permission {
                TextLink = "Eliminar Roles", Controller = "Roles", ActionResult = "Delete", ActiveMenu = false
            };
            Permission p15 = new Permission {
                TextLink = "Detalles Rol", Controller = "Roles", ActionResult = "Details", ActiveMenu = false
            };
            Permission p16 = new Permission {
                TextLink = "Permisos", Controller = "Roles", ActionResult = "Permissions", ActiveMenu = false
            };
            Permission p17 = new Permission {
                TextLink = "Desagregar Permiso", Controller = "Roles", ActionResult = "DeletePermission", ActiveMenu = false
            };
            Permission p18 = new Permission {
                TextLink = "Agregar Permiso", Controller = "Roles", ActionResult = "AddPermission", ActiveMenu = false
            };
            Permission p19 = new Permission {
                TextLink = "Procesos", Controller = "Processes", ActionResult = "Index", ActiveMenu = true
            };
            Permission p20 = new Permission {
                TextLink = "Crear Proceso", Controller = "Processes", ActionResult = "Create", ActiveMenu = false
            };
            Permission p21 = new Permission {
                TextLink = "Editar Procesos", Controller = "Processes", ActionResult = "Edit", ActiveMenu = false
            };
            Permission p22 = new Permission {
                TextLink = "Eliminar Procesos", Controller = "Processes", ActionResult = "Delete", ActiveMenu = false
            };
            Permission p23 = new Permission {
                TextLink = "Detalles Proceso", Controller = "Processes", ActionResult = "Details", ActiveMenu = false
            };
            Permission p24 = new Permission {
                TextLink = "Operaciones", Controller = "Processes", ActionResult = "Operations", ActiveMenu = false
            };
            Permission p25 = new Permission {
                TextLink = "Crear Operaciones", Controller = "Processes", ActionResult = "AddOperation", ActiveMenu = false
            };
            Permission p26 = new Permission {
                TextLink = "Editar Operaciones", Controller = "Processes", ActionResult = "EditOperation", ActiveMenu = false
            };
            Permission p27 = new Permission {
                TextLink = "Eliminar Operaciones", Controller = "Processes", ActionResult = "DeleteOperation", ActiveMenu = false
            };
            Permission p28 = new Permission {
                TextLink = "Entidades", Controller = "Entities", ActionResult = "Index", ActiveMenu = true
            };
            Permission p29 = new Permission {
                TextLink = "Crear Entidad", Controller = "Entities", ActionResult = "Create", ActiveMenu = false
            };
            Permission p30 = new Permission {
                TextLink = "Editar Entidad", Controller = "Entities", ActionResult = "Edit", ActiveMenu = false
            };
            Permission p31 = new Permission {
                TextLink = "Eliminar Entidad", Controller = "Entities", ActionResult = "Delete", ActiveMenu = false
            };
            Permission p32 = new Permission {
                TextLink = "Detalles Entidad", Controller = "Entities", ActionResult = "Details", ActiveMenu = false
            };
            Permission p33 = new Permission {
                TextLink = "Funcionarios de Entidad", Controller = "Entities", ActionResult = "Functionaries", ActiveMenu = false
            };
            Permission p34 = new Permission {
                TextLink = "Agregar Funcionarios a Entidad", Controller = "Entities", ActionResult = "AddFunctionary", ActiveMenu = false
            };
            Permission p35 = new Permission {
                TextLink = "Desagregar Funcionarios a Entidad", Controller = "Entities", ActionResult = "DeleteFunctionary", ActiveMenu = false
            };
            Permission p36 = new Permission {
                TextLink = "Actividades", Controller = "Activities", ActionResult = "Index", ActiveMenu = true
            };
            Permission p37 = new Permission {
                TextLink = "Crear Actividad", Controller = "Activities", ActionResult = "Create", ActiveMenu = false
            };
            Permission p38 = new Permission {
                TextLink = "Editar Actividad", Controller = "Activities", ActionResult = "Edit", ActiveMenu = false
            };
            Permission p39 = new Permission {
                TextLink = "Eliminar Actividad", Controller = "Activities", ActionResult = "Delete", ActiveMenu = false
            };
            Permission p40 = new Permission {
                TextLink = "Detalles Actividad", Controller = "Activities", ActionResult = "Details", ActiveMenu = false
            };
            Permission p41 = new Permission {
                TextLink = "Tareas", Controller = "Activities", ActionResult = "Tasks", ActiveMenu = false
            };
            Permission p42 = new Permission {
                TextLink = "Cofigurar Tarea", Controller = "Activities", ActionResult = "ConfigureTask", ActiveMenu = false
            };
            Permission p43 = new Permission {
                TextLink = "Detalles Tareas", Controller = "Activities", ActionResult = "DetailsTask", ActiveMenu = false
            };
            Permission p44 = new Permission {
                TextLink = "Crear Facultad", Controller = "Entities", ActionResult = "CreateFaculty", ActiveMenu = false
            };
            Permission p45 = new Permission {
                TextLink = "Agregar Carrera a Facultad", Controller = "Entities", ActionResult = "AddCareer", ActiveMenu = false
            };
            Permission p46 = new Permission {
                TextLink = "Editar Facultad", Controller = "Entities", ActionResult = "EditFaculty", ActiveMenu = false
            };
            Permission p47 = new Permission {
                TextLink = "Desactivar Funcionario", Controller = "Users", ActionResult = "Off", ActiveMenu = false
            };
            List <Permission> permisos = new List <Permission>();

            permisos.Add(p1); permisos.Add(p2); permisos.Add(p3); permisos.Add(p4); permisos.Add(p5); permisos.Add(p6); permisos.Add(p7); permisos.Add(p8);
            permisos.Add(p9); permisos.Add(p10); permisos.Add(p11); permisos.Add(p12); permisos.Add(p13); permisos.Add(p14); permisos.Add(p15); permisos.Add(p16);
            permisos.Add(p17); permisos.Add(p18); permisos.Add(p19); permisos.Add(p20); permisos.Add(p21); permisos.Add(p22); permisos.Add(p23); permisos.Add(p24);
            permisos.Add(p25); permisos.Add(p26); permisos.Add(p27); permisos.Add(p28); permisos.Add(p29); permisos.Add(p30); permisos.Add(p31); permisos.Add(p32);
            permisos.Add(p33); permisos.Add(p34); permisos.Add(p35); permisos.Add(p36); permisos.Add(p37); permisos.Add(p38); permisos.Add(p39); permisos.Add(p40);
            permisos.Add(p41); permisos.Add(p42); permisos.Add(p43); permisos.Add(p44); permisos.Add(p45); permisos.Add(p46); permisos.Add(p47);
            foreach (Permission p in permisos)
            {
                p.Roles.Add(rol);
                rol.Permisos.Add(p);
                context.Permission.AddOrUpdate(pe => pe.idPermission, p);
            }
            context.Role.AddOrUpdate(r => r.idRole, rol);
            MD5Encoder md   = new MD5Encoder();
            string     pass = md.EncodePasswordMd5("1234.pass");

            context.User.AddOrUpdate(u => u.idUser,
                                     new Administrator()
            {
                Rut = "1111111-1", Nombre = "Administrador", Apellido = "Root", MailInstitucional = "*****@*****.**", Contrasena = pass, Rol = context.Role.FirstOrDefault()
            });
        }
        /// <summary>
        ///     Removes a single permission.
        ///     This both removes the permission from the db, and also removes the permission from all the roles that contain the
        ///     permission.
        /// </summary>
        public async Task DeletePermission(Permission permission)
        {
            await _roleService.RemovePermissionsFromRoles(permission.Id, permission.Grain, permission.SecurableItem);

            await _permissionStore.Delete(permission);
        }
 /// <summary>
 ///     Add a single permission.
 /// </summary>
 public async Task <Permission> AddPermission(Permission permission)
 {
     return(await _permissionStore.Add(permission));
 }
예제 #35
0
 public BotPermissionAttribute(Permission permissions)
 {
     GuildPermissions = permissions;
 }
예제 #36
0
 public virtual IActionResult PermissionsPost([FromBody] Permission item)
 {
     return(this._service.PermissionsPostAsync(item));
 }
예제 #37
0
 /// <summary>
 /// Initializes a new instance of <see cref="T:Dataweb.NShape.Advanced.NShapeSecurityException" />.
 /// </summary>
 public NShapeSecurityException(Permission permission)
     : base("Required permission '{0}' is not granted.", permission)
 {
 }
예제 #38
0
        public void CanCheckPermissionsNoPermissions(string expected, string respGroup)
        {
            var permissions = new Permission[0];

            Assert.Equal(expected, OrderReadPricesPermission.ApplyResponseGroupFiltering(permissions, respGroup));
        }
예제 #39
0
 /// <summary>
 /// Method to check whether the currently logged user hasc some claim of type Permission,
 /// defined by a permission (enum value) and a scope (assembly simple name).
 /// Useful for Razor views.
 /// </summary>
 /// <param name="claimsPrincipal_"></param>
 /// <param name="permission_"></param>
 /// <param name="extensionAssemblySimpleName_"></param>
 /// <returns></returns>
 public static bool HasPermissionClaim(this ClaimsPrincipal claimsPrincipal_, Permission permission_, string extensionAssemblySimpleName_)
 {
     return(HasClaim(claimsPrincipal_, ClaimType.Permission.ToString(), PermissionHelper.GetScopedPermissionIdentifier(permission_, extensionAssemblySimpleName_)));
 }
 public void CreatePermission(Permission permission)
 {
     permissionsRepository.Add(permission);
 }
예제 #41
0
        public void BuildNavigation(string name, INavigationBuilder builder)
        {
            if (!String.Equals(name, "idea-comment", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            // Get entity from context
            var entity = builder.ActionContext.HttpContext.Items[typeof(Idea)] as Idea;

            if (entity == null)
            {
                return;
            }

            // Get reply from context
            var reply = builder.ActionContext.HttpContext.Items[typeof(IdeaComment)] as IdeaComment;

            if (reply == null)
            {
                return;
            }

            //// Get authenticated user from features
            var user = builder.ActionContext.HttpContext.Features[typeof(User)] as User;

            // Get delete / restore permission
            Permission deletePermission = null;

            if (reply.IsDeleted)
            {
                deletePermission = user?.Id == reply.CreatedUserId
                    ? Permissions.RestoreOwnIdeaComments
                    : Permissions.RestoreAnyIdeaComment;
            }
            else
            {
                deletePermission = user?.Id == reply.CreatedUserId
                    ? Permissions.DeleteOwnIdeaComments
                    : Permissions.DeleteAnyIdeaComment;
            }

            // Options
            builder
            .Add(T["Options"], int.MaxValue, options => options
                 .IconCss("fa fa-ellipsis-h")
                 .Attributes(new Dictionary <string, object>()
            {
                { "data-provide", "tooltip" },
                { "title", T["Options"] }
            })
                 .Add(T["Edit"], int.MinValue, edit => edit
                      .Action("EditReply", "Home", "Plato.Ideas", new RouteValueDictionary()
            {
                ["id"] = reply?.Id ?? 0
            })
                      .Permission(user?.Id == reply.CreatedUserId ?
                                  Permissions.EditOwnIdeaComments :
                                  Permissions.EditAnyIdeaComment)
                      .LocalNav())
                 .Add(reply.IsHidden ? T["Unhide"] : T["Hide"], 2, edit => edit
                      .Action(reply.IsHidden ? "ShowReply" : "HideReply", "Home", "Plato.Ideas",
                              new RouteValueDictionary()
            {
                ["id"] = reply?.Id ?? 0
            })
                      .Resource(entity.CategoryId)
                      .Permission(reply.IsHidden
                                ? Permissions.ShowIdeaComments
                                : Permissions.HideIdeaComments)
                      .LocalNav()
                      )
                 .Add(reply.IsSpam ? T["Not Spam"] : T["Spam"], 3, spam => spam
                      .Action(reply.IsSpam ? "ReplyFromSpam" : "ReplyToSpam", "Home", "Plato.Ideas",
                              new RouteValueDictionary()
            {
                ["id"] = reply?.Id ?? 0
            })
                      .Resource(entity.CategoryId)
                      .Permission(reply.IsSpam
                                ? Permissions.IdeaCommentFromSpam
                                : Permissions.IdeaCommentToSpam)
                      .LocalNav()
                      )
                 .Add(T["Report"], int.MaxValue - 2, report => report
                      .Action("Report", "Home", "Plato.Ideas", new RouteValueDictionary()
            {
                ["opts.id"]      = entity.Id,
                ["opts.alias"]   = entity.Alias,
                ["opts.replyId"] = reply.Id
            })
                      .Attributes(new Dictionary <string, object>()
            {
                { "data-provide", "dialog" },
                { "data-dialog-modal-css", "modal fade" },
                { "data-dialog-css", "modal-dialog modal-lg" }
            })
                      .Permission(Permissions.ReportIdeaComments)
                      .LocalNav()
                      )
                 .Add(T["Divider"], int.MaxValue - 1, divider => divider
                      .Permission(deletePermission)
                      .DividerCss("dropdown-divider").LocalNav()
                      )
                 .Add(reply.IsDeleted ? T["Restore"] : T["Delete"], int.MaxValue, edit => edit
                      .Action(reply.IsDeleted ? "RestoreReply" : "DeleteReply", "Home", "Plato.Ideas",
                              new RouteValueDictionary()
            {
                ["id"] = reply.Id
            })
                      .Permission(deletePermission)
                      .LocalNav(),
                      reply.IsDeleted
                                ? new List <string>()
            {
                "dropdown-item", "dropdown-item-success"
            }
                                : new List <string>()
            {
                "dropdown-item", "dropdown-item-danger"
            }
                      )
                 , new List <string>()
            {
                "idea-comment-options", "text-muted", "dropdown-toggle-no-caret", "text-hidden"
            }
                 );

            // If the reply if deleted display permanent delete option
            if (reply.IsDeleted)
            {
                // Permanent delete permissions
                var permanentDeletePermission = reply.CreatedUserId == user?.Id
                    ? Permissions.PermanentDeleteOwnIdeaComments
                    : Permissions.PermanentDeleteAnyIdeaComment;

                builder
                .Add(T["Delete"], int.MinValue, options => options
                     .IconCss("fal fa-trash-alt")
                     .Attributes(new Dictionary <string, object>()
                {
                    { "data-toggle", "tooltip" },
                    { "data-provide", "confirm" },
                    { "title", T["Permanent Delete"] },
                })
                     .Action("PermanentDeleteReply", "Home", "Plato.Ideas",
                             new RouteValueDictionary()
                {
                    ["id"] = reply.Id
                })
                     .Permission(permanentDeletePermission)
                     .LocalNav()
                     , new List <string>()
                {
                    "idea-permanent-delete", "text-muted", "text-hidden"
                }
                     );
            }

            // If entity & reply are not hidden and entity is not locked allow replies
            if (!entity.IsHidden() && !reply.IsHidden() && !entity.IsLocked)
            {
                builder
                .Add(T["Comment"], int.MaxValue, options => options
                     .IconCss("fa fa-reply")
                     .Attributes(new Dictionary <string, object>()
                {
                    { "data-provide", "postQuote" },
                    { "data-quote-selector", "#quote" + reply.Id.ToString() },
                    { "data-toggle", "tooltip" },
                    { "title", T["Comment"] }
                })
                     .Action("Login", "Account", "Plato.Users",
                             new RouteValueDictionary()
                {
                    ["returnUrl"] = builder.ActionContext.HttpContext.Request.Path
                })
                     .Permission(Permissions.PostIdeaComments)
                     .LocalNav()
                     , new List <string>()
                {
                    "idea-reply", "text-muted", "text-hidden"
                }
                     );
            }
        }
예제 #42
0
        // GET: User
        public ActionResult Index()
        {
            Permission p    = new Permission();
            bool       auth = p.IsGranted(User.Identity.Name, this.ControllerContext.RouteData.Values["controller"].ToString() + "_" + this.ControllerContext.RouteData.Values["action"].ToString());

            if (!auth)
            {
                return(new ViewResult()
                {
                    ViewName = "Unauthorized"
                });
            }
            else
            {
                ViewBag.Reset = p.IsGranted(User.Identity.Name, "user_resetpassword");
                ViewBag.Log   = p.IsGranted(User.Identity.Name, "logs_view");
                List <UserViewModels> userViewModels = new List <UserViewModels>();
                bool isSetRole = p.IsGranted(User.Identity.Name, "user_setroles");
                if (isSetRole)
                {
                    foreach (var usr in db.User.ToList())
                    {
                        var roles = (from ur in db.UserRole
                                     join r in db.Role on ur.RoleId equals r.Id
                                     where ur.UserId == usr.Id
                                     orderby r.Name
                                     select new { r }).ToList();

                        userViewModels.Add(new UserViewModels
                        {
                            Id       = usr.Id,
                            Fullname = usr.Firstname + " " + usr.Middlename + " " + usr.Lastname,
                            UserName = usr.UserName,
                            Email    = usr.Email,
                            Roles    = roles.Select(x => x.r.Name).ToList(),
                            Active   = usr.Active
                        });
                    }
                    ViewBag.listRole = new SelectList(db.Role.OrderBy(x => x.Name).ToList(), "Name", "Name");
                    return(View(userViewModels));
                }
                else
                {
                    string role_id_allowed = db.Settings.Find(SettingsValue.GUID_UserSetRoleAllowed).Value_Guid.Value.ToString();
                    var    list_user       = (from u in db.User
                                              join ur in db.UserRole on u.Id equals ur.UserId
                                              join r in db.Role on ur.RoleId equals r.Id
                                              where r.Id == role_id_allowed
                                              select new { u, ur, r }).ToList();
                    foreach (var usr in list_user)
                    {
                        userViewModels.Add(new UserViewModels
                        {
                            Id       = usr.u.Id,
                            Fullname = usr.u.Firstname + " " + usr.u.Middlename + " " + usr.u.Lastname,
                            UserName = usr.u.UserName,
                            Email    = usr.u.Email,
                            Roles    = new List <string> {
                                usr.r.Name
                            },
                            Active = usr.u.Active
                        });
                    }
                    ViewBag.listRole = new SelectList(db.Role.Where(x => x.Id == role_id_allowed).OrderBy(x => x.Name).ToList(), "Name", "Name");
                    return(View(userViewModels));
                }
            }
        }
예제 #43
0
 public void SetUserPermission(Permission _perm)
 {
     this.User.PermissionFlag = _perm;
     this.SetUpdateUser();
 }
예제 #44
0
 public PermissionObject(Permission perm)
 {
    this.Id = perm.Id;
    this.Name = perm.Name;
    this.NameTranslation = perm.NameTranslation;
 }
예제 #45
0
 /// <summary>
 /// 编译器编译完成后处理逻辑
 /// </summary>
 public override void EndCompile()
 {
     Permission.Commit();
 }
예제 #46
0
 public UserPermissionAttribute(Permission permissions)
 {
     GuildPermissions = permissions;
 }
예제 #47
0
 internal static bool HasFlag(ulong rawValue, Permission flag)
 => Discord.HasFlag(rawValue, (ulong)flag);
예제 #48
0
파일: Main.cs 프로젝트: 0xt0b3r/PocceMod
        private static void SetupMenu()
        {
            _menu = new MainMenu();

            #region Vehicle
            if (Permission.CanDo(Ability.SpawnVehicle))
            {
                _menu.AddMenuListItem("Vehicle", "Spawn from list ↕", _menu.VehicleMenu.OpenMenu);
            }

            if (Permission.CanDo(Ability.SpawnVehicleByName))
            {
                _menu.AddMenuListItemAsync("Vehicle", "Spawn by name", _menu.VehicleMenu.SpawnByName);
            }

            if (Permission.CanDo(Ability.Autopilot))
            {
                _menu.AddMenuListItemAsync("Vehicle", "Autopilot (toggle)", Autopilot.Toggle);
            }

            if (Permission.CanDo(Ability.TeleportToClosestVehicle))
            {
                _menu.AddMenuListItem("Vehicle", "TP into closest", () => VehicleMenu.TeleportToClosestVehicle());
                _menu.AddMenuListItem("Vehicle", "TP into closest as passenger", () => VehicleMenu.TeleportToClosestVehicle(true));
            }
            #endregion

            #region Prop
            if (Permission.CanDo(Ability.SpawnProp))
            {
                _menu.AddMenuListItem("Prop", "Spawn from list ↕", _menu.PropMenu.OpenMenu);
                _menu.AddMenuListItem("Prop", "Spawn from list (search)", async() =>
                {
                    var prop = await Common.GetUserInput("Filter props", "", 30);
                    _menu.PropMenu.Filter(prop);
                });
                _menu.AddMenuListItemAsync("Prop", "Clear last", Props.ClearLast);
                _menu.AddMenuListItemAsync("Prop", "Clear all", Props.ClearAll);
            }
            #endregion

            #region Rope
            if (Permission.CanDo(Ability.RopeGun))
            {
                _menu.AddMenuListItem("Rope", "Equip rope gun", Ropes.EquipRopeGun);
            }

            if (Permission.CanDo(Ability.Rope))
            {
                _menu.AddMenuListItem("Rope", "Closest ped", () => Ropes.AttachToClosest(Peds.Get(Peds.Filter.LocalPlayer | Peds.Filter.Dead | Peds.Filter.CurrentVehiclePassengers)));
                _menu.AddMenuListItem("Rope", "Closest vehicle", () => Ropes.AttachToClosest(Vehicles.Get()));
                _menu.AddMenuListItem("Rope", "Closest vehicle tow", () => Ropes.AttachToClosest(Vehicles.Get(), true));
                _menu.AddMenuListItem("Rope", "Closest prop", () => Ropes.AttachToClosest(Props.Get()));
            }

            if (Permission.CanDo(Ability.Rope) || Permission.CanDo(Ability.RopeGun))
            {
                _menu.AddMenuListItem("Rope", "Free myself", Ropes.ClearPlayer);
                _menu.AddMenuListItem("Rope", "Clear last", Ropes.ClearLast);
                _menu.AddMenuListItem("Rope", "Clear all", Ropes.ClearAll);
            }
            #endregion

            #region Companion
            if (Permission.CanDo(Ability.SpawnPocceCompanion))
            {
                _menu.AddMenuListItemAsync("Companion", "Spawn pocce", CompanionMenu.PocceCompanion);
            }

            if (Permission.CanDo(Ability.SpawnPetCompanion))
            {
                _menu.AddMenuListItemAsync("Companion", "Spawn pet", CompanionMenu.PetCompanion);
            }

            if (Permission.CanDo(Ability.SpawnPoccePassengers))
            {
                _menu.AddMenuListItemAsync("Companion", "Pocce passengers", CompanionMenu.PoccePassengers);
            }
            #endregion

            #region Event
            if (Permission.CanDo(Ability.PocceParty))
            {
                _menu.AddMenuListItemAsync("Event", "Pocce party", Events.PoccePartyRandom);
            }

            if (Permission.CanDo(Ability.MassScenario))
            {
                _menu.AddMenuListItem("Event", "Play mass scenario", _menu.MassScenarioMenu.OpenMenu);
            }

            if (Permission.CanDo(Ability.PocceRiot))
            {
                _menu.AddMenuListItem("Event", "Pocce riot", async() => await Events.PocceRiot(false));
            }

            if (Permission.CanDo(Ability.PocceRiotArmed))
            {
                _menu.AddMenuListItem("Event", "Pocce riot (armed)", async() => await Events.PocceRiot(true));
            }

            if (Permission.CanDo(Ability.PedRiot))
            {
                _menu.AddMenuListItem("Event", "Ped riot", async() => await Events.PedRiot(false));
            }

            if (Permission.CanDo(Ability.PedRiotArmed))
            {
                _menu.AddMenuListItem("Event", "Ped riot (armed)", async() => await Events.PedRiot(true));
            }
            #endregion

            #region Skin
            if (Permission.CanDo(Ability.IdentifySkins))
            {
                _menu.AddMenuListItem("Skin", "Detect nearby skins", _menu.SkinMenu.DetectSkins);
                _menu.AddMenuListItem("Skin", "Detect player skin", _menu.SkinMenu.DetectPlayerSkin);
            }

            if (Permission.CanDo(Ability.ChangeSkin))
            {
                _menu.AddMenuListItem("Skin", "Choose from last detect ↕", _menu.SkinMenu.ShowLastSkins);
                _menu.AddMenuListItem("Skin", "Choose from all ↕", _menu.SkinMenu.ShowAllSkins);
            }
            #endregion

            #region Extra
            if (Permission.CanDo(Ability.OceanWaves))
            {
                _menu.AddMenuListItem("Extra", "Crazy ocean waves (toggle)", ExtraMenu.ToggleCrazyOceanWaves);
            }

            if (Permission.CanDo(Ability.RappelFromHeli))
            {
                _menu.AddMenuListItemAsync("Extra", "Rappel from heli", ExtraMenu.RappelFromHeli);
            }

            if (Permission.CanDo(Ability.UltrabrightHeadlight))
            {
                _menu.AddMenuListItem("Extra", "Ultrabright headlight", ExtraMenu.UltrabrightHeadlight);
            }

            if (Permission.CanDo(Ability.EMP))
            {
                _menu.AddMenuListItemAsync("Extra", "EMP", Vehicles.EMP);
            }

            if (Permission.CanDo(Ability.CargobobMagnet))
            {
                _menu.AddMenuListItem("Extra", "Cargobob magnet", ExtraMenu.CargobobMagnet);
            }

            if (Permission.CanDo(Ability.SpawnTrashPed))
            {
                _menu.AddMenuListItemAsync("Extra", "Trash ped", SpawnTrashPed);
            }

            if (Permission.CanDo(Ability.CompressVehicle))
            {
                _menu.AddMenuListItemAsync("Extra", "Compress vehicle", ExtraMenu.CompressVehicle);
            }

            if (Permission.CanDo(Ability.AntiGravity))
            {
                _menu.AddMenuListItem("Extra", "Anti-gravity (toggle)", ExtraMenu.ToggleAntiGravity);
            }

            if (Permission.CanDo(Ability.Balloons))
            {
                _menu.AddMenuListItemAsync("Extra", "Balloons", ExtraMenu.Balloons);
            }
            #endregion
        }
예제 #49
0
 public bool CreateNewPermission(Permission p)
 {
     return(permissionInterface.CreateNewPermission(p));
 }
예제 #50
0
 internal static void UnsetFlag(ref ulong rawValue, Permission flag)
 => Discord.UnsetFlag(ref rawValue, (ulong)flag);
        private async Task MergePermissionsAsync(UpdateRoleCommand command, Role role, IExecutionContext executionContext)
        {
            // Deletions
            var permissionsToRemove = role
                                      .RolePermissions
                                      .Where(p => !command.Permissions.Any(cp =>
                                                                           cp.PermissionCode == p.Permission.PermissionCode &&
                                                                           (string.IsNullOrWhiteSpace(p.Permission.EntityDefinitionCode) || cp.EntityDefinitionCode == p.Permission.EntityDefinitionCode)
                                                                           ))
                                      .ToList();

            foreach (var permissionToRemove in permissionsToRemove)
            {
                _dbContext.RolePermissions.Remove(permissionToRemove);
            }

            // Additions
            var permissionsToAdd = command
                                   .Permissions
                                   .Where(p => !role.RolePermissions.Any(cp =>
                                                                         cp.Permission.PermissionCode == p.PermissionCode &&
                                                                         (string.IsNullOrWhiteSpace(p.EntityDefinitionCode) || cp.Permission.EntityDefinitionCode == p.EntityDefinitionCode)));

            if (permissionsToAdd.Any())
            {
                // create a unique token to use for lookup
                var permissionToAddTokens = permissionsToAdd
                                            .Select(p => p.EntityDefinitionCode + p.PermissionCode)
                                            .ToList();

                // Get permissions from the db
                var dbPermissions = await _dbContext
                                    .Permissions
                                    .Where(p => permissionToAddTokens.Contains(p.EntityDefinitionCode + p.PermissionCode))
                                    .ToListAsync();

                foreach (var permissionToAdd in permissionsToAdd)
                {
                    // Get Db permission
                    var dbPermission = dbPermissions
                                       .Where(p => permissionToAdd.PermissionCode == p.PermissionCode &&
                                              (string.IsNullOrEmpty(permissionToAdd.EntityDefinitionCode) || permissionToAdd.EntityDefinitionCode == p.EntityDefinitionCode)
                                              )
                                       .SingleOrDefault();

                    // Create if not exists
                    if (dbPermission == null)
                    {
                        var codePermission = _permissionRepository.GetByCode(permissionToAdd.PermissionCode, permissionToAdd.EntityDefinitionCode);
                        dbPermission = new Permission();
                        dbPermission.PermissionCode = codePermission.PermissionType.Code;

                        if (codePermission is IEntityPermission)
                        {
                            var definitionCode = ((IEntityPermission)codePermission).EntityDefinition.EntityDefinitionCode;
                            await _commandExecutor.ExecuteAsync(new EnsureEntityDefinitionExistsCommand(definitionCode), executionContext);

                            dbPermission.EntityDefinitionCode = definitionCode;
                        }
                    }

                    var rolePermission = new RolePermission();
                    rolePermission.Permission = dbPermission;
                    role.RolePermissions.Add(rolePermission);
                }
            }
        }
예제 #52
0
            public static IEnumerable <KeyValuePair <Permission, bool> > GetBoolFlags(Permission flags)
            {
                var value = (ulong)flags;

                for (var i = 0; i < _perms.Length; i++)
                {
                    var flag = _perms[i];
                    yield return(KeyValuePair.Create(flag, flag <= flags && HasFlag(value, flag)));
                }
            }
예제 #53
0
        public void Perm_EmptyPrefixIsDefault()
        {
            var permA = Permission.FromString("koala.execute", StateType.Unset);

            Assert.Equal(StateType.Unset, permA.State);
        }
예제 #54
0
 public bool UpdatePermissionById(Permission p)
 {
     return(permissionInterface.UpdatePermissionById(p));
 }
예제 #55
0
 public bool Can(Permission permission)
 {
     return(Rank.Can(permission));
 }
예제 #56
0
 /// <summary>
 /// Request to see if you should show a rationale for requesting permission
 /// Only on Android
 /// </summary>
 /// <returns>True or false to show rationale</returns>
 /// <param name="permission">Permission to check.</param>
 public Task <bool> ShouldShowRequestPermissionRationaleAsync(Permission permission) => Task.FromResult(false);
예제 #57
0
        public bool CheckPermission(string permission, SynchronizationContext Main)
        {
            Permission PermCode = CheckSelfPermission(permission);

            return(PermCode == Permission.Granted);
        }
예제 #58
0
 public bool Can(Permission permission, Rank rank)
 {
     return(Rank.Can(permission, rank));
 }
 private static Permission GetCachedPermission(string permission, Permission defaultValue)
 {
     return((Permission)PlayerPrefs.GetInt("ARTP_" + permission, (int)defaultValue));
 }
 public CorePermissionOverwrite(ulong id, CorePermissionOverwriteType type, Permission allow, Permission deny)
 {
     Id    = id;
     Type  = type;
     Allow = allow;
     Deny  = deny;
 }